Simple unified API for multiple AI services.
Project description
ClientAI
A unified client for seamless interaction with multiple AI providers.
ClientAI is a Python package that provides a unified interface for interacting with multiple AI providers, including OpenAI, Replicate, and Ollama. It offers seamless integration and consistent methods for text generation and chat functionality across different AI platforms.
Documentation: [link-to-your-documentation]
Features
- 🔄 Unified Interface: Consistent methods for text generation and chat across multiple AI providers.
- 🔌 Multiple Providers: Support for OpenAI, Replicate, and Ollama, with easy extensibility for future providers.
- 🌊 Streaming Support: Efficient streaming of responses for real-time applications.
- 🎛️ Flexible Configuration: Easy setup with provider-specific configurations.
- 🔧 Customizable: Extensible design for adding new providers or customizing existing ones.
- 🧠 Type Hinting: Comprehensive type annotations for better development experience.
- 🔒 Provider Isolation: Optional installation of provider-specific dependencies to keep your environment lean.
Requirements
Before installing ClientAI, ensure you have the following:
- Python: Version 3.9 or newer.
- Dependencies: The core ClientAI package has minimal dependencies. Provider-specific packages (e.g.,
openai
,replicate
,ollama
) are optional and can be installed separately.
Installing
To install ClientAI with all providers, run:
pip install clientai[all]
Or, if you prefer to install only specific providers:
pip install clientai[openai] # For OpenAI support
pip install clientai[replicate] # For Replicate support
pip install clientai[ollama] # For Ollama support
Usage
ClientAI provides a simple and consistent way to interact with different AI providers. Here are some examples:
Initializing the Client
from clientai import ClientAI
# Initialize with OpenAI
openai_client = ClientAI('openai', api_key="your-openai-key")
# Initialize with Replicate
replicate_client = ClientAI('replicate', api_key="your-replicate-key")
# Initialize with Ollama
ollama_client = ClientAI('ollama', host="your-ollama-host")
Generating Text
# Using OpenAI
response = openai_client.generate_text(
"Tell me a joke",
model="gpt-3.5-turbo",
)
# Using Replicate
response = replicate_client.generate_text(
"Explain quantum computing",
model="meta/llama-2-70b-chat:latest",
)
# Using Ollama
response = ollama_client.generate_text(
"What is the capital of France?",
model="llama2",
)
Chat Functionality
messages = [
{"role": "user", "content": "What is the capital of France?"},
{"role": "assistant", "content": "Paris."},
{"role": "user", "content": "What is its population?"}
]
# Using OpenAI
response = openai_client.chat(
messages,
model="gpt-3.5-turbo",
)
# Using Replicate
response = replicate_client.chat(
messages,
model="meta/llama-2-70b-chat:latest",
)
# Using Ollama
response = ollama_client.chat(
messages,
model="llama2",
)
Streaming Responses
for chunk in client.generate_text(
"Tell me a long story",
model="gpt-3.5-turbo",
stream=True
):
print(chunk, end="", flush=True)
Development
To set up the development environment:
- Clone the repository
- Install development dependencies:
pip install -e ".[dev]"
- Run tests:
pytest
Contributing
Contributions to ClientAI are welcome! Please refer to our Contributing Guidelines for more information.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgements
- This project was inspired by the need for a unified interface across multiple AI providers.
- Thanks to the open-source community for their invaluable contributions and feedback.
Contact
[Your Name] – @your_twitter_handle – your.email@example.com
Project Link: https://github.com/yourusername/clientai
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.