Skip to main content

LangChain интеграция для Amvera LLM API с поддержкой LLaMA и GPT моделей

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",  # или "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 от OpenAI
  • gpt-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 для подробностей.

Поддержка

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.3.0.tar.gz (25.5 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.3.0-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file langchain_amvera-0.3.0.tar.gz.

File metadata

  • Download URL: langchain_amvera-0.3.0.tar.gz
  • Upload date:
  • Size: 25.5 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.3.0.tar.gz
Algorithm Hash digest
SHA256 a2cf5680ef369e8231b31d948da32461a9906885f47a8108b42f24fb37c21e16
MD5 145a7b750173b1a72b1f3fb831af025e
BLAKE2b-256 f49767ce8ac2f49c744ba3ccd6dbf2ff2a194ff2329fac46e72e9e82f16e1d34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for langchain_amvera-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 28f6fbf51166d1b9c3d2eede4e9cb0cc84ee381e9da798835b065314369b1814
MD5 ed2383fdd859f34af2cf660c98c21d9f
BLAKE2b-256 3695d5ed059a503453320b856a666d2cdf065be84c5daadb4eed2b5335535844

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