A simple and intuitive wrapper around OpenAI Compatible APIs with tool support
Project description
Lazy AI
A simple and intuitive wrapper around OpenAI compatible APIs with built-in tool support.
Features
- Easy-to-use AI assistant with conversation memory
- Simple tool/function calling with decorators
- Automatic conversation history management
- Save and load conversations
- Support for multiple AI providers (OpenAI, Groq, etc.)
- Configurable model parameters
Installation
pip install lazy-ai
Quick Start
from lazyai import Assistant
assistant = Assistant(api_key="your-api-key-here")
# Simple chat
response = assistant.chat("Hello! What's the weather like?")
print(response)
# With tools
@assistant.tool("Get the current weather for a city")
def get_weather(city: str) -> str:
# Your weather API logic here
return f"The weather in {city} is sunny and 72°F"
# The AI can now call your function
response = assistant.chat("What's the weather in New York?")
print(response) # AI will call get_weather("New York") and respond
Advanced Usage
Using with Groq
from lazyai import Assistant
assistant = Assistant(
api_key="your-groq-api-key",
base_url="https://api.groq.com/openai/v1",
model="llama-3.3-70b-versatile"
)
Multiple Tools
@assistant.tool("Calculate the sum of two numbers")
def add(x: int, y: int) -> int:
return x + y
@assistant.tool("Get user information from database")
def get_user(user_id: str) -> dict:
# Your database logic here
return {"id": user_id, "name": "John Doe"}
response = assistant.chat("Add 5 and 3, then get user info for user123")
Conversation Management
# Get conversation history
history = assistant.get_conversation_history()
# Clear conversation (keeps system prompt)
assistant.clear_conversation()
# Save conversation
assistant.save_conversation("chat_history.json")
# Load conversation
assistant.load_conversation("chat_history.json")
API Reference
Assistant
Assistant(
api_key: str,
base_url: str,
model: str,
system_prompt: str = "You are a helpful AI assistant.",
temperature: float = 0.7,
max_tokens: Optional[int] = None
)
Methods
chat(message: str) -> str: Send a message and get a responsetool(description: str = ""): Decorator to register functions as toolsget_conversation_history() -> List[Dict[str, Any]]: Get conversation historyclear_conversation(): Clear conversation historysave_conversation(filename: str): Save conversation to JSON fileload_conversation(filename: str): Load conversation from JSON file
Requirements
- Python 3.8+
License
MIT License - see LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
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
eyai-1.0.2.tar.gz
(7.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
eyai-1.0.2-py3-none-any.whl
(5.6 kB
view details)
File details
Details for the file eyai-1.0.2.tar.gz.
File metadata
- Download URL: eyai-1.0.2.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
258f0ea569e55559ab518b12b36fc7fc1b5c663880ec6389a3aa9759436ff558
|
|
| MD5 |
f0ed1d2628a2c35b442976f87bc987c6
|
|
| BLAKE2b-256 |
d28ee2f59fa9d9571a1fc44904767cbcaee0fabe6dd6e13628f3a11fa3e8e75f
|
File details
Details for the file eyai-1.0.2-py3-none-any.whl.
File metadata
- Download URL: eyai-1.0.2-py3-none-any.whl
- Upload date:
- Size: 5.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d3223cd80d5b93dfd03539cf4395550e36bed652368776293370f260c319a3a
|
|
| MD5 |
99b446e7dde02e98be7097b836d6a8d3
|
|
| BLAKE2b-256 |
10d9ecef36421e57a3090eb840ac11f23a7b4125c9b2184726dbb67cd48ec704
|