extended_openai_conversation  by jekalmin

Home Assistant custom component for conversation agent using OpenAI

created 1 year ago
1,219 stars

Top 32.2% on SourcePulse

GitHubView on GitHub
Project Summary

This custom Home Assistant component extends the functionality of the OpenAI Conversation agent, enabling users to control devices, create automations, and retrieve data using natural language. It targets Home Assistant users seeking advanced voice control and automation capabilities, leveraging OpenAI's function calling feature for seamless integration.

How It Works

The component utilizes OpenAI's function calling API to interpret user requests and translate them into actionable Home Assistant services. It exposes entities and services to the OpenAI model, allowing it to dynamically call these functions based on user prompts. This approach enables complex interactions, such as controlling multiple devices, creating automations from descriptions, fetching data from external sources, and querying historical entity states.

Quick Start & Requirements

  • Installation: Install via HACS (custom repository) or by copying the extended_openai_conversation folder into <config directory>/custom_components.
  • Prerequisites: Home Assistant installation, OpenAI API Key.
  • Configuration: Expose entities via Home Assistant's voice assistant configuration.
  • Documentation: https://github.com/jekalmin/extended_openai_conversation

Highlighted Details

  • Supports calling Home Assistant services, creating automations, and fetching data from external APIs or web pages.
  • Enables retrieval of entity state history and passing user context to OpenAI.
  • Offers configurable options like Attach Username, Maximum Function Calls Per Conversation, and custom Functions mapping.
  • Includes support for native, template, script, rest, scrape, composite, and sqlite function types for extensive integration possibilities.

Maintenance & Community

The project is maintained by jekalmin. Further community interaction details are not explicitly provided in the README.

Licensing & Compatibility

The license is not explicitly stated in the README. Compatibility for commercial use or closed-source linking is not specified.

Limitations & Caveats

The README mentions that the SQLite query function is not fully secured by default and may require careful configuration to prevent unintended data access. Some examples for Korean language automation configuration use \\n instead of \n, which might require specific handling.

Health Check
Last commit

2 months ago

Responsiveness

1 week

Pull Requests (30d)
1
Issues (30d)
5
Star History
29 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.