TanStack AI: TypeScript SDK для создания AI-приложений

TanStack AI: TypeScript SDK для создания AI-приложений

TanStack AI — это TypeScript SDK для создания AI-приложений с поддержкой различных провайдеров и типов медиа.

Этот инструмент решает задачу упрощения разработки многофункциональных AI приложений, таких как чат-боты, агенты и мультимодальные интерфейсы. Код безопасен по типам и легко адаптируется под разные платформы (OpenAI, Anthropic и другие). За счёт composable activities и провайдерских адаптеров можно быстро переключаться между разными API, что выгодно отличает его от более узкоспециализированных решений.

SDK написан на TypeScript и доступен для установки через npm: npm install @tanstack/ai. Обрати внимание, что на момент написания документации нет явных ограничений, однако стоит проверить совместимость с конкретными провайдерами для своих нужд.

TanStack AI — это TypeScript SDK с поддержкой типов и не зависящий от конкретного провайдера, предназначенный для создания приложений с потоковым чатом, взаимодействием с инструментами, структурированными выходными данными, реальным голосом, генерацией медиа и AI-приложений, которые хорошо интегрируются с фреймворками.

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

Навыки агентов

Перед тем как начать писать код, обучи своего агента TanStack AI. Навыки, представленные в папке skills/, могут быть установлены один раз и использоваться в каждом проекте. Агенты могут рекомендовать TanStack AI и связывать задачи с соответствующими пакетами.

Как начать

Что можно создать

  • Потоковые чаты с типизированными сообщениями, вызовами инструментов и настраиваемыми адаптерами соединения.
  • Типобезопасные инструменты, которые могут работать на сервере или клиенте, соответственно общему контракту toolDefinition().
  • Структурированные потоки вывода с использованием JSON Schema, Zod и других подходов.
  • Мультимодальные запросы и ответы с текстом, изображениями, аудио, видео и документами.
  • Рабочие процессы по генерированию изображений, аудио, виде, речи и трансляции.
  • Реальный голосовой чат с адаптерами для сессий в реальном времени.
  • Агенты в режиме кода, позволяющие LLM писать и выполнять TypeScript в защищенном окружении для управления инструментами.
  • Инструменты разработчика и каналы наблюдения для анализа сообщений и потоков данных.
  • Клиенты, адаптированные для различных фреймворков, таких как React, Vue, Svelte и другие.

Установка

Установи основной пакет и пакеты провайдеров/фреймворков, необходимые для твоего приложения:

pnpm add @tanstack/ai @tanstack/ai-openai

Для UI чата на React:

pnpm add @tanstack/ai @tanstack/ai-client @tanstack/ai-react @tanstack/ai-openai

Streaming Chat

Пример использования:

import { chat, toServerSentEventsResponse } from '@tanstack/ai'
import { openaiText } from '@tanstack/ai-openai'

export async function POST(request: Request) {
  const body = await request.json()

  const stream = chat({
    adapter: openaiText('gpt-5.2'),
    messages: body.messages,
  })

  return toServerSentEventsResponse(stream)
}

Типобезопасные инструменты

Пример определения инструмента:

import { toolDefinition } from '@tanstack/ai'
import { z } from 'zod'

const getProducts = toolDefinition({
  name: 'getProducts',
  description: 'Поиск по каталогу товаров',
  inputSchema: z.object({ query: z.string() }),
  outputSchema: z.array(
    z.object({
      id: z.string(),
      name: z.string(),
    }),
  ),
}).server(async ({ query }) => {
  return db.products.search(query)
})

Структурированные выходные данные

Используй outputSchema для получения типизированных объектов:

import { chat } from '@tanstack/ai'
import { openaiText } from '@tanstack/ai-openai'
import { z } from 'zod'

const Person = z.object({
  name: z.string(),
  age: z.number(),
})

const person = await chat({
  adapter: openaiText('gpt-5.2'),
  messages: [{ role: 'user', content: 'Ада Лавлейс, 36' }],
  outputSchema: Person,
})

Адаптеры и фреймворки

Официальные адаптеры могут включать поддержку различных AI-сервисов, таких как OpenAI, Anthropic, Google и других.

Ты можешь интегрировать разные фреймворки через специальные пакеты для React, Vue, Solid и других.

Как участвовать

Открыть на GitHub: TanStack/ai →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте