Skip to main content

A modular AI API/chat manager supporting multiple backends

Project description

AI Chat Manager

A comprehensive Python package for managing AI-powered chat conversations with support for multiple backends, enhanced features, and extensible architecture.

Features

  • Multiple AI Backends: Support for OpenAI, Venice AI, HuggingFace, ElevenLabs, and more
  • Streaming Support: Real-time streaming responses
  • Function Calling: Advanced function calling capabilities
  • Vision Support: Image understanding with compatible models
  • Audio Generation: Text-to-speech with ElevenLabs
  • Conversation Management: Persistent conversation history with smart context handling
  • Rate Limiting: Built-in rate limiting and retry logic
  • Error Handling: Comprehensive error handling and conversion
  • CLI Interface: Easy-to-use command line interface
  • Extensible: Plugin architecture for adding new backends

Installation

pip install cybercore-ai-chat-manager

Quick Start

from ai_chat_manager import ChatManager, Config
from ai_chat_manager.backends import OpenAIBackend

# Create configuration
config = Config()
config.add_backend("openai", {
    "api_key": "your-openai-api-key",
    "model": "gpt-3.5-turbo"
})

# Create chat manager
manager = ChatManager(config)

# Start a conversation
response = await manager.chat("Hello, how are you?", backend="openai")
print(response.content)

Project Structure

ai_chat_manager/
├── __init__.py                  # Main package init
├── core/
│   ├── __init__.py
│   ├── types.py                 # Core type definitions
│   ├── exceptions.py            # Exception definitions
│   ├── config.py                # Configuration management
│   ├── bot.py                   # Bot implementation
│   └── manager.py               # Chat manager
├── backends/
│   ├── __init__.py              # Backend registry
│   ├── base.py                  # Base backend class
│   ├── openai_backend.py
│   ├── venice_backend.py
│   ├── huggingface_backend.py
│   └── elevenlabs_backend.py
├── cli/
│   ├── __init__.py
│   ├── main.py                  # Main CLI
│   └── wrapper.py               # CLI wrapper
├── utils/
│   ├── __init__.py
│   └── helpers.py               # Utility functions
└── examples/
    ├── basic.py
    └── advanced.py

Backend Support

OpenAI

  • GPT-3.5, GPT-4, and all variants
  • Function calling
  • Vision support (GPT-4V)
  • Streaming responses

Venice AI

  • Privacy-focused AI platform
  • Anonymous and censorship-resistant
  • OpenAI-compatible API
  • Enhanced privacy controls

HuggingFace

  • Inference API support
  • Local model support
  • Wide variety of open-source models
  • Custom model hosting

ElevenLabs

  • High-quality text-to-speech
  • Voice cloning
  • Multiple voice models
  • Streaming audio generation

Configuration

The package uses a comprehensive configuration system:

from ai_chat_manager.core.config import Config, BackendConfig

config = Config()

# Add OpenAI backend
openai_config = BackendConfig(
    name="openai",
    backend_type="openai",
    api_key="your-api-key",
    model="gpt-4",
    max_tokens=2000,
    temperature=0.7
)
config.add_backend_config(openai_config)

Error Handling

The package provides comprehensive error handling:

from ai_chat_manager.core.exceptions import (
    BackendError, AuthenticationError, RateLimitError,
    ModelNotFoundError, QuotaExceededError
)

try:
    response = await manager.chat("Hello")
except AuthenticationError:
    print("Invalid API key")
except RateLimitError:
    print("Rate limit exceeded")
except BackendError as e:
    print(f"Backend error: {e}")

CLI Usage

# Initialize configuration
ai-chat-manager init

# Basic commands (all three work identically)
ai-chat-manager --help
acm --help
chat-manager --help

# Backend management
ai-chat-manager backend add openai
ai-chat-manager backend list

# Bot management
ai-chat-manager bot create assistant
ai-chat-manager bot list

# Start chatting
ai-chat-manager chat assistant

# System status
ai-chat-manager status
ai-chat-manager doctor

Examples

See the examples/ directory for more detailed usage examples:

  • basic.py: Simple chat interactions
  • advanced.py: Advanced features like function calling, streaming, and conversation management

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Changelog

Version 1.0.0

  • Initial release
  • Support for OpenAI, Venice AI, HuggingFace, and ElevenLabs
  • Comprehensive configuration system
  • CLI interface with three command aliases: ai-chat-manager, acm, chat-manager
  • Error handling and retry logic
  • Conversation management
  • Streaming support
  • Function calling

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cybercore_ai_chat_manager-1.0.4.tar.gz (118.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cybercore_ai_chat_manager-1.0.4-py3-none-any.whl (129.2 kB view details)

Uploaded Python 3

File details

Details for the file cybercore_ai_chat_manager-1.0.4.tar.gz.

File metadata

File hashes

Hashes for cybercore_ai_chat_manager-1.0.4.tar.gz
Algorithm Hash digest
SHA256 63023e06569f48eb86febd827f895f590d3829e8b959946e6f87f4b33707873b
MD5 18c8abbb98284167b99e665e430b475b
BLAKE2b-256 01580c81cee432ac36e42d03e7c8455e074e2710189e1b81448458a8a8a5ef05

See more details on using hashes here.

File details

Details for the file cybercore_ai_chat_manager-1.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for cybercore_ai_chat_manager-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ddaa9ed2c1d58af9e90848c2c220d7c2bd3e0ed4b431ee61031d42b3c96f07ed
MD5 367e8765d99c9c0b0387d81baf7bf905
BLAKE2b-256 ca16f6cf6012aa864e3849cc1b64048ce74da05412a537a8029a6c3e208a6894

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page