Почему сделать хороший инференс-гейтвей сложно
TLDR: мы сравнили наш хаб с самыми популярными решениями и обнаружили, что даже те, кто просто проксируют в OpenRouter (а это большинство решений на рынке), не справляются с тем, чтобы сделать это корректно и быстро.
Отличаются протоколы: есть Responses API, Messages API, Chat Completions и другие. Чтобы поддержать ту или иную модель, нужно поддерживать необходимый протокол. Но даже если модели работают по одному протоколу, это не гарантирует, что они будут вести себя одинаково и слать одни и те же поля и эти поля будут одинаково интерпретироваться.
Например, из недавнего: OpenAI порой не присылает Content-Type: text/event-stream в ответе, хотя по протоколу должен. В результате чего может ломаться парсинг у некоторых агентов или инференс-гейтвеев.
Особый интерес представляет Chat Completions протокол. OpenAI остановил его развитие, перейдя на Responses, а значительная часть индустрии продолжила его использовать и развивать, но без единого стандарта. В результате там появились всякие костыли вроде tool_stream, которые провайдеры зачастую поддерживают, но не документируют. Как пример, есть разногласия в max_completion_tokens / max_tokens между провайдерами.
Для этого мы даем слой совместимости, который корректно конвертирует запросы между протоколами и поддерживает разных провайдеров.
Добавляем мы провайдеров и новые модели очень аккуратно, глубоко тестируем все особенности протокола и модели.
Для замеров мы взяли очень популярный сервис в России и сравнили с хабом для типовой задачи ревью: Codex – агент, модель – OpenAI Sol 6.1, одна из популярных на момент записи видео.
Видео к посту демонстрирует, к чему приводят ошибки в разборе протоколов: платит пользователь и временем, и деньгами.
Автор: Илья Щербак
