Skip to main content

A tiny language interpreter

Project description

🦜🔗🔍 Tinylang

Tinylang is a Python library that provides a unified interface for interacting with various Large Language Models (LLMs) including OpenAI's GPT, Anthropic's Claude, and Google's Gemini.

Documentation

Features

  • Unified API for multiple LLM providers
  • Support for OpenAI, Anthropic Claude, and Google Gemini
  • Synchronous and asynchronous invocation methods
  • Streaming support for real-time responses
  • Chat history management
  • Easy integration with existing projects

Installation

To install Tinylang, use pip:

pip install tinylang

Usage

Here's a quick example of how to use Tinylang:

from tinylang.llms import ChatOpenAI, ChatClaude, ChatGemini

# Initialize chat interfaces
openai_chat = ChatOpenAI("gpt-4o", chat_history=2)
claude_chat = ChatClaude("claude-3-opus-20240229", chat_history=2)
gemini_chat = ChatGemini("gemini-1.5-pro", chat_history=2)

# Use the chat interfaces
response = openai_chat.invoke("Hello, how are you?")
print(response)

# Streaming example
for chunk in claude_chat.stream_invoke("Tell me a joke"):
    print(chunk, end='')

# Async example
async def async_chat():
    response = await gemini_chat.ainvoke("What's the weather like today?")
    print(response)

# Run the async function
import asyncio
asyncio.run(async_chat())

API Reference

ChatOpenAI, ChatClaude, ChatGemini

These classes provide interfaces to their respective LLM providers. They share the following methods:

  • invoke(prompt: str) -> str: Synchronous invocation
  • ainvoke(prompt: str) -> str: Asynchronous invocation
  • stream_invoke(prompt: str) -> Iterator[str]: Synchronous streaming invocation
  • astream_invoke(prompt: str) -> AsyncIterable[str]: Asynchronous streaming invocation

ChatHistory

Manages the conversation history for the chat interfaces.

Configuration

Set the following environment variables for API authentication:

  • OPENAI_API_KEY for OpenAI
  • ANTHROPIC_API_KEY for Claude
  • GOOGLE_API_KEY for Gemini

Alternatively, you can pass the API keys directly when initializing the chat interfaces.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License.

More Information

For more detailed information about using Tinylang, please refer to our documentation.

To be Added

  • better docs
  • update gemini
  • refactor code

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

tinylang-4.2.0.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

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

tinylang-4.2.0-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file tinylang-4.2.0.tar.gz.

File metadata

  • Download URL: tinylang-4.2.0.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for tinylang-4.2.0.tar.gz
Algorithm Hash digest
SHA256 feb21055e4f0a7f12d04439a429a952f9cff96671bc457df747fd7365fae8328
MD5 1d55aa78f8c9ae5f24aaf88fe5c06ae5
BLAKE2b-256 5bcfdf73d465c86b3714cdafc35efaebfc23ae9062a1e8adf42c3a95a57b67c3

See more details on using hashes here.

File details

Details for the file tinylang-4.2.0-py3-none-any.whl.

File metadata

  • Download URL: tinylang-4.2.0-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for tinylang-4.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e5f7196a41e9b34aed0f171c175ecd79e9c418c32dc08f4788c5c454180ab66b
MD5 b2a82745a27cdc7e92bb9ce65d670852
BLAKE2b-256 acf4257adcd747847d71606e3e6ed62cbd7946ba2e8971ae96b02ec79b3377ef

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