Для интеграции BuildShip OdiRouter требуется только стандартный HTTP-запрос. BuildShip получает входные данные, вызывает модель OdiRouter, извлекает ответ ассистента из возвращённого JSON и отправляет вызывающей стороне чистый ответ. Рабочий процесс использует документированный узел API Call от BuildShip, поэтому не зависит от специфичного для поставщика узла сообщества.
OdiRouter предоставляет совместимый с OpenAI базовый URL и эндпоинт чат-комплитов. BuildShip предоставляет триггер, хранение секретов, узел запросов, управление выводом и инструменты тестирования. Объедините эти компоненты, и первая версия рабочего процесса останется достаточно компактной для отладки.
Рабочий процесс в общих чертах
Поток состоит из четырёх частей:
Триггер REST API Call получает JSON.
Узел API Call отправляет промпт в OdiRouter.
Шаг сопоставления считывает
choices[0].message.content.Узел Output возвращает текст с выбранным HTTP-статусом.
Этого достаточно для внутреннего инструмента, формы, бэкенда чат-бота или любого сервиса, который может вызывать эндпоинт BuildShip. Начните с одного запроса к модели и одного ответа. Добавляйте ветви после того, как заработает основной путь.
Перед началом работы
Вам понадобятся проект BuildShip, в котором можно создавать и тестировать рабочие процессы, а также учётная запись OdiRouter и API-ключ. Доступность моделей и цены могут меняться. Выберите модель из актуального списка model catalog и проверьте pricing page перед отправкой рабочего трафика.
Не указывайте API-ключ в промпте, сообщении журнала или жёстко закодированной логике узла. Согласно документации BuildShip, функция Secrets в BuildShip использует Google Cloud Secret Manager. В примерах ниже ODIROUTER_API_KEY используется как имя, а YOUR_API_KEY — как заполнитель. Привяжите фактическое значение в BuildShip.
Сведения о соглашениях API OdiRouter см. в API introduction и OpenAI SDK setup.
1. Создайте REST-триггер в BuildShip
Создайте рабочий процесс и добавьте триггер вызова REST API. BuildShip документирует этот триггер для HTTP-запросов от клиентов, no-code-фронтендов и других сервисов. По умолчанию используется POST, и он принимает application/json.
Задайте для рабочего процесса обязательную строку prompt. Вы можете раскрыть параметры model или temperature позже, но фиксированные настройки на стороне сервера проще контролировать во время первого тестирования. Подключите триггер таким образом, чтобы BuildShip создал свой URL-адрес конечной точки.
Используйте короткий текст запроса:
{
"prompt": "Explain this workflow in one sentence."
}2. Сохраните ключ OdiRouter как секрет.
Откройте менеджер секретов BuildShip и добавьте секрет с именем ODIROUTER_API_KEY. Вставьте ключ OdiRouter в поле значения секрета, затем привяжите этот секрет к входному значению authorization узла вызова API.
Ключ ни в коем случае не должен появляться в теле запроса или в виде открытого текстового значения, которое может быть зарегистрировано в журнале BuildShip. Если ключ раскрыт, отзовите его в OdiRouter и выпустите замену, прежде чем снова запускать рабочий процесс.
3. Настройте узел вызова API.
Разместите узел API Call после триггера и настройте следующие поля:
Метод:
POSTURL:
https://api.odirouter.ai/v1/chat/completionsAuthorization:
Bearer YOUR_API_KEY, при этомYOUR_API_KEYпредоставляется секретом BuildShipТип содержимого:
application/jsonОжидать ответа: включено
Отправьте тело запроса, совместимое с OpenAI. В этом примере используется gpt-5.5 — идентификатор модели из текущей документации по интеграции OdiRouter. Прежде чем полагаться на какой-либо идентификатор модели, проверьте GET https://api.odirouter.ai/v1/models или актуальный каталог.
{
"model": "gpt-5.5",
"messages": [
{
"role": "user",
"content": "{{prompt}}"
}
]
}Сопоставьте {{prompt}} с входными данными триггера с помощью средства выбора выражений BuildShip. Первое тело запроса должно быть простым. Если запрос завершится ошибкой, желательно, чтобы возможных причин было как можно меньше.
Тот же запрос в curl выглядит так:
curl https://api.odirouter.ai/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"messages": [
{"role": "user", "content": "Explain this workflow in one sentence."}
]
}'Узел API Call в BuildShip возвращает статус HTTP и разобранные данные ответа. Для чат-завершений OdiRouter текст ассистента находится в choices[0].message.content.
4. Сопоставьте ответ с выходным узлом
Добавьте выходной узел после API-вызова. Минимальный ответ может содержать только сгенерированный текст:
{
"text": "{{apiCall.data.choices[0].message.content}}"
}BuildShip может присвоить вашему узлу API Call другой идентификатор. Выберите поле ответа в средстве выбора данных, а не предполагайте, что apiCall — это окончательное имя узла.
Для успешного пути верните 200. Если вы добавляете ветви обработки сбоев, возвращайте подходящий статус и краткий объект ошибки. Никогда не возвращайте ключ, полный заголовок Authorization или конфиденциальные данные промпта.
5. Протестируйте каждый уровень
Запустите узел API Call с коротким промптом. Успешный запуск должен иметь статус 2xx и непустое значение в choices[0].message.content. Затем используйте режим тестирования рабочего процесса BuildShip, чтобы вместе проверить триггер, запрос OdiRouter, сопоставление и выходной узел.
После успешного внутреннего теста подключите или разверните REST-триггер и вызовите сгенерированный endpoint BuildShip из API-клиента. Проверьте публичный ответ. Он должен содержать только те поля, которые нужны вызывающим сторонам.
До того как в рабочий процесс поступит реальный трафик, намеренно вызовите несколько сбоев:
Удалите привязку секрета и убедитесь, что сбой authorization обрабатывается.
Введите недопустимый идентификатор модели и убедитесь, что ответ не раскрывает внутренние данные.
Отправьте отсутствующий или пустой код
promptи отклоните его до запроса модели.Смоделируйте временную ошибку вышестоящего сервиса и убедитесь, что попытки повтора прекращаются.
Исправление распространенных ошибок
401 или 403
Убедитесь, что секретный ключ BuildShip связан с полем Authorization, а заголовок начинается с Bearer . Убедитесь, что ключ по-прежнему активен в OdiRouter. Не выводите это на экран во время отладки.
400
Проверьте тело JSON-сообщения, идентификатор модели, структуру сообщения и тип содержимого на соответствие текущей документации OdiRouter. Повторная попытка отправки того же некорректного запроса не поможет.
429
Запрос ограничен по скорости. Уменьшите параллелизм или добавьте ограниченную экспоненциальную задержку между повторами. Ветвь BuildShip должна иметь строгое ограничение на число повторов.
5xx или тайм-аут
Отделяйте временные сбои провайдера или сети от недопустимых запросов. Повторите попытку небольшое число раз, при наличии записывайте безопасный идентификатор запроса и возвращайте контролируемую ошибку после исчерпания лимита повторов.
Пустой текст
Проверьте разобранный ответ во время защищенного теста. Проверьте выбранную модель и сопоставление с choices[0].message.content. Если вы вызываете другой endpoint OdiRouter, используйте схему ответа этого endpoint, а не путь chat completions.
Подготовьте рабочий процесс к эксплуатации
Сохраняйте выбор модели на сервере, если только вызывающим сторонам не разрешено выбирать из утвержденного списка. Проверяйте обязательные поля и длину промпта до запроса OdiRouter. Установите тайм-аут запроса, ограничьте количество повторов и не допускайте попадания секретов и ненужных пользовательских данных в журналы.
Главная страница OdiRouter описывает доступ к моделям 200+ через один API-ключ и маршрутизацию по цене, задержке и доступности. При выборе маршрута используйте актуальные страницы моделей и цен, поскольку эти сведения могут меняться.
BuildShip поддерживает тесты для отдельных узлов и полных рабочих процессов. Сохраните несколько репрезентативных случаев успеха и сбоя, чтобы последующие изменения можно было проверять на тех же входных данных. Для чувствительных или регулируемых рабочих нагрузок перед выпуском также требуется проверка развертывания, обработки данных и контроля доступа с учетом требований организации.
Выполните первый запрос
Создайте учетную запись OdiRouter, выберите актуальную модель, выпустите API-ключ и выполните этот поток с одним запросом, прежде чем добавлять новые вызовы моделей. OdiRouter homepage является отправной точкой, а model catalog и pricing page предоставляют актуальные варианты.