Skip to main content

A wrapper for various large language models including GPT, Claude, and Gemini

Project description

# LLM-Wrapper

LLM-Wrapper is a Python package that provides a unified interface for interacting with multiple Large Language Models (LLMs) including ChatGPT, Claude, and Gemini.

## Features

- Easy initialization of LLM clients
- Unified interface for generating outputs from different LLMs
- Support for multiple models within each LLM platform
- API key validation during initialization

## Installation

```bash
pip install WrappedLLM

Usage

Initializing LLMs

You can initialize LLMs individually or all at once:

from WrappedLLM import Initialize

# Initialize ChatGPT
Initialize.init_chatgpt("your_openai_api_key")

# Initialize Claude
Initialize.init_claude("your_anthropic_api_key")

# Initialize Gemini
Initialize.init_gemini("your_gemini_api_key")

# Initialize all LLMs at once
Initialize.init_all(
    chatgpt_api_key="your_openai_api_key",
    claude_api_key="your_anthropic_api_key",
    gemini_api_key="your_gemini_api_key"
)

Note: During initialization, a few tokens are used to verify that the provided API key is correct.

Generating Output

from WrappedLLM import Output

# Generate output using ChatGPT
gpt_response = Output.GPT("Tell me a joke about programming.")

# Generate output using Claude
claude_response = Output.Claude("Explain quantum computing in simple terms.")

# Generate output using Gemini
gemini_response = Output.Gemini("What are the benefits of renewable energy?")

Customizing Model Parameters

You can customize model parameters when generating output:

# Using a specific GPT model with custom temperature and max tokens
gpt_response = Output.GPT(
    "Summarize the history of artificial intelligence.",
    model="gpt-4o-mini-2024-07-18",
    temperature=0.7,
    max_tokens=2048
)

# Using a specific Claude model with custom temperature and max tokens
claude_response = Output.Claude(
    "Describe the process of photosynthesis.",
    model="claude-3-5-sonnet-20240620",
    temperature=0.5,
    max_tokens=1000
)

New Feature: GPT Function with Pydantic Class Outputs

You can now use the GPT function to return Pydantic class outputs. This provides a structured way to handle responses from the LLM.

Example:

from WrappedLLM import Initialize, Output
from pydantic import BaseModel

# Initialize the LLM
Initialize.init_chatgpt('your_api_key_here')

class CalendarEvent(BaseModel):
    name: str
    date: str
    participants: list[str]

# Use the Output class to interact with the LLM
response = Output.GPT(
    "Alice and Bob are going to a science fair on Friday.",
    system_prompt="Extract the event information.",
    response_format=CalendarEvent
)
print(response)

In this example, we define a CalendarEvent Pydantic class and use it as the response_format in the GPT function call. This allows the LLM to structure its response according to the defined class.

Available Models

You can get information about available LLM models using the get_llm_info() function:

from LLM.LLMModels import get_llm_info

llm_info = get_llm_info()

To get just the list of available models, you can use the LLM_MODELS dictionary:

from LLM.LLMModels import LLM_MODELS

available_models = LLM_MODELS

Note: While the get_llm_info() function includes information about image upload support, this functionality is not currently implemented in the LLM-Wrapper.

Error Handling

The package includes error handling for invalid API keys, unsupported models, and incorrect parameter values. Make sure to handle these exceptions in your code.

Contributing

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

License

This project is licensed under the MIT License.

This README provides an overview of the LLM-Wrapper package, including installation  instructions, usage examples for initializing LLMs and generating output, and information about customizing model parameters. It also mentions the API key validation during initialization and how to access the list of available models.

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

wrappedllm-0.1.2.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

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

WrappedLLM-0.1.2-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file wrappedllm-0.1.2.tar.gz.

File metadata

  • Download URL: wrappedllm-0.1.2.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.2

File hashes

Hashes for wrappedllm-0.1.2.tar.gz
Algorithm Hash digest
SHA256 6d9b6c23ae969b2a00dcb5920c7fc3c48deda06bd9eb523c8b90ce197a09b560
MD5 c8dbba02a23465ad54182f6a82a5a627
BLAKE2b-256 9cd52f6ec09111f97da34030aec5e587875310f2ff617ad049baecbdc720be21

See more details on using hashes here.

File details

Details for the file WrappedLLM-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: WrappedLLM-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.2

File hashes

Hashes for WrappedLLM-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b4718df0a068d53c9a408fd590c04fbd1a1a34741b6ebb65af709d3be371539b
MD5 38e31cc7bf76c31e3f6df0add22ab928
BLAKE2b-256 f786b894a539e2a8aa2623854dad51c187f89ae65eb26db85b310bedb1c37b44

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