A Python package for managing LLM 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 llm-dialog-manager
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
Built Distribution
File details
Details for the file llm_dialog_manager-0.1.322.tar.gz
.
File metadata
- Download URL: llm_dialog_manager-0.1.322.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c1591e776db063a7b7a1e9cba93be7423d7d550eddfff586275fc147d6ed314 |
|
MD5 | 856d02e6e378f1fa375d678e9cc31044 |
|
BLAKE2b-256 | 2f30cb825a45c1571b131f042d6fa8ce6b2b94929b1cffc0eb9fb043bfda0dda |
File details
Details for the file llm_dialog_manager-0.1.322-py3-none-any.whl
.
File metadata
- Download URL: llm_dialog_manager-0.1.322-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | df92aaeb6de62bda4b3a660e72743933e5af64009d2cbcebb7e992e5f4750ca3 |
|
MD5 | 38f5234e735e8777f34f1fd45a26c58b |
|
BLAKE2b-256 | 6b75c55ace46a84e1e502f910d0b03dbc2ecbd447a84f50af98eba087f7e7eb0 |