Last translated: 16 Jun 2025

Translation Not Available Yet

This repository's README hasn't been translated yet. Once translated, it will be easier to read and understand in your native language (中文).

After translating, add the links to README so others can view it directly.

TensorZero Logo

TensorZero

#1 Repository Of The Day

TensorZero — это открытый стек для промышленных LLM-приложений:

  • Шлюз (Gateway)
    • Доступ ко всем крупным провайдерам LLM (API или self-hosted) через единый унифицированный API
    • Вывод с потоковой передачей, использованием инструментов, структурированной генерацией (JSON mode), пакетной обработкой, мультимодальностью (VLMs), файловыми входами, кэшированием и т.д.
    • Определение шаблонов промптов и схем для обеспечения согласованного типизированного интерфейса между приложением и LLM
    • Удовлетворение экстремальных требований к пропускной способности и задержкам благодаря Rust: <1ms p99 задержки при 10k+ QPS
    • Интеграция через наш Python-клиент, любой OpenAI SDK или OpenAI-совместимый клиент, или наш HTTP API (используйте любой язык программирования)
    • Обеспечение высокой доступности с маршрутизацией, повторными попытками, резервными вариантами, балансировкой нагрузки, детальными таймаутами и т.д.
    • Скоро: эмбеддинги; голос в реальном времени
  • Наблюдаемость (Observability)
    • Хранение выводов и обратной связи (метрики, правки людей и т.д.) в вашей собственной базе данных
    • Анализ отдельных выводов или агрегированных паттернов через TensorZero UI или программно
    • Создание наборов данных для оптимизации, оценки и других рабочих процессов
    • Воспроизведение исторических выводов с новыми промптами, моделями, стратегиями вывода и т.д.
    • Экспорт трассировок OpenTelemetry (OTLP) в ваши любимые инструменты наблюдаемости
    • Скоро: AI-ассистированная отладка и анализ первопричин; AI-ассистированная разметка данных
  • Оптимизация
    • Оптимизация моделей с помощью supervised fine-tuning, RLHF и других методов
    • Оптимизация промптов с помощью автоматизированных алгоритмов инженерии промптов, таких как MIPROv2
    • Оптимизация стратегий вывода с динамическим in-context learning, chain of thought, best/mixture-of-N sampling и т.д.
    • Создание цикла обратной связи для ваших LLM: flywheel данных и обучения, превращающий продакшн-данные в более умные, быстрые и дешевые модели
    • Скоро: программная оптимизация; генерация синтетических данных
  • Оценки (Evaluations)
    • Оценка отдельных выводов с помощью статических оценок на основе эвристик или LLM-судей (≈ unit-тесты для LLM)
    • Оценка end-to-end рабочих процессов с динамическими оценками с полной гибкостью (≈ интеграционные тесты для LLM)
    • Оптимизация LLM-судей так же, как и любых других функций TensorZero, для их соответствия человеческим предпочтениям
    • Скоро: больше встроенных оценщиков; headless-оценки
  • Экспериментирование
    • Развертывание с уверенностью благодаря встроенному A/B-тестированию моделей, промптов, провайдеров, гиперпараметров и т.д.
    • Проведение принципиальных экспериментов (RCT) в сложных рабочих процессах, включая многошаговые и составные LLM-системы
    • Скоро: multi-armed bandits; AI-управляемые эксперименты
  • И многое другое!
    • Создание простых приложений или масштабных развертываний с оркестрацией, дружественной к GitOps
    • Расширение TensorZero с помощью встроенных "люков", программного использования, прямого доступа к БД и т.д.
    • Интеграция со сторонними инструментами: специализированная наблюдаемость и оценки, провайдеры моделей, фреймворки оркестрации агентов и т.д.
    • Скоро: UI playground

Берите то, что вам нужно, внедряйте постепенно и дополняйте другими инструментами.


Website · Docs · Twitter · Slack · Discord

Quick Start (5min) · Deployment Guide · API Reference · Configuration Reference


Что такое TensorZero?TensorZero — это открытый стек для промышленных LLM-приложений. Он объединяет LLM-шлюз, наблюдаемость, оптимизацию, оценки и экспериментирование.
Чем TensorZero отличается от других LLM-фреймворков? 1. TensorZero позволяет оптимизировать сложные LLM-приложения на основе продакшн-метрик и человеческой обратной связи.
2. TensorZero поддерживает потребности промышленных LLM-приложений: низкие задержки, высокая пропускная способность, типобезопасность, self-hosted, GitOps, кастомизируемость и т.д.
3. TensorZero объединяет весь стек LLMOps, создавая кумулятивные преимущества. Например, LLM-оценки можно использовать для тонкой настройки моделей вместе с AI-судами.
Можно ли использовать TensorZero с ___?Да. Поддерживаются все основные языки программирования. Вы можете использовать TensorZero с нашим Python-клиентом, любым OpenAI SDK или OpenAI-совместимым клиентом, или нашим HTTP API.
Готов ли TensorZero к продакшену?Да. Вот кейс: Automating Code Changelogs at a Large Bank with LLMs
Сколько стоит TensorZero?Ничего. TensorZero на 100% self-hosted и open-source. Платных функций нет.
Кто разрабатывает TensorZero?Наша техническая команда включает бывшего мейнтейнера компилятора Rust, исследователей машинного обучения (Stanford, CMU, Oxford, Columbia) с тысячами цитирований и CPO стартапа-декакорна. Нас поддерживают те же инвесторы, что и ведущие open-source проекты (например, ClickHouse, CockroachDB) и AI-лаборатории (например, OpenAI, Anthropic).
Как начать?Вы можете внедрять TensorZero постепенно. Наш Quick Start превращает обертку OpenAI в готовое к продакшену LLM-приложение с наблюдаемостью и тонкой настройкой всего за 5 минут.

Возможности

🌐 LLM-шлюз

Интегрируйтесь с TensorZero один раз и получите доступ ко всем крупным LLM-провайдерам.

Провайдеры моделейФункции

TensorZero Gateway нативно поддерживает:

Нужно что-то другое? Ваш провайдер, скорее всего, поддерживается, так как TensorZero интегрируется с любым OpenAI-совместимым API (например, Ollama).

TensorZero Gateway поддерживает продвинутые функции:

TensorZero Gateway написан на Rust 🦀 с упором на производительность (<1ms p99 задержки @ 10k QPS). См. Бенчмарки.

Вы можете выполнять вывод с помощью клиента TensorZero (рекомендуется), клиента OpenAI или HTTP API.


Использование: Python — Клиент TensorZero (Рекомендуется)

Вы можете получить доступ к любому провайдеру через Python-клиент TensorZero.

  1. pip install tensorzero
  2. Опционально: Настройте конфигурацию TensorZero.
  3. Выполните вывод:
from tensorzero import TensorZeroGateway  # or AsyncTensorZeroGateway


with TensorZeroGateway.build_embedded(clickhouse_url="...", config_file="...") as client:
    response = client.inference(
        model_name="openai::gpt-4o-mini",
        # Try other providers easily: "anthropic::claude-3-7-sonnet-20250219"
        input={
            "messages": [
                {
                    "role": "user",
                    "content": "Write a haiku about artificial intelligence.",
                }
            ]
        },
    )

См. Quick Start для подробностей.

Использование: Python — Клиент OpenAI

Вы можете получить доступ к любому провайдеру через клиент OpenAI с TensorZero.

  1. pip install tensorzero
  2. Опционально: Настройте конфигурацию TensorZero.
  3. Выполните вывод:
from openai import OpenAI  # or AsyncOpenAI
from tensorzero import patch_openai_client

client = OpenAI()

patch_openai_client(
    client,
    clickhouse_url="http://chuser:chpassword@localhost:8123/tensorzero",
    config_file="config/tensorzero.toml",
    async_setup=False,
)

response = client.chat.completions.create(
    model="tensorzero::model_name::openai::gpt-4o-mini",
    # Try other providers easily: "tensorzero::model_name::anthropic::claude-3-7-sonnet-20250219"
    messages=[
        {
            "role": "user",
            "content": "Write a haiku about artificial intelligence.",
        }
    ],
)

См. Quick Start для подробностей.

Использование: JavaScript/TypeScript (Node) — Клиент OpenAI

Вы можете получить доступ к любому провайдеру через Node-клиент OpenAI с TensorZero.

  1. Разверните tensorzero/gateway через Docker. Подробные инструкции →
  2. Настройте конфигурацию TensorZero.
  3. Выполните вывод:
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "http://localhost:3000/openai/v1",
});

const response = await client.chat.completions.create({
  model: "tensorzero::model_name::openai::gpt-4o-mini",
  // Try other providers easily: "tensorzero::model_name::anthropic::claude-3-7-sonnet-20250219"
  messages: [
    {
      role: "user",
      content: "Write a haiku about artificial intelligence.",
    },
  ],
});

См. Quick Start для подробностей.

Использование: Другие языки и платформы — HTTP API

TensorZero поддерживает практически любой язык программирования через HTTP API.

  1. Разверните tensorzero/gateway через Docker. Подробные инструкции →
  2. Опционально: Настройте конфигурацию TensorZero.
  3. Выполните вывод:
curl -X POST "http://localhost:3000/inference" \
  -H "Content-Type: application/json" \
  -d '{
    "model_name": "openai::gpt-4o-mini",
    "input": {
      "messages": [
        {
          "role": "user",
          "content": "Write a haiku about artificial intelligence."
        }
      ]
    }
  }'

См. Quick Start для подробностей.


📈 Оптимизация LLM

Отправляйте продакшн-метрики и человеческую обратную связь, чтобы легко оптимизировать промпты, модели и стратегии вывода — через UI или программно.

Оптимизация моделей

Оптимизируйте закрытые и открытые модели с помощью supervised fine-tuning (SFT) и preference fine-tuning (DPO).

Supervised Fine-tuning — UIPreference Fine-tuning (DPO) — Jupyter Notebook

Оптимизация во время вывода

Повышайте производительность, динамически обновляя промпты релевантными примерами, комбинируя ответы из нескольких выводов и т.д.

Best-of-N SamplingMixture-of-N Sampling
Dynamic In-Context Learning (DICL)Chain-of-Thought (CoT)

Скоро будет больше...


Оптимизация промптов

Оптимизируйте промпты программно с помощью исследовательских методов оптимизации.

MIPROv2Интеграция с DSPy
MIPROv2 diagram TensorZero включает несколько готовых рецептов оптимизации, но вы также можете легко создавать свои собственные. В этом примере показано, как оптимизировать функцию TensorZero с помощью произвольного инструмента — в данном случае DSPy, популярной библиотеки для автоматизированного инжиниринга промптов.

Скоро будет больше...


🔍 Наблюдаемость LLM

Приближайтесь для отладки отдельных API-вызовов или отдаляйтесь для мониторинга метрик моделей и промптов с течением времени — всё в открытом интерфейсе TensorZero.

Наблюдаемость » ВыводНаблюдаемость » Функция

📊 Оценка LLM

Сравнивайте промпты, модели и стратегии вывода с помощью TensorZero Evaluations — с поддержкой эвристик и LLM-судей.

Оценка » ИнтерфейсОценка » CLI
docker compose run --rm evaluations \
  --evaluation-name extract_data \
  --dataset-name hard_test_cases \
  --variant-name gpt_4o \
  --concurrency 5
Run ID: 01961de9-c8a4-7c60-ab8d-15491a9708e4
Number of datapoints: 100
██████████████████████████████████████ 100/100
exact_match: 0.83 ± 0.03
semantic_match: 0.98 ± 0.01
item_count: 7.15 ± 0.39

Демонстрация

Наблюдайте, как LLM улучшают извлечение данных в реальном времени с TensorZero!

Динамическое обучение в контексте (DICL) — это мощная оптимизация времени вывода, доступная в TensorZero из коробки. Она повышает производительность LLM, автоматически включая релевантные исторические примеры в промпт, без необходимости тонкой настройки модели.

https://github.com/user-attachments/assets/4df1022e-886e-48c2-8f79-6af3cdad79cb

Начало работы

Начните строить уже сегодня. Быстрый старт показывает, как легко настроить LLM-приложение с TensorZero.

Вопросы? Задавайте их в Slack или Discord.

Используете TensorZero на работе? Напишите нам на [email protected], чтобы создать Slack или Teams канал для вашей команды (бесплатно).

Работайте с нами. Мы нанимаем в Нью-Йорке. Также приветствуются вклады в open-source!

Примеры

Мы работаем над серией полноценных запускаемых примеров, демонстрирующих цикл данных и обучения TensorZero.

Оптимизация извлечения данных (NER) с TensorZero

В этом примере показано, как использовать TensorZero для оптимизации конвейера извлечения данных. Мы демонстрируем такие техники, как тонкая настройка и динамическое обучение в контексте (DICL). В итоге оптимизированная модель GPT-4o Mini превосходит GPT-4o в этой задаче — с меньшими затратами и задержкой — используя небольшой объём обучающих данных.

Агентный RAG — многошаговый вопросно-ответный поиск с LLM

В этом примере показано, как построить многошагового агента поиска с использованием TensorZero. Агент итеративно ищет информацию в Википедии и решает, когда у него достаточно контекста для ответа на сложный вопрос.

Написание хайку для удовлетворения судьи со скрытыми предпочтениями

В этом примере тонко настраивается GPT-4o Mini для генерации хайку, соответствующих определённому вкусу. Вы увидите "цикл данных в коробке" TensorZero в действии: лучшие варианты ведут к лучшим данным, а лучшие данные — к лучшим вариантам. Прогресс достигается за счёт многократной тонкой настройки LLM.

Улучшение шахматных способностей LLM с помощью выборки best-of-N

В этом примере показано, как выборка best-of-N может значительно улучшить шахматные способности LLM, выбирая наиболее перспективные ходы из нескольких сгенерированных вариантов.

Улучшение математических рассуждений с пользовательским рецептом для автоматизированного инжиниринга промптов (DSPy)

TensorZero предоставляет несколько предустановленных рецептов оптимизации, охватывающих распространённые рабочие процессы инжиниринга LLM. Но вы также можете легко создавать свои собственные рецепты и рабочие процессы! В этом примере показано, как оптимизировать функцию TensorZero с помощью произвольного инструмента — здесь это DSPy.

И многое другое впереди!