Skip to main content

A simple and intuitive wrapper around OpenAI Compatible APIs with tool support

Project description

EYAI

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 eyai

Quick Start

from eyai 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 eyai 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 response
  • tool(description: str = ""): Decorator to register functions as tools
  • get_conversation_history() -> List[Dict[str, Any]]: Get conversation history
  • clear_conversation(): Clear conversation history
  • save_conversation(filename: str): Save conversation to JSON file
  • load_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.3.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

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

eyai-1.0.3-py3-none-any.whl (3.3 kB view details)

Uploaded Python 3

File details

Details for the file eyai-1.0.3.tar.gz.

File metadata

  • Download URL: eyai-1.0.3.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.2

File hashes

Hashes for eyai-1.0.3.tar.gz
Algorithm Hash digest
SHA256 db5db61fbf818eebe4946262d297057bdb45d95fe59a5a9c4272a929bbc22a04
MD5 42ff156c950ed1bc43b7a676ffa5fc34
BLAKE2b-256 3250114b878c8b59dd25c7f1f7fe8df9525ba9d487b7dd1a970ef8640973cb3d

See more details on using hashes here.

File details

Details for the file eyai-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: eyai-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 3.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.2

File hashes

Hashes for eyai-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 742f7e3e8e64c6e3fe0a57eda3ab23fb194982106e3d502cabc01ad670b9e123
MD5 d9480fe3ef137248c603d103b61f9326
BLAKE2b-256 dc713e079b457b9a5f1ea7014a332c795922e4ebd32ed92b6d2240e36430303d

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