Skip to main content

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


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

langchain_amvera-0.2.0-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

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

Hashes for langchain_amvera-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9531ca89ee31abf219081d34cb1ca91de2a2a720cfbac884a18220accd115a99
MD5 4d7fbeb6c2071068d20560bab1c76878
BLAKE2b-256 5bf9b923fda1a952b6c4008f2b873cde1c65e93a726e3080ed647b428c93e7dc

See more details on using hashes here.

File details

Details for the file langchain_amvera-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for langchain_amvera-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4275db1ab35444a4ece04d7229d0d90b943512a48a865991274ca72a334be301
MD5 1db56a41ef6e86cd5ede072772c6417d
BLAKE2b-256 e95bf9a0bf3bb0054a70d3e4f715016b0467ffb7ad0f6d20f268d42fab5c12e1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page