LangChain Amvera
Интеграция LangChain для работы с Amvera LLM API.
Установка
pip install langchain-amvera
Быстрый старт
from langchain_amvera import AmveraLLM
from langchain_core.messages import HumanMessage
# Инициализация модели
llm = AmveraLLM(
model="llama70b", # или "gpt-4.1", "gpt-5"
temperature=0.7,
api_token="your-token" # или через переменную AMVERA_API_TOKEN
)
# Синхронное использование
response = llm.invoke([HumanMessage(content="Привет!")])
print(response.content)
# Асинхронное использование
import asyncio
async def main():
response = await llm.ainvoke([HumanMessage(content="Привет!")])
print(response.content)
await llm.aclose() # Закрытие соединений
asyncio.run(main())
Поддерживаемые модели
LLaMA модели
llama8b- Llama 3.1 8B модельllama70b- Llama 3.1 70B модель (по умолчанию)
GPT модели
gpt-4.1- модель GPT-4.1 от OpenAIgpt-5- модель GPT-5 от OpenAI
Конфигурация
Переменные окружения
Создайте файл .env:
AMVERA_API_TOKEN=your-amvera-api-token
Параметры инициализации
llm = AmveraLLM(
model="llama70b", # Модель: llama8b, llama70b, gpt-4.1, gpt-5
temperature=0.7, # Параметр творчества (0.0-2.0)
max_tokens=1000, # Максимальное количество токенов
timeout=60, # Таймаут запроса в секундах
verbose=True, # Детальное логирование
json_mode=False, # JSON режим ответа
json_schema={}, # JSON схема для валидации
tools=None, # Инструменты для function calling
api_token="your-token", # API токен
base_url="https://..." # Базовый URL API
)
Возможности
Function Calling
from langchain_core.tools import tool
from pydantic import BaseModel, Field
# Определяем схему аргументов
class WeatherArgs(BaseModel):
location: str = Field(description="Название города")
unit: str = Field(default="celsius", description="Единицы температуры")
# Создаем инструмент с декоратором @tool
@tool("get_weather", args_schema=WeatherArgs)
def get_weather(location: str, unit: str = "celsius") -> str:
"""Получить прогноз погоды для указанного города."""
# Ваша логика здесь
return f"Погода в {location}: солнечно, {unit}"
# Привязываем инструменты к модели
llm = AmveraLLM(model="llama70b") # или "gpt-4.1", "gpt-5"
llm_with_tools = llm.bind_tools([get_weather])
# Использование
response = llm_with_tools.invoke([HumanMessage(content="Какая погода в Москве?")])
JSON режим
llm = AmveraLLM(
model="llama70b",
json_mode=True,
json_schema={
"type": "object",
"properties": {
"answer": {"type": "string"}
}
}
)
Получение информации об использовании
response = llm.invoke([HumanMessage(content="Привет!")])
# Информация о токенах
usage = llm.get_token_usage(response)
print(f"Использовано токенов: {usage}")
# Версия модели
version = llm.get_model_version(response)
print(f"Версия модели: {version}")
Примеры использования
Смотрите папку examples/ для подробных примеров:
Требования
- Python 3.8+
- langchain-core >= 0.1.0
- langchain >= 0.1.0
- httpx >= 0.24.0
- pydantic >= 2.0.0
- python-dotenv >= 0.19.0
Разработка
Установка для разработки
git clone https://github.com/amvera-ru/langchain-amvera.git
cd langchain-amvera
pip install -e ".[dev]"
Запуск тестов
pytest
Форматирование кода
black langchain_amvera/
ruff langchain_amvera/
Лицензия
MIT License. Смотрите LICENSE для подробностей.
Поддержка
Release files for langchain-amvera 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| langchain_amvera-0.3.1.tar.gz | 26.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| langchain_amvera-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.1 kB
Release files / langchain_amvera-0.3.1.tar.gz
| Download URL | langchain_amvera-0.3.1.tar.gz |
|---|---|
| Size | 26.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6c94b3eff81031f6d5980b3ba1225f05310b262361d2c80fd1ea0763fa573a70
|
|
BLAKE2b-256 checksum How to use checksums |
988eb349b9e7747d23f9ed7a1bee9ae9bb8f353cbd96ee5978c73f3fc22ca32c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Release files / langchain_amvera-0.3.1-py3-none-any.whl
| Download URL | langchain_amvera-0.3.1-py3-none-any.whl |
|---|---|
| Size | 11.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1732cd6366e11b24c92891c169b0baa24ac8330b40e704248b8f1ee7eadf5b75
|
|
BLAKE2b-256 checksum How to use checksums |
105fe9762f8e944125d2ff586ab2e1e74c53b542d51451651ac3a616366ea3f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|