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.98.tar.gz
(11.6 kB
view details)
Built Distribution
File details
Details for the file llm_dialog_manager-0.1.98.tar.gz
.
File metadata
- Download URL: llm_dialog_manager-0.1.98.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 | f883a64b9f7e2882299d65fcef84f4d2e61a5a71f4d42d28e975625201bdf2d9 |
|
MD5 | 2ed4c25a37ff50a7a767a0c0a75937ea |
|
BLAKE2b-256 | e0b34a39f3da40a924cf3455ecd08564cfbd59c644cf24ae7a3ab2fd0a46a540 |
File details
Details for the file llm_dialog_manager-0.1.98-py3-none-any.whl
.
File metadata
- Download URL: llm_dialog_manager-0.1.98-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 | d71effbcb83ad4d7badf8116bb52abfe28564310cf6c04fe4d9e894be08a7bb3 |
|
MD5 | a7f916f837e2bbf8b31cecffc95d4b9c |
|
BLAKE2b-256 | 7aa496431401d2ad93f9b18fc895b93a46c4222f2634b52904026997aab048d8 |