Cloudflare AI
Этот репозиторий содержит пакеты и демо-приложения для работы с AI-сервисами Cloudflare на стороне клиента. Проект организован как монорепозиторий на базе Nx и Changesets.
Пакеты
- workers-ai-provider — кастомный провайдер для использования моделей Workers AI в Vercel AI SDK.
- ai-gateway-provider — провайдер AI Gateway для Vercel AI SDK.
Локальная разработка
- Клонируйте репозиторий:
git clone git@github.com:cloudflare/ai.git
cd ai
- Установите зависимости:
pnpm install
- Запустите сервер разработки для конкретного приложения (например,
tool-calling):
pnpm nx dev tool-calling
Все команды рекомендуется выполнять из корня репозитория с префиксом pnpm nx — это гарантирует корректное управление зависимостями между пакетами.
Тестирование и линтинг
- Запуск CI-тестов для проекта (например,
workers-ai-provider):
pnpm nx test:ci workers-ai-provider
pnpm nx lint my-project
- Комплексная проверка (линт, тесты, проверка типов, сборка) для нескольких проектов:
pnpm nx run-many -t lint test:ci type-check build -p "my-project other-project"
Другие задачи Nx
build — сборка проекта.
test — запуск тестов в режиме watch.
test:ci — запуск тестов в CI-режиме (без watch).
test:smoke — запуск smoke-тестов.
type-check — проверка типов TypeScript.
Создание нового демо-приложения
Для создания нового демо-приложения используйте скрипт create-demo:
pnpm create-demo <demo-name>
После создания скрипт автоматически установит зависимости и сгенерирует типы для приложения. Затем запустите приложение:
pnpm nx dev <demo-name>
Участие в разработке
Мы приветствуем вклад сообщества. Пожалуйста, следуйте этим правилам:
- Настройка проекта: после форка или клонирования установите зависимости командой
pnpm install.
- Ветвление: создайте новую ветку для вашей функции или исправления.
- Изменения: добавляйте или обновляйте тесты. При пуше автоматически запускаются задачи (благодаря Husky).
- Changesets: если ваши изменения затрагивают опубликованный пакет, выполните
pnpm changeset и кратко опишите изменения.
- Pull Request: отправьте PR в ветку
main. Команда рассмотрит его и объединит, если всё в порядке.
Процесс релиза
Релизный процесс управляется Changesets:
- Создание changeset: при изменениях, требующих нового релиза (исправления, новые функции), выполните:
pnpm changeset
Опишите изменения.
-
Слияние: после слияния changeset в main GitHub Actions автоматически:
- обнаружит изменённые пакеты,
- создаст PR с обновлением версий,
- увеличит версии (через Changesets),
- опубликует пакеты с новыми версиями в npm (демо и внутренние компоненты не версионируются).
-
Публикация: workflow .github/workflows/release.yml запускается при каждом пуше в main. Он тегирует и публикует каждый пакет, у которого есть поле version в package.json.
По любым вопросам открывайте issue или отправляйте PR.
Комментарии
Комментариев пока нет. Будьте первым.