ChatGPT Persona

Does anyone have working ChatGPT persona configuration files they can share? I am trying to follow this guide but I can’t get it to work for me.

Once I add intents and pipeline to the Mycroft config it just gets all confused and stops handling regular actions and just returns 404 or errors from ChatGPT

I would recommend to follow this guide GitHub - OpenVoiceOS/ovos-persona: Persona service

I followed that guide, and I ended up with this configuration:

jarvis@jarvis:~ $ cat .config/mycroft/mycroft.conf 
{
  "log_level": "INFO",
  "play_wav_cmdline": "play %1",
  "play_mp3_cmdline": "play %1",
  "lang": "en-US",
  "listener": {
    "VAD": {
      "module": "ovos-vad-plugin-silero"
    },
    "wake_word": "hey_jarvis"
  },
  "hotwords": {
    "hey_jarvis": {
        "module": "ovos-ww-plugin-openwakeword",
        "models": ["/home/jarvis/hey_jarvis.tflite"],
        "inference_framework": "tflite",
        "threshold": 0.3,
        "custom_verifier_threshold": 0.1
    }
  },
  "skills": {
    "installer": {
      "allow_pip": true,
      "allow_alphas": true
    }
  },
  "gui": {
    "disable_gui": false
  },
  "websocket": {
    "max_msg_size": 25
  },
  "PHAL": {
    "admin": {
      "ovos-PHAL-plugin-system": {
        "enabled": true
      }
    }
  },
  "open_data": {
    "intent_urls": [
      "https://metrics.tigregotico.pt/intents"
    ]
  },
  "tts": {
    "ovos-tts-plugin-server": {}
  },
  "stt": {
    "ovos-stt-plugin-server": {},
    "module": "ovos-stt-plugin-server",
    "fallback_module": ""
  },
  "system_unit": "metric",
  "temperature_unit": "celsius",
  "precipitation_unit": "mm",
  "windspeed_unit": "km/h",
  "time_format": "full",
  "spoken_time_format": "half",
  "date_format": "DMY",
  "intents": {
    "persona": {
      "handle_fallback": true,
      "default_persona": "ChatGPT",
      "short-term-memory": true
    },
    "pipeline": [
      "stop_high",
      "converse",
      "ocp_high",
      "padatious_high",
      "adapt_high",
      "ovos-persona-pipeline-plugin-high",
      "ocp_medium",
      "fallback_medium",
      "ovos-persona-pipeline-plugin-low",
      "fallback_low"
    ]
  }
}

And this persona:

jarvis@jarvis:~ $ cat .config/ovos_persona/ChatGPT.json 
{
  "name": "ChatGPT",
  "solvers": [
    "ovos-solver-openai-plugin",
    "ovos-solver-failure-plugin"
  ],
  "ovos-solver-openai-plugin": {
    "api_url": "https://api.openai.com/v1",
    "key": "sk-...",
    "model": "gpt-5-nano",
    "system_prompt": "You are a concise, helpful voice assistant.",
    "stream": false
  }
}

And then if I ask what time it is, it does this totally bypassing the skill and falling back to the persona and failing

2025-08-12 14:35:25.928 - skills - ovos_skill_boot_finished:handle_check_device_readiness:160 - INFO - OVOS is all loaded and ready to roll!
2025-08-12 14:35:35.164 - skills - ovos_core.intent_services:handle_utterance:504 - INFO - Parsing utterance: ['What time is it']
2025-08-12 14:35:35.339 - skills - ovos_core.intent_services:handle_utterance:525 - INFO - ovos-persona-pipeline-plugin-low match (en-US): IntentHandlerMatch(match_type='persona:query', match_data={'utterance': 'What time is it', 'lang': 'en-US', 'persona': 'ChatGPT'}, skill_id='persona.openvoiceos', utterance='What time is it', updated_session=None)
2025-08-12 14:35:36.072 - skills - ovos_persona.solvers:stream_completion:99 - ERROR - Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

If I switch it to Wolfram Alpha then I see a lot of this:

2025-08-12 17:02:49.376 - ovos-skill-wolfie.openvoiceos - ERROR - WolframAlphaSkill.can_answer() takes 2 positional arguments but 3 were given
Traceback (most recent call last):
  File "/home/jarvis/.venvs/ovos/lib/python3.11/site-packages/ovos_utils/events.py", line 78, in wrapper
    handler(message)
  File "/home/jarvis/.venvs/ovos/lib/python3.11/site-packages/ovos_workshop/skills/fallback.py", line 157, in _handle_fallback_ack
    "can_handle": self.can_answer(utts, lang)},
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^

I would recommend to update to the testing or even alpha channel to get the latest code of ovos-persona (using alpha channel as a daily).

So I re-flashed with raspOVOS (it’s a raspberry pi 4) I’m using the hybrid image. That fixed my Wolfram Alpha persona. ChatGPT has the same error and just 404’s every time.

Upgrading also broke my awesome open wake word listener:

gin-precise-lite', 'model': 'https://github.com/OpenVoiceOS/precise-lite-models/raw/master/wakewords/en/hey_mycroft.tflite', 'expected_duration': 3, 'trigger_level': 3, 'sensitivity': 0.5, 'listen': True, 'fallback_ww': 'hey_mycroft_precise'}, 'hey_mycroft_precise': {'module': 'ovos-ww-plugin-precise', 'version': '0.3', 'model': 'https://github.com/MycroftAI/precise-data/raw/models-dev/hey-mycroft.tar.gz', 'expected_duration': 3, 'trigger_level': 3, 'sensitivity': 0.5, 'listen': True, 'fallback_ww': 'hey_mycroft_vosk'}, 'hey_mycroft_vosk': {'module': 'ovos-ww-plugin-vosk', 'samples': ['hey mycroft', 'hey microsoft', 'hey mike roft', 'hey minecraft'], 'rule': 'fuzzy', 'listen': True, 'fallback_ww': 'hey_mycroft_pocketsphinx'}, 'hey_mycroft_pocketsphinx': {'module': 'ovos-ww-plugin-pocketsphinx', 'phonemes': 'HH EY . M AY K R AO F T', 'threshold': 1e-90, 'lang': 'en-us', 'listen': True}, 'wake_up': {'module': 'ovos-ww-plugin-vosk', 'rule': 'fuzzy', 'samples': ['wake up', '[unk]'], 'lang': 'en-us', 'wakeup': True, 'fallback_ww': 'wake_up_pocketsphinx'}, 'wake_up_pocketsphinx': {'module': 'ovos-ww-plugin-pocketsphinx', 'phonemes': 'W EY K . AH P', 'threshold': 1e-20, 'lang': 'en-us', 'wakeup': True}, 'hey_jarvis': {'module': 'ovos-ww-plugin-vosk', 'lang': 'en', 'listen': True, 'debug': True, 'samples': ['hey jarvis', 'hey jar viss', 'a jarvis', 'jarvis', 'jar viss'], 'rule': 'fuzzy', 'full_vocab': False}, 'hey_jarvis_pocketsphinx': {'module': 'ovos-ww-plugin-pocketsphinx', 'phonemes': 'HH EY . JH AA R V IH S', 'threshold': 1e-90, 'lang': 'en-us', 'listen': True}, 'hey_jarvis_tflite': {'module': 'ovos-ww-plugin-openwakeword', 'models': ['/home/ovos/hey_jarvis_v0.1.tflite'], 'inference_framework': 'tflite', 'threshold': 0.3, 'custom_verifier_threshold': 0.1}}
2025-08-14 13:14:53.018 - voice - ovos_plugin_manager.wakewords:load_module:137 - INFO - Loading "hey_jarvis_tflite" wake word via ovos-ww-plugin-openwakeword with config: {'module': 'ovos-ww-plugin-openwakeword', 'models': ['/home/ovos/hey_jarvis_v0.1.tflite'], 'inference_framework': 'tflite', 'threshold': 0.3, 'custom_verifier_threshold': 0.1}
2025-08-14 13:14:53.020 - voice - ovos_plugin_manager.utils.config:get_plugin_config:53 - DEBUG - Loaded configuration: {'hey_jarvis_tflite': {'module': 'ovos-ww-plugin-openwakeword', 'models': ['/home/ovos/hey_jarvis_v0.1.tflite'], 'inference_framework': 'tflite', 'threshold': 0.3, 'custom_verifier_threshold': 0.1}}
2025-08-14 13:14:53.082 - voice - ovos_plugin_manager.wakewords:load_module:144 - INFO - Loaded the Wake Word hey_jarvis_tflite with module ovos-ww-plugin-openwakeword
2025-08-14 13:14:53.084 - voice - ovos_plugin_manager.wakewords:create_hotword:165 - ERROR - Failed to load hotword: hey_jarvis_tflite - ovos-ww-plugin-openwakeword
2025-08-14 13:14:53.086 - voice - ovos_plugin_manager.wakewords:create_hotword:166 - ERROR - HotWordEngine.__init__() takes from 2 to 3 positional arguments but 4 were given
Traceback (most recent call last):
  File "/home/ovos/.venvs/ovos/lib/python3.11/site-packages/ovos_plugin_manager/wakewords.py", line 163, in create_hotword
    return cls.load_module(module, hotword, ww_config)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ovos/.venvs/ovos/lib/python3.11/site-packages/ovos_plugin_manager/wakewords.py", line 145, in load_module
    return clazz(hotword, hotword_config)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ovos/.venvs/ovos/lib/python3.11/site-packages/ovos_ww_plugin_openwakeword/__init__.py", line 28, in __init__
    super().__init__(key_phrase, config, lang)
TypeError: HotWordEngine.__init__() takes from 2 to 3 positional arguments but 4 were given
2025-08-14 13:14:53.089 - voice - ovos_dinkum_listener.voice_loop.hotwords:load_hotword_engines:206 - ERROR - Failed to load hotword: hey_jarvis_tflite
2025-08-14 13:14:53.091 - voice - ovos_dinkum_listener.voice_loop.hotwords:load_hotword_engines:211 - ERROR - No listen words loaded
2025-08-14 13:14:53.093 - voice - ovos_dinkum_listener.voice_loop.hotwords:load_hotword_engines:217 - WARNING - No stop words loaded

Vosk works but not nearly as well as the trained model and it struggles. I’m familiar with python, maybe I can submit a patch to fix this open wake word parameter issue?

I fixed the open wake word code, but then I checked and the latest dev branch of the code is already updated so no need to submit a patch, I guess it just needs to be released.

I still can’t get ChatGPT to work, but Remote llama persona appears to be working and is a decent fallback so I guess Ill just use that for now

The fallback ChatGPT skill is deprecated, ovos-persona kind of replace it. I am not an expert with RaspOVOS.