A Python package for managing AI chat conversation history
Project description
LLM Dialog Manager
A Python package for managing AI chat conversation history with support for multiple LLM providers (OpenAI, Anthropic, Google, X.AI) and convenient conversation management features.
Features
- Support for multiple AI providers:
- OpenAI (GPT-3.5, GPT-4)
- Anthropic (Claude)
- Google (Gemini)
- X.AI (Grok)
- Intelligent message role management (system, user, assistant)
- Conversation history tracking and validation
- Load balancing across multiple API keys
- Error handling and retry mechanisms
- Conversation saving and loading
- Memory management options
- Conversation search and indexing
- Rich conversation display options
Installation
pip install ai-chat-history
Quick Start
Basic Usage
from llm_dialog_manager import ChatHistory
# Initialize with a system message
history = ChatHistory("You are a helpful assistant")
# Add messages
history.add_user_message("Hello!")
history.add_assistant_message("Hi there! How can I help you today?")
# Print conversation
print(history)
Using the AI Agent
from llm_dialog_manager import Agent
# Initialize an agent with a specific model
agent = Agent("claude-2.1", memory_enabled=True)
# Add messages and generate responses
agent.add_message("system", "You are a helpful assistant")
agent.add_message("user", "What is the capital of France?")
response = agent.generate_response()
# Save conversation
agent.save_conversation()
Advanced Features
Managing Multiple API Keys
from llm_dialog_manager import Agent
# Use specific API key
agent = Agent("gpt-4", api_key="your-api-key")
# Or use environment variables
# OPENAI_API_KEY_1=key1
# OPENAI_API_KEY_2=key2
# The system will automatically handle load balancing
Conversation Management
from llm_dialog_manager import ChatHistory
history = ChatHistory()
# Add messages with role validation
history.add_message("Hello system", "system")
history.add_message("Hello user", "user")
history.add_message("Hello assistant", "assistant")
# Search conversations
results = history.search_for_keyword("hello")
# Get conversation status
status = history.conversation_status()
history.display_conversation_status()
# Get conversation snippets
snippet = history.get_conversation_snippet(1)
history.display_snippet(1)
Environment Variables
Create a .env
file in your project root:
# OpenAI
OPENAI_API_KEY_1=your-key-1
OPENAI_API_BASE_1=https://api.openai.com/v1
# Anthropic
ANTHROPIC_API_KEY_1=your-anthropic-key
ANTHROPIC_API_BASE_1=https://api.anthropic.com
# Google
GEMINI_API_KEY=your-gemini-key
# X.AI
XAI_API_KEY=your-x-key
Development
Running Tests
pytest tests/
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
For support, please open an issue in the GitHub repository or contact the maintainers.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
llm_dialog_manager-0.1.0.tar.gz
(11.9 kB
view details)
Built Distribution
File details
Details for the file llm_dialog_manager-0.1.0.tar.gz
.
File metadata
- Download URL: llm_dialog_manager-0.1.0.tar.gz
- Upload date:
- Size: 11.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31579fd36359aea8fa199cd60e957cf0b05610235a5ccb9b6289698fa6676ee4 |
|
MD5 | 6e69004a29bc6e8cc6202bf47516e076 |
|
BLAKE2b-256 | 0c9c0bba07143e59b97cb278e0a6a9a747c1c6577101829d511478c70b5209f5 |
File details
Details for the file llm_dialog_manager-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: llm_dialog_manager-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1825e72f0b4e4ea7d126ad61276be5296a107e9282e2aea3dfb2005c533874ca |
|
MD5 | c7af859692897132169122984a600779 |
|
BLAKE2b-256 | 17b7287994bc6f43607171f1f68486b5a09f3a0f3eb54a78949da21ff64ed257 |