LingualLens
A unified interface for interacting with language models from multiple providers.
Features
- Multi-Provider Support: Interact with models from OpenAI, Anthropic, Google, and HuggingFace through a single consistent API
- Simple Interface: Generate text, classify sentiment, and extract entities with just a few lines of code
- Provider-Agnostic: Switch between different providers and models without changing your code
- Extensible: Easy to add support for additional providers
- Configurable: Configure models and providers through code or configuration files
Installation
# Basic installation
pip install linguallens
# With support for specific providers
pip install linguallens[openai] # OpenAI support
pip install linguallens[anthropic] # Anthropic support
pip install linguallens[google] # Google support
pip install linguallens[huggingface] # HuggingFace support
# Full installation with all providers
pip install linguallens[all]
Quick Start
from linguallens import LingualLens
# Initialize with API keys for different providers
lens = LingualLens(
openai_api_key="your-openai-key",
anthropic_api_key="your-anthropic-key",
google_api_key="your-google-key",
default_provider="openai",
default_model="gpt-3.5-turbo"
)
# Generate text with the default provider and model
response = lens.generate("Explain quantum computing in simple terms")
print(response)
# Use a different provider and model
response = lens.generate(
"What are the ethical implications of AI?",
provider="anthropic",
model="claude-3-opus-20240229"
)
print(response)
# Analyze sentiment
sentiment = lens.classify_sentiment("I love this product! It works great.")
print(sentiment) # {'score': 1.0, 'label': 'positive', ...}
# Extract entities
entities = lens.extract_entities("Contact us at support@example.com or visit https://example.com")
print(entities) # [{'type': 'EMAIL', 'value': 'support@example.com', ...}, ...]
Advanced Usage
Configuration Files
LingualLens supports configuration through JSON or YAML files:
lens = LingualLens(config_path="config.yaml")
Example config.yaml:
providers:
openai:
api_key: "your-openai-key"
models:
gpt-4:
max_tokens: 8192
default_params:
temperature: 0.7
top_p: 1.0
anthropic:
api_key: "your-anthropic-key"
models:
claude-3-opus-20240229:
max_tokens: 4096
default_params:
temperature: 0.5
Working with Local Models
For HuggingFace models, you can choose between using the Inference API or local models:
# Use a local model
response = lens.generate(
"What is machine learning?",
provider="huggingface",
model="mistralai/Mistral-7B-Instruct-v0.2",
use_api=False # Use local model instead of API
)
Adding a New Provider
LingualLens is designed to be easily extensible. To add a new provider:
- Create a new class that inherits from
BaseProvider - Implement the required methods:
generate,load_model, andavailable_models - Register the provider with LingualLens
from linguallens import BaseProvider, LingualLens
class MyCustomProvider(BaseProvider):
def __init__(self, api_key=None):
super().__init__(api_key)
# Initialize your provider here
def generate(self, prompt, model, max_tokens=100, temperature=0.7, top_p=1.0,
stop_sequences=None, streaming=False):
# Implement text generation
return "Generated text"
def load_model(self, model_name):
# Load or get a reference to a model
return model_proxy
def available_models(self):
# Return a list of available models
return ["model1", "model2"]
# Register the provider
LingualLens.register_provider("my_provider", MyCustomProvider)
# Use the provider
lens = LingualLens(my_provider_api_key="your-key")
response = lens.generate("Hello", provider="my_provider", model="model1")
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
linguallens-0.1.0.tar.gz
(56.8 kB
view details)
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 linguallens-0.1.0.tar.gz.
File metadata
- Download URL: linguallens-0.1.0.tar.gz
- Upload date:
- Size: 56.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
916251d1b2c0d08e4f97e44f0778a79f54977bbb1df4953e3bd7334121e8bb25
|
|
| MD5 |
4d6690176771f4a2deee3097f84f41c3
|
|
| BLAKE2b-256 |
d44f3e5df075313822a79e8345455b359e63b938d3373124bede5a2811f4ba2d
|
File details
Details for the file linguallens-0.1.0-py3-none-any.whl.
File metadata
- Download URL: linguallens-0.1.0-py3-none-any.whl
- Upload date:
- Size: 66.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0361eae664b27c2e6dfbe8da264bce58ece8cb4294d9d8b6c9ec166123237a86
|
|
| MD5 |
66e6356ec0f17f4da4229aa022e3a47b
|
|
| BLAKE2b-256 |
322105caeb935d408b76f17bb1fd5ca964b7ff6e94e75bc7ee5a3b5ba5774b43
|