A maintained fork of Extended OpenAI Conversation for Home Assistant that:
-
Works with OpenAI Python SDK 1.x
-
Supports reasoning‑class models via the Responses API (e.g., GPT‑5 family)
-
Integrates cleanly with Assist pipelines
-
Keeps memory scaffolding present but OFF by default
-
Upstream: https://github.com/jekalmin/extended_openai_conversation
-
This fork: https://github.com/Da3dalusCode/extended_openai_conversation
- Assist‑compatible conversation entity (returns current
ConversationResult) - Responses API for reasoning models
- Inputs as
input_textitems - System prompt in
instructions reasoning: { effort }when applicable- No
temperature/top_pon reasoning endpoints
- Inputs as
- Chat Completions for non‑reasoning models (sampling allowed)
- Options gear (model, strategy, effort, max tokens, temp/top‑p, prompt) via
OptionsFlowWithReload - Azure OpenAI support (Base URL + API version)
- Async‑safe client using HA’s shared HTTPX to avoid blocking SSL CA loads
- Home Assistant 2025.4.0+ recommended
- Python OpenAI SDK
>=1.0.0,<2.0.0(installed by HA frommanifest.json) - HACS for installation
- HACS → Custom repositories → add this repo (category Integration)
- HACS → Download → Restart Home Assistant when prompted
- Settings → Devices & Services → Add Integration → “Extended OpenAI Conversation”
- Enter API key (set Base URL + API version for Azure)
Open the integration card → Configure (gear):
- Model (default
gpt-5) - Model strategy:
auto|force_chat_completions|force_responses_api - Use Responses API (for non‑reasoning models when strategy is
auto) - Reasoning effort:
minimal|low|medium|high - Max tokens, Temperature, Top‑p, System prompt
- Model:
gpt-5 - Strategy:
auto - Use Responses API: on
- Effort: medium (raise to high as needed)
- Max tokens: 800–1200
With Responses API, system text goes into
instructionsand inputs useinput_text.
- Settings → Voice Assistants → set Conversation agent = Extended OpenAI Conversation
- Use Assist (text/voice) or ESPHome satellites normally.
- The agent returns
continue_conversationwhen follow‑up is implied.
- 400: invalid input type (older builds): ensure you’re on v1.4.1+ (we use
input_text+instructions). :contentReference[oaicite:8]{index=8} intent-failedwith.as_dict: fixed in v1.4.1 (compat shim). :contentReference[oaicite:9]{index=9}- Blocking SSL warning (
load_verify_locations): fixed by using HA’s shared HTTPX client in v1.4.1. :contentReference[oaicite:10]{index=10}
Enable debug:
action: logger.set_level
data:
custom_components.extended_openai_conversation: debug
homeassistant.components.conversation: debug- Present but OFF by default (no network calls). When enabled in a future release, memory will write/query a provider and prepend retrieved context to instructions, following HA’s LLM guidance.