Перейти к содержанию

LLM-провайдеры

Eval AI Library поддерживает множество LLM-провайдеров через единый интерфейс. Все метрики работают с любым провайдером -- достаточно указать нужную строку модели. Это позволяет легко переключаться между провайдерами или использовать разные модели для разных метрик.

Поддерживаемые провайдеры

Провайдер Префикс Пример Переменная окружения
OpenAI openai: (по умолчанию) gpt-4o OPENAI_API_KEY
Azure OpenAI azure: azure:gpt-4o AZURE_OPENAI_API_KEY
Google Gemini google: google:gemini-2.0-flash GOOGLE_API_KEY
Anthropic Claude anthropic: anthropic:claude-3-5-sonnet-latest ANTHROPIC_API_KEY
Ollama ollama: ollama:llama3 --
Кастомный -- Передайте экземпляр CustomLLMClient --

Формат указания модели

Модель указывается строкой в формате провайдер:имя_модели. OpenAI является провайдером по умолчанию, поэтому для него префикс можно опустить:

# Short form (OpenAI is default)
model = "gpt-4o"

# Full form with provider prefix
model = "provider:model_name"

# Examples
model = "openai:gpt-4o"
model = "anthropic:claude-3-5-sonnet-latest"
model = "google:gemini-2.0-flash"
model = "ollama:llama3"
model = "azure:gpt-4o"

Использование LLMDescriptor

Для программного выбора провайдера можно использовать класс LLMDescriptor:

from eval_lib import LLMDescriptor, Provider

model = LLMDescriptor(provider=Provider.OPENAI, model="gpt-4o")
model = LLMDescriptor(provider=Provider.ANTHROPIC, model="claude-3-5-sonnet-latest")
model = LLMDescriptor(provider=Provider.GOOGLE, model="gemini-2.0-flash")

Комбинирование провайдеров в одной оценке

Вы можете использовать разных провайдеров для разных метрик в рамках одного запуска оценки. Это позволяет, например, использовать более дешёвую модель для простых метрик и более мощную -- для сложных:

from eval_lib import (
    AnswerRelevancyMetric,
    FaithfulnessMetric,
    CustomEvalMetric,
)

metrics = [
    # OpenAI for answer relevancy
    AnswerRelevancyMetric(model="gpt-4o", threshold=0.7),

    # Claude for faithfulness
    FaithfulnessMetric(model="anthropic:claude-3-5-sonnet-latest", threshold=0.7),

    # Gemini for custom evaluation
    CustomEvalMetric(
        model="google:gemini-2.0-flash",
        threshold=0.7,
        name="Quality",
        criteria="Evaluate response quality"
    ),
]

Прямые вызовы LLM

Помимо использования в метриках, вы можете делать прямые вызовы к LLM через клиент библиотеки:

from eval_lib import chat_complete, get_embeddings

# Chat completion
response, cost = await chat_complete(
    llm="gpt-4o",
    messages=[{"role": "user", "content": "Hello!"}],
    temperature=0.7
)

# Embeddings
embeddings, cost = await get_embeddings(
    model="openai:text-embedding-3-small",
    texts=["Hello world", "How are you?"]
)

Отслеживание стоимости

Все вызовы API возвращают стоимость в долларах США, когда она доступна. Движок оценки агрегирует стоимость по всем метрикам и тестовым кейсам:

Total evaluation cost: $0.0342

Подробнее о ценах моделей см. Стоимость моделей.