A unified interface for multiple language model providers
Project description
LLM Nexus
LLM Nexus is a Python package that provides a unified interface for interacting with multiple Language Model providers, including OpenAI, Anthropic, and Google AI.
Features
- Unified API for multiple LLM providers
- Support for text completions and function calls
- Easy integration with OpenAI, Anthropic, and Google AI models
Installation
You can install LLM Nexus using pip:
pip install llm-nexus
Usage
Here's a quick example of how to use LLM Nexus:
from llm_nexus import ModelProvider
provider = ModelProvider(openai_api_key="your-openai-key", anthropic_api_key="your-anthropic-key", googleai_api_key="your-googleai-key")
result = provider.completion(
instructions="Return a rhyme.",
user_prompt="Would a rose by any other name smell as sweet?",
provider_name="openai",
model_name="gpt-3.5-turbo"
)
print(result)
# Example response: "Yes, a rose's fragrance can't be beat."
For function calls:
from llm_nexus import ModelProvider, Function, Argument, ParamType
provider = ModelProvider(openai_api_key="your-openai-key", anthropic_api_key="your-anthropic-key", googleai_api_key="your-googleai-key")
function = Function(
name="underrated_historical_events",
description="Name up to 3 underrated historical events based on the user's request",
arguments=[
Argument(name="event", param_type=ParamType.STRING, description="The name of the event."),
Argument(name="year", param_type=ParamType.INTEGER, description="The year the event began."),
Argument(name="reasoning", param_type=ParamType.STRING, description="A brief description of why you feel this event is underrated.")
],
)
result = provider.function_call(
user_prompt="What are some underrated A.D. events in African history?",
function=function,
provider_name="openai",
model_name="gpt-3.5-turbo",
return_array=True
)
print(result)
# Example reponse:
# {
# "array": [
# {
# "event": "Kingdom of Aksum",
# "year": 100,
# "reasoning": "One of the most powerful early medieval empires in East Africa, yet not widely known or studied in history classes."
# },
# {
# "event": "Mali Empire",
# "year": 1235,
# "reasoning": "A prosperous West African empire centered in Mali that controlled trade routes across the Sahara. Advanced cities and universities but its achievements are not always emphasized."
# },
# {
# "event": "Great Zimbabwe",
# "year": 1450,
# "reasoning": "Sophisticated city and trade center indicating a highly organized society, but origins are still debated and its influence on the region could be discussed more."
# }
# ]
# }
Supported Python Versions
LLM Nexus supports Python 3.7 and above.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
File details
Details for the file llm_nexus-0.2.0.tar.gz.
File metadata
- Download URL: llm_nexus-0.2.0.tar.gz
- Upload date:
- Size: 18.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1902c57556f5c064715c6724af3cf809d7db49ca14c9c14e153860ba0b739619
|
|
| MD5 |
8551427bc78c822c2272821cf38c67f1
|
|
| BLAKE2b-256 |
5d737209a94aa002a37b5c81a5e1ff09b23b9da95d46a11de8d94aa2264d6a2f
|
File details
Details for the file llm_nexus-0.2.0-py3-none-any.whl.
File metadata
- Download URL: llm_nexus-0.2.0-py3-none-any.whl
- Upload date:
- Size: 16.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4fcd7a4833e037c2601868260caba8c5486828cec11fb26c1661c267b609767
|
|
| MD5 |
b8b718abcd756afa7e886988d9c31bf1
|
|
| BLAKE2b-256 |
6cfb6404aa38e862f137e8b93e1b4bd5fc55189a5f10ea9aa49d55ce6421cb24
|