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

  • 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

tinylang-4.0.0.tar.gz (11.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.0.0-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tinylang-4.0.0.tar.gz
Algorithm Hash digest
SHA256 1d2c61cee38ee1b8ca2a844eea9d6f43fb7303d4dd4d0789255aff7768964d47
MD5 8d56f89a9f320d1b22c1443500bf4d3f
BLAKE2b-256 4a5b60f07816a4dc4feefa9d55d439010cee894cc0e4a855e8023403aa643a30

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for tinylang-4.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c302ce1f4eea4bc30c5632fa976533ede7b801ea8ff3dd1b4e37b5014d395a26
MD5 609221030c99985d9e39e148cf447d12
BLAKE2b-256 8fe0abb66ea7cdca7673ef1638671a36f6806ec88023f90d6e8a3a2a3447522a

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