LangChain интеграция для Amvera LLM API
Project description
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",
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())
Поддерживаемые модели
llama8b- Llama 3.1 8B модельllama70b- Llama 3.1 70B модель (по умолчанию)
Конфигурация
Переменные окружения
Создайте файл .env:
AMVERA_API_TOKEN=your-amvera-api-token
Параметры инициализации
llm = AmveraLLM(
model="llama70b", # Модель для использования
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")
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 для подробностей.
Поддержка
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
langchain_amvera-0.2.0.tar.gz
(24.7 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 langchain_amvera-0.2.0.tar.gz.
File metadata
- Download URL: langchain_amvera-0.2.0.tar.gz
- Upload date:
- Size: 24.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9531ca89ee31abf219081d34cb1ca91de2a2a720cfbac884a18220accd115a99
|
|
| MD5 |
4d7fbeb6c2071068d20560bab1c76878
|
|
| BLAKE2b-256 |
5bf9b923fda1a952b6c4008f2b873cde1c65e93a726e3080ed647b428c93e7dc
|
File details
Details for the file langchain_amvera-0.2.0-py3-none-any.whl.
File metadata
- Download URL: langchain_amvera-0.2.0-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4275db1ab35444a4ece04d7229d0d90b943512a48a865991274ca72a334be301
|
|
| MD5 |
1db56a41ef6e86cd5ede072772c6417d
|
|
| BLAKE2b-256 |
e95bf9a0bf3bb0054a70d3e4f715016b0467ffb7ad0f6d20f268d42fab5c12e1
|