Возможность преобразования запросов
Возможность преобразования запросов конвертирует канонический запрос в протокол целевого провайдера. Она находится на этапе protocol translation перед выполнением запроса и подходит для перевода нормализованного CLIProxyAPI тела запроса в payload, нужный upstream.
Поле возможности
json
{
"capabilities": {
"request_translator": true
}
}Исходный код:
sdk/pluginapi/types.go:RequestTranslator,RequestTransformRequest,PayloadResponsesdk/pluginabi/types.go:request.translateinternal/pluginhost/adapters.go:TranslateRequest,callRequestTranslator
Примеры:
examples/plugin/request-translator/go/main.goexamples/plugin/simple/go/main.go:MethodRequestTranslate
Методы
| Метод | Назначение |
|---|---|
request.translate | Преобразует Body из FromFormat в ToFormat. |
Запрос
json
{
"FromFormat": "chat-completions",
"ToFormat": "anthropic",
"Model": "claude-sonnet",
"Stream": false,
"Body": "base64-request-body"
}Ответ
json
{
"Body": "base64-translated-body"
}Отличие от нормализации запросов
- Возможность нормализации запросов приводит provider или специальные входные запросы к каноническому формату, понятному хосту.
- Возможность преобразования запросов переводит канонический формат в целевой upstream-протокол.
Замечания по разработке
- Обрабатывайте только явно поддерживаемые сочетания форматов. Если сочетание не поддерживается, верните ошибку или не объявляйте эту возможность.
Bodyдолжен быть полным и валидным payload целевого протокола.- Не выполняйте выбор учётных данных или upstream HTTP-запросы внутри translator; это относится к этапам scheduler и executor.