Интеграция в проект
Предусмотрены два способа интеграции: подключение Jev к проекту с помощью ассистента программирования в соответствии с требованиями либо, для проектов с существующим кодом TypeSafe, изменение только двух переменных окружения.
Подключение с помощью ассистента программирования
При работе с Claude Code, Cursor, Codex или другим ассистентом программирования скопируйте приведённый ниже промпт и замените текст в 【】 фактическими требованиями; ассистент выполнит подключение в проекте.
Подключить Jev к моему проекту
После копирования замените текст в 【】 на шаге 2 фактическими требованиями к решениям.
Я хочу подключить модель решений Jev от OfoxAI к текущему проекту. API Key я уже создал в консоли OfoxAI. Веди меня шаг за шагом и перед каждым шагом говори, что ты делаешь и что будет дальше. 【Шаг 1. Безопасно сохранить ключ】 1. Создай в проекте файл .env и запиши в него строку OFOX_API_KEY=, оставив значение после знака равенства пустым; добавь .env в .gitignore. 2. Скажи, где находится этот файл, чтобы я сам вставил туда ключ и сохранил его. Не проси меня присылать ключ в чат, не записывай ключ в код и не выводи его. 3. Подожди, пока я напишу «готово», и только потом продолжай. 【Шаг 2. Какие решения мне нужны】 - Что оценивать: 【например: текст обращения в службу поддержки, отправленного пользователем】 - На какие вопросы отвечать: 【например: какой команде передать (списания и возвраты / технические сбои / вопросы до покупки); срочно ли это】 - Что делать с результатом: 【например: при достаточно высокой уверенности назначать автоматически, иначе передавать человеку】 【Шаг 3. Написать код】 4. Используй официальный SDK OpenAI (сначала выполни pip install -U openai: в старых версиях нет client.decisions), base_url — https://api.ofox.ai/v1, ключ читай из OFOX_API_KEY в .env, вызывай client.decisions.create(), модель — typesafe/jev-latest. 5. Выбирай тип вопроса по задаче: да или нет — predicate; один вариант из нескольких — choice; степень — score. Все вопросы помещай в массив questions одного запроса и у каждого вопроса указывай name. 6. Варианты choice должны охватывать все случаи; добавь вариант «ничего из перечисленного» и у каждого варианта укажи description. 7. Читай результаты по name. Для choice и score решение об автоматическом действии принимай по confidence, для predicate — по probability; порог сначала задай 0.7 и вынеси его в настройки, чтобы потом можно было изменить. Всё, что ниже порога, отправляй человеку или в резервный сценарий. 8. Поля и ошибки сверяй с https://ofox.ai/ru/docs/api/decisions , примеры использования — https://ofox.ai/ru/docs/develop/models/jev . 【Шаг 4. Тестирование】 9. Запусти по одному разу 3 очевидных примера и 2 неоднозначных и покажи мне для каждого ответ, вероятность и уверенность. 10. При ошибке выведи HTTP-статус, error.message и request_id, сверься с таблицей ошибок в документации, измени что-то одно и повтори попытку; если одна и та же ошибка не исчезла после двух исправлений, остановись и пришли мне исходный текст ошибки и request_id.
Миграция с TypeSafe
Для проектов, использующих официальный SDK TypeSafe или код, написанный по официальной документации TypeSafe, достаточно изменить base URL на https://api.ofox.ai/typesafe и заменить API Key на ключ OfoxAI:
export TYPESAFE_BASE_URL="https://api.ofox.ai/typesafe"
export TYPESAFE_API_KEY="$OFOX_API_KEY"Запросы отправляются на /typesafe/v1/systemone в формате, совпадающем с официальным форматом TypeSafe (state и questions с идентификаторами вопросов в качестве ключей; тип вопросов «да/нет» — noul). Сопоставление двух форматов и примеры SDK приведены в разделе Decisions API · Нативный формат TypeSafe. Для новых проектов рекомендуется непосредственно использовать /v1/decisions.