{"id":21333591,"url":"https://github.com/smkrv/ha-text-ai","last_synced_at":"2025-04-15T01:34:31.202Z","repository":{"id":262845991,"uuid":"888543132","full_name":"smkrv/ha-text-ai","owner":"smkrv","description":"Cutting-edge AI solution for Home Assistant. Multi-LLM provider support to transform your smart home experience with intelligent, adaptive automation.","archived":false,"fork":false,"pushed_at":"2025-01-29T22:15:15.000Z","size":6465,"stargazers_count":20,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T13:21:38.210Z","etag":null,"topics":["ai","anthropic","anthropic-claude","artificial-intelligence","deepseek","deepseek-api","gpt","hacs","hacs-custom","hacs-integration","home-assistant","home-assistant-integration","homeassistant","llm","natural-language-processing","openai-api","openrouter","openrouter-api","sonnet","text-analysis"],"latest_commit_sha":null,"homepage":"https://github.com/smkrv/ha-text-ai","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smkrv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-14T15:22:54.000Z","updated_at":"2025-03-27T12:47:21.000Z","dependencies_parsed_at":"2025-01-29T16:21:11.367Z","dependency_job_id":"5b601ae7-8ba5-46fd-897b-03c9685861e3","html_url":"https://github.com/smkrv/ha-text-ai","commit_stats":null,"previous_names":["smkrv/ha-text-ai"],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smkrv%2Fha-text-ai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smkrv%2Fha-text-ai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smkrv%2Fha-text-ai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smkrv%2Fha-text-ai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smkrv","download_url":"https://codeload.github.com/smkrv/ha-text-ai/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248989163,"owners_count":21194543,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","anthropic","anthropic-claude","artificial-intelligence","deepseek","deepseek-api","gpt","hacs","hacs-custom","hacs-integration","home-assistant","home-assistant-integration","homeassistant","llm","natural-language-processing","openai-api","openrouter","openrouter-api","sonnet","text-analysis"],"created_at":"2024-11-21T23:13:29.078Z","updated_at":"2025-04-15T01:34:31.191Z","avatar_url":"https://github.com/smkrv.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🤖 HA Text AI for Home Assistant\n\n\u003cdiv align=\"center\"\u003e  \n\n  ![GitHub release](https://img.shields.io/github/v/release/smkrv/ha-text-ai?style=flat-square) ![GitHub last commit](https://img.shields.io/github/last-commit/smkrv/ha-text-ai?style=flat-square) [![License: CC BY-NC-SA 4.0](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg?style=flat-square)](https://creativecommons.org/licenses/by-nc-sa/4.0/) [![hacs_badge](https://img.shields.io/badge/HACS-Custom-41BDF5.svg?style=flat-square)](https://github.com/hacs/integration)  \n  ![Deutsch](https://img.shields.io/badge/lang-DE-blue?style=flat-square) ![English](https://img.shields.io/badge/lang-EN-blue?style=flat-square) ![Español](https://img.shields.io/badge/lang-ES-blue?style=flat-square) ![हिन्दी](https://img.shields.io/badge/lang-HI-blue?style=flat-square) ![Italiano](https://img.shields.io/badge/lang-IT-blue?style=flat-square) ![Русский](https://img.shields.io/badge/lang-RU-blue?style=flat-square) ![Српски](https://img.shields.io/badge/lang-SR-blue?style=flat-square) ![中文](https://img.shields.io/badge/lang-ZH-blue?style=flat-square)\n\n\n  \u003cimg src=\"https://github.com/smkrv/ha-text-ai/blob/15c717fcb0204bf4a0d4b4b4c6f0bb93e9f6c9a9/custom_components/ha_text_ai/icons/logo%402x.png\" alt=\"HA Text AI\" style=\"width: 50%; max-width: 256px; max-height: 128px; aspect-ratio: 2/1; object-fit: contain;\"/\u003e\n\n### Advanced AI Integration for [Home Assistant](https://www.home-assistant.io/) with LLM multi-provider support\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\nTransform your smart home experience with powerful AI assistance powered by multiple AI providers including OpenAI GPT, DeepSeek and Anthropic Claude models. Get intelligent responses, automate complex scenarios, and enhance your home automation with advanced natural language processing.\n\n\u003c/p\u003e\n\n---\n\n\u003e [!IMPORTANT]\n\u003e 🤝 Community Driven: for more details on the integration,   \n\u003e check out the discussion on the **[Home Assistant Community forum](https://community.home-assistant.io/t/ha-text-ai-transforming-home-automation-through-multi-llm-integration/799741)**\n\u003e\n\u003e  \u003ca href=\"https://my.home-assistant.io/redirect/hacs_repository/?owner=smkrv\u0026repository=ha-text-ai\u0026category=Integration\"\u003e\u003cimg src=\"https://my.home-assistant.io/badges/hacs_repository.svg\" width=\"210\" height=\"auto\"\u003e\u003c/a\u003e\n\u003e  \n\u003e [Screenshots](assets/images/screenshots/screenshot.jpg)\n\n## 🌟 Features\n\n- 🧠 **Multi-Provider AI Integration**: Support for OpenAI GPT, DeepSeek and Anthropic Claude models\n- 💬 **Advanced Language Processing**: Context-aware, multi-turn conversations\n- 📝 **Enhanced Memory Management**: Secure file-based history storage\n- ⚡ **Performance Optimization**: Efficient token usage and smart rate limiting\n- 🎯 **Advanced Customization**: Per-request model and parameter selection\n- 🔒 **Enhanced Security**: Secure API key management and usage monitoring\n- 🎨 **Improved User Experience**: Intuitive configuration and rich interfaces\n- 🔄 **Automation Integration**: Event-driven responses and template compatibility\n\n\u003cdetails\u003e\n\u003csummary\u003e📦 Detailed Feature Breakdown\u003c/summary\u003e\n\n### 🧠 **Multi-Provider AI Integration**\n- Support for OpenAI GPT models\n- Anthropic Claude integration\n- DeepSeek integration\n- Custom API endpoints\n- Flexible model selection\n\n### 💬 **Advanced Language Processing**\n- Context-aware responses\n- Multi-turn conversations\n- Custom system instructions\n- Natural conversation flow\n\n### 📝 **Enhanced Memory Management**\n- File-based conversation history storage\n- Automatic history rotation\n- Configurable history size limits\n- Secure storage in Home Assistant\n\n### ⚡ **Performance Optimization**\n- Efficient token usage\n- Smart rate limiting\n- Response caching\n- Request interval control\n\n### 🎯 **Advanced Customization**\n- Per-request model selection\n- Adjustable parameters\n- Custom system prompts\n- Temperature control\n\n### 🔒 **Enhanced Security**\n- Secure API key storage\n- Rate limiting protection\n- Error handling\n- Usage monitoring\n\n### 🎨 **Improved User Experience**\n- Intuitive configuration UI\n- Detailed sensor attributes\n- Rich service interface\n- Model selection UI\n\n### 🔄 **Automation Integration**\n- Event-driven responses\n- Conditional logic support\n- Template compatibility\n- Model-specific automation\n\n\u003c/details\u003e\n\n#### 🌐 Translations\n\n| Code | Language | Status |\n|------|----------|--------|\n| 🇩🇪 de | Deutsch | Full |\n| 🇬🇧 en | English | Primary |\n| 🇪🇸 es | Español | Full |\n| 🇮🇳 hi | हिन्दी | Full |\n| 🇮🇹 it | Italiano | Full |\n| 🇷🇺 ru | Русский | Full |\n| 🇷🇸 sr | Српски | Full |\n| 🇨🇳 zh | 中文 | Full |\n\n## 📋 Prerequisites\n\n- Home Assistant 2024.11 or later\n- Active API key from:\n  - OpenAI ([Get key](https://platform.openai.com/account/api-keys))\n  - Anthropic ([Get key](https://console.anthropic.com/))\n  - DeepSeek 🆕 ([Get key](https://platform.deepseek.com/api_keys))\n  - OpenRouter ([Get key](https://openrouter.ai/keys))\n  - Any OpenAI-compatible API provider\n- Python 3.9 or newer\n- Stable internet connection\n\n## Configuration Options\n\n### 🔧 **Core Configuration Settings**\n- 🌐 **API Provider**: OpenAI/Anthropic/DeepSeek\n- 🔑 **API Key**: Provider-specific authentication\n- 🤖 **Model Selection**: Flexible, provider-specific models\n- 🌡️ **Temperature**: Creativity control (0.0-2.0)\n- 📏 **Max Tokens**: Response length limit (passed directly to the LLM API to control the maximum length of the response)\n- ⏱️ **Request Interval**: API call throttling\n- 💾 **History Size**: Number of messages to retain\n- 🌍 **Custom API Endpoint**: Optional advanced configuration\n\n\u003cdetails\u003e\n\u003csummary\u003e🌐 Potentially Compatible Providers\u003c/summary\u003e\n\n#### Flexible Provider Ecosystem\nThe integration is designed to be flexible and may work with other providers offering OpenAI-compatible APIs:\n- Groq\n- Together AI\n- Perplexity AI\n- Mistral AI\n- Google AI\n- Local AI servers (like Ollama)\n- Custom OpenAI-compatible endpoints\n\n#### 🚨 Compatibility Notes\n- Not all providers guarantee full compatibility\n- Performance may vary between providers\n- Check individual provider's documentation\n- Ensure your API key has sufficient credits/quota\n\n#### 🔍 Provider Compatibility Requirements\nTo be compatible, a provider should support:\n- OpenAI-like REST API structure\n- JSON request/response format\n- Standard authentication method\n- Similar model parameter handling\n\n\u003c/details\u003e\n\n## ⚡ Installation\n\n### HACS Installation (Recommended)\n\u003ca href=\"https://my.home-assistant.io/redirect/hacs_repository/?owner=smkrv\u0026repository=ha-text-ai\u0026category=Integration\"\u003e\u003cimg src=\"https://my.home-assistant.io/badges/hacs_repository.svg\" width=\"170\" height=\"auto\"\u003e\u003c/a\u003e\n1. Open HACS in Home Assistant\n2. Click on \"Integrations\"\n3. Click \"...\" in top right corner\n4. Select \"Custom repositories\"\n5. Add repository URL: `https://github.com/smkrv/ha-text-ai`\n6. Choose \"Integration\" as category\n7. Click \"Download\"\n8. Restart Home Assistant\n\nNote: Also Integration has been submitted to HACS store and is currently pending review in [pull request #2896](https://github.com/hacs/default/pull/2896).\n\n### Manual Installation\n1. Download the latest release\n2. Extract and copy `custom_components/ha_text_ai` to your `custom_components` directory\n3. Restart Home Assistant\n4. Add configuration via UI or YAML\n\n## ⚙️ Configuration\n\n### Via UI (Recommended)\n1. Go to Settings → Devices \u0026 Services\n2. Click \"Add Integration\"\n3. Search for \"HA Text AI\"\n4. Follow the configuration steps\n\n\u003cdetails\u003e\n\u003csummary\u003e📦 Via YAML (Advanced)\u003c/summary\u003e\n\n### Platform Configuration (Global Settings)\n\n```yaml\nha_text_ai:\n  api_provider: openai  # Required\n  api_key: !secret ai_api_key  # Required\n  model: gpt-4o-mini  # Strongly recommended\n  temperature: 0.7  # Optional\n  max_tokens: 1000  # Optional\n  request_interval: 1.0  # Optional\n  api_endpoint: https://api.openai.com/v1  # Required\n  system_prompt: |  # Optional\n    You are a home automation expert assistant.\n    Focus on practical and efficient solutions.\n```\n\n### Sensor Configuration\n\n```yaml\nsensor:\n  - platform: ha_text_ai\n    name: \"My AI Assistant\"  # Required, unique identifier\n    api_provider: openai  # Optional (inherits from platform)\n    model: \"gpt-4o-mini\"  # Optional\n    temperature: 0.7  # Optional\n    max_tokens: 1000  # Optional\n```\n\n### 📋 Configuration Parameters\n\n#### Platform Configuration\n\n| Parameter | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `api_provider` | String | ✅ | - | AI service provider (openai, anthropic) |\n| `api_key` | String | ✅ | - | Authentication key for AI service |\n| `model` | String | ⚠️ | Provider default | Strongly recommended: Specific AI model to use. If not specified, the provider's default model will be used |\n| `temperature` | Float | ❌ | 0.7 | Response creativity level (0.0-2.0) |\n| `max_tokens` | Integer | ❌ | 1000 | Maximum response length |\n| `request_interval` | Float | ❌ | 1.0 | Delay between API requests |\n| `api_endpoint` | URL | ⚠️ | Provider default | Custom API endpoint |\n| `system_prompt` | String | ❌ | - | Default context for AI interactions |\n| `max_history_size` | Integer | ❌ | 100 | Maximum number of conversation entries to store |\n| `history_file_size` | Integer | ⚠️  | 1 | Maximum history file size in MB |\n\n#### Sensor Configuration\n\n| Parameter | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `platform` | String | ✅ | - | Must be `ha_text_ai` |\n| `name` | String | ✅ | - | Unique sensor identifier |\n| `api_provider` | String | ❌ | Platform setting | Override global provider |\n| `model` | String | ⚠️ | Platform setting | Recommended: Override global model. If not specified, uses platform or provider default |\n| `temperature` | Float | ❌ | Platform setting | Override global temperature |\n| `max_tokens` | Integer | ❌ | Platform setting | Override global max tokens |\n\n\u003c/details\u003e\n\n## 🛠️ Available Services\n\n### ask_question\n```yaml\nservice: ha_text_ai.ask_question\ndata:\n  question: \"What's the optimal temperature for sleeping?\"\n  model: \"claude-3-sonnet\"  # optional\n  temperature: 0.5  # optional\n  max_tokens: 500  # optional\n  context_messages: 10  #optional, number of previous messages to include in context, default: 5\n  system_prompt: \"You are a sleep optimization expert\"  # optional\n  instance: sensor.ha_text_ai_gpt\n```\n\n### set_system_prompt\n```yaml\nservice: ha_text_ai.set_system_prompt\ndata:\n  instance: sensor.ha_text_ai_gpt\n  prompt: |\n    You are a home automation expert focused on:\n    1. Energy efficiency\n    2. Comfort optimization\n    3. Security considerations\n    Provide practical, actionable advice.\n```\n\n### clear_history\n```yaml\nservice: ha_text_ai.clear_history\ndata:\n  instance: sensor.ha_text_ai_gpt\n```\n\n### get_history\n```yaml\nservice: ha_text_ai.get_history\ndata:\n  limit: 5  # optional\n  filter_model: \"gpt-4o\"  # optional\n  instance: sensor.ha_text_ai_gpt\n```\n\n### 🏷️ HA Text AI Sensor Naming Convention\n\n#### Character Restrictions  \n- Only lowercase letters (a-z)  \n- Numbers (0-9)  \n- Underscore (_)  \n- Maximum length: 50 characters (including `ha_text_ai_`)\n\n#### Sensor Name Structure\n```yaml\n# Always starts with 'sensor.ha_text_ai_'\n# You define only the part after the underscore\nsensor.ha_text_ai_YOUR_UNIQUE_SUFFIX\n\n# Examples:\nsensor.ha_text_ai_gpt      # GPT-based sensor\nsensor.ha_text_ai_claude   # Claude-based sensor\nsensor.ha_text_ai_abc      # Custom suffix\n```\n\n#### Response Retrieval\n```yaml\n# Use your specific sensor name\n{{ state_attr('sensor.ha_text_ai_gpt', 'response') }}\n```\n\n#### Practical Usage\n```yaml\nautomation:\n  - alias: \"AI Response with Custom Sensor\"\n    action:\n      - service: ha_text_ai.ask_question\n        data:\n          question: \"Home automation advice\"\n          instance: sensor.ha_text_ai_gpt\n      - service: notify.mobile\n        data:\n          message: \u003e\n            AI Tip:\n            {{ state_attr('sensor.ha_text_ai_gpt', 'response') }}\n```\n\n### 💡 Naming Rules\n- Prefix is always `sensor.ha_text_ai_`\n- Add your unique identifier after the underscore\n- Use lowercase\n- No spaces allowed\n- Keep it descriptive but concise\n\n### 🔍 HA Text AI Sensor Attributes\n\n- 🤖 **Model and Provider Information**: Tracking current AI model and service provider\n- 🚦 **System Status**: Real-time API and processing readiness\n- 📊 **Performance Metrics**: Request success rates and response times\n- 💬 **Conversation Tracking**: Token usage and interaction history are estimated using a heuristic method based on word count and specific word characteristics, which may differ from actual token usage.\n- 🕒 **Last Interaction Details**: Recent query and response tracking\n- ❤️ **System Health**: Error monitoring and service uptime\n\n\u003cdetails\u003e\n\u003csummary\u003e📦 Detailed Sensor Attributes\u003c/summary\u003e\n\n#### Model and Provider Information\n```yaml\n# Name of the AI model currently in use (e.g., latest version of GPT)  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Model') }}           # gpt-4o  \n\n# Service provider for the AI model (determines API endpoint and authentication)  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Api provider') }}    # openai  \n\n# Previous or alternative model configuration  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Last model') }}      # gpt-4o\n```\n\n#### System Status\n```yaml\n# Current operational readiness of the AI service API  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Api status') }}      # ready  \n\n# Indicates if a request is currently being processed  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Is processing') }}   # false  \n\n# Shows if the API has hit its request rate limit  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Is rate limited') }} # false  \n\n# Status of the specific API endpoint being used  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Endpoint status') }} # ready\n```\n\n#### Performance Metrics\n```yaml\n# Total number of successfully completed API requests  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Successful requests') }}   # 0  \n\n# Number of API requests that encountered errors  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Failed requests') }}       # 0  \n\n# Mean time taken to receive a response from the AI service  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Average latency') }}       # 0  \n\n# Maximum time taken for a single request-response cycle  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Max latency') }}           # 0\n```\n\n#### Conversation and Token Usage\n```yaml\n# Number of previous interactions stored in conversation context  \n{{ state_attr('sensor.ha_text_ai_gpt', 'History size') }}          # 0  \n\n# Total number of tokens used across all interactions  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Total tokens') }}          # 0  \n\n# Tokens used in the input prompts  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Prompt tokens') }}         # 0  \n\n# Tokens used in the AI's generated responses  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Completion tokens') }}     # 0\n\n# Number of entries in current history file\n{{ state_attr('sensor.ha_text_ai_gpt', 'History size') }}          # 0  \n\n# Last few conversation entries (limited to 1 for performance)\n{{ state_attr('sensor.ha_text_ai_gpt', 'conversation_history') }}  # [...]\n```\n\n#### Last Interaction Details\n```yaml\n# Most recent complete response generated by the AI service  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Response') }}        # Last AI response  \n\n# The most recently processed user query or prompt  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Question') }}        # Last asked question  \n\n# Precise moment when the last interaction occurred (useful for tracking and logging)  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Last timestamp') }}  # Timestamp\n```\n\n#### System Health\n```yaml\n# Cumulative count of all errors encountered during AI service interactions  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Total errors') }}    # 0  \n\n# Indicates if the AI service is currently undergoing scheduled or emergency maintenance  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Is maintenance') }}  # false  \n\n# Total continuous operational time of the AI service (in hours or days)  \n{{ state_attr('sensor.ha_text_ai_gpt', 'Uptime') }}          # 547,58\n```\n\n### History Storage\nConversation history stored in `.storage/ha_text_ai_history/` directory:\n- Each instance has its own history file (JSON)\n- Files are automatically rotated when size limit is reached\n- Archived history files are timestamped\n- Default maximum file size: 1MB\n\n### 💡 Pro Tips\n- Always check attribute existence\n- Use these attributes for monitoring and automation\n- Some values might be 0 or empty initially\n\n\u003c/details\u003e\n\n## 📘 FAQ\n\n**Q: Which AI providers are supported?**\nA: Currently OpenAI (GPT models) and Anthropic (Claude models) are supported, with more providers planned.\n\n**Q: How can I reduce API costs?**\nA: Use GPT-3.5-Turbo or Claude-3-Sonnet for most queries, implement caching, and optimize token usage.\n\n**Q: Are there limitations on the number of requests?**\nA: Depends on your API provider's plan. We recommend monitoring usage and implementing request throttling via `request_interval` configuration.\n\n**Q: Can I use custom models?**\nA: Yes, you can configure custom endpoints and use any compatible model by specifying it in the configuration.\n\n**Q: How do I switch between different AI providers?**\nA: Simply change the model parameter in your configuration or service calls to use the desired provider's model.\n\n**Q: How can I reduce API costs?**\nA: Use GPT-3.5-Turbo for most queries, implement caching, and optimize token usage.\n\n**Q: Is my data secure?**\nA: Yes, your data is secure. The system operates entirely on your local machine, keeping your data under your control. API keys are stored securely and all external communications use encrypted connections.\n\n**Q: How do context messages work?**\nA: Context messages allow the AI to remember and reference previous conversation history. By default, 5 previous messages are included, but you can customize this from 1 to 20 messages to control the conversation depth and token usage.\n\n**Q: Where is conversation history stored?**  \nA: History is stored in files under the `.storage/ha_text_ai_history/` directory, with automatic rotation and size management.\n\n**Q: Can I access old conversation history?**  \nA: Yes, archived history files are stored with timestamps and can be accessed manually if needed.\n\n**Q: How much history is kept?**  \nA: By default, up to 100 conversations are stored, but this can be configured. Files are automatically rotated when they reach 1MB.\n\n## 🤝 Contributing\n\nContributions welcome! Please read our [Contributing Guide](CONTRIBUTING.md).\n\n1. Fork the repository\n2. Create feature branch (`git checkout -b feature/Enhancement`)\n3. Commit changes (`git commit -m 'Add Enhancement'`)\n4. Push branch (`git push origin feature/Enhancement`)\n5. Open Pull Request\n\n## Legal Disclaimer and Limitation of Liability  \n\n### Software Disclaimer  \n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,   \nINCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A   \nPARTICULAR PURPOSE AND NONINFRINGEMENT.  \n\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   \nDAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,   \nARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER   \nDEALINGS IN THE SOFTWARE.  \n\n## 📝 License\n\nAuthor: SMKRV\n[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) - see [LICENSE](LICENSE) for details.\n\n## 💡 Support the Project\n\nThe best support is:\n- Sharing feedback\n- Contributing ideas\n- Recommending to friends\n- Reporting issues\n- Star the repository\n\nIf you want to say thanks financially, you can send a small token of appreciation in USDT:\n\n**USDT Wallet (TRC10/TRC20):**\n`TXC9zYHYPfWUGi4Sv4R1ctTBGScXXQk5HZ`\n\n*Open-source is built by community passion!* 🚀\n\n---\n\n\u003cdiv align=\"center\"\u003e\u003cimg src=\"https://github.com/smkrv/ha-text-ai/blob/2aaf3405759eb2d97624834594e24ace896131df/assets/images/icons/footer_icon.png\" alt=\"HA Text AI\" style=\"width: 128px; height: auto;\"/\u003e\u003c/div\u003e  \n\u003cdiv align=\"center\"\u003e\n\nMade with ❤️ for the Home Assistant Community,  \nutilizing Claude 3.5 Sonnet, Gemini Pro 1.5, and Qwen 2.5 Coder 32B Instruct.\n\n[Report Bug](https://github.com/smkrv/ha-text-ai/issues) · [Request Feature](https://github.com/smkrv/ha-text-ai/issues)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmkrv%2Fha-text-ai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmkrv%2Fha-text-ai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmkrv%2Fha-text-ai/lists"}