Adapters as API gateways to Different LLM Models
Project description
LLM Adapters
LLM Adapters provides a unified interface for interacting with various language model APIs, supporting both synchronous and asynchronous operations. Whether you're using OpenAI, Claude, or other providers, this library simplifies integration and offers flexibility in usage.
Installation
To install llm-adapters for use in your projects, simply run:
pip install llm-adapters
Usage
Package is using OpenAI SDK format, so you can use it as a drop in replacement for the OpenAI SDK, just need to change the import. It works both for synchronous and asynchronous clients.
from llm_adapters import OpenAI
client = OpenAI()
completion = client.chat.completions.create(
model="claude-3-5-sonnet-20241022",
messages=[
{"role": "developer", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
]
)
print(completion.choices[0].message)
Note: If you plan to contribute to this project, you'll need Poetry to set up the development environment. After cloning the repository, run:
poetry install
poetry run pre-commit install
Getting Started
Prerequisites
- Python 3.11+
- Poetry (if using Poetry)
Setup
- Copy
.env-exampleto.envand fill in the necessary environment variables.
Supported Models
Adapter paths follow the format provider/vendor/model_name. Use AdapterFactory.get_supported_models() to retrieve all supported models. For any model, calling .get_path() will return its adapter path.
Configuration and Environment
LLM Adapters can be customized via environment variables. For example, configure the HTTP client settings with:
ADAPTERS_MAX_KEEPALIVE_CONNECTIONS_PER_PROCESS = 100
ADAPTERS_MAX_CONNECTIONS_PER_PROCESS = 1000
ADAPTERS_HTTP_CONNECT_TIMEOUT = 5
ADAPTERS_HTTP_TIMEOUT = 600
To override base URLs for testing or specific setups:
_ADAPTERS_OVERRIDE_ALL_BASE_URLS_ = "https://new-base-url.com/api"
Testing and Pre-commit
- Run tests with:
poetry run pytest
- Validate code using pre-commit hooks:
poetry run pre-commit run --all-files
Contributing
We welcome contributions! To contribute:
- Fork the repository.
- Create a branch for your feature or bug fix.
- Update tests and documentation as necessary.
- Run existing tests and pre-commit checks.
- Submit a pull request.
Versioning
This project adheres to Semantic Versioning.
Additional Resources
For complete documentation and a list of supported models, please visit our Documentation Site.
Happy coding!
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_adapters-8.14.1.tar.gz.
File metadata
- Download URL: llm_adapters-8.14.1.tar.gz
- Upload date:
- Size: 33.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.13.5 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8f3d267dfb495a369ec826fd0d8bc5328d6147f1832e043febc87893b7f60fd
|
|
| MD5 |
81c30f65220241d17aceeda42c61a472
|
|
| BLAKE2b-256 |
6a2db679ec117b5fd4e4ffdf6cb8ab4ff79b6f7beb90b34698dd2355dd8abdd6
|
File details
Details for the file llm_adapters-8.14.1-py3-none-any.whl.
File metadata
- Download URL: llm_adapters-8.14.1-py3-none-any.whl
- Upload date:
- Size: 56.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.13.5 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abed86cdc64b543508b05de6772c7dacd7a5f0e3a25a7194d09fdacbe412b9ac
|
|
| MD5 |
eccd4b386e1ccb10d5dc43e579991df4
|
|
| BLAKE2b-256 |
ce9e90d8ea086ad1fb60153394fbb6b961adc359309215c323bc79a79e37eeef
|