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
llm_dialog_manager-0.1.14.tar.gz
(11.6 kB
view details)
Built Distribution
File details
Details for the file llm_dialog_manager-0.1.14.tar.gz
.
File metadata
- Download URL: llm_dialog_manager-0.1.14.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 | f7fd9a33a88737ed4f8a53774dc3f822594eec353d15ee50c8ec0b04bbb60f1a |
|
MD5 | 56b1e635e8f5a9f1918e55d7d047828f |
|
BLAKE2b-256 | 62e7d810649c917e302b9985d03168345f70c5d1d0c0a1c6a52ad139398e182d |
File details
Details for the file llm_dialog_manager-0.1.14-py3-none-any.whl
.
File metadata
- Download URL: llm_dialog_manager-0.1.14-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 | b45922d27acd84da39020034887b208cfea5ae3b22daf092e89a66a90304f694 |
|
MD5 | 637093fced16a9f6cfd084ff6d351a49 |
|
BLAKE2b-256 | c40c9e5f358079584a44b8b7360a9298a5becd9490cc9d7344d9030b3545e012 |