Fireworks
Конвертация Fireworks API в Meridian — native chat, responses, completions, embeddings, streaming и обработка Fireworks-специфичных параметров.
Обзор
Fireworks — OpenAI-совместимый провайдер в Meridian с нативной поддержкой:
- Chat Completions через
/v1/chat/completions; - Responses API через
/v1/responses; - Text Completions через
/v1/completions; - Embeddings через
/v1/embeddings; - Streaming для chat, responses и completions;
- Tool calling для chat и responses.
Если не указано иное, Fireworks следует стандартному OpenAI-совместимому поведению запросов и ответов, описанному в OpenAI.
Поддерживаемые операции
| Операция | Non-Streaming | Streaming | Endpoint |
|---|---|---|---|
| Chat Completions | ✅ | ✅ | /v1/chat/completions |
| Responses API | ✅ | ✅ | /v1/responses |
| Text Completions | ✅ | ✅ | /v1/completions |
| Embeddings | ✅ | ❌ | /v1/embeddings |
| List Models | ✅ | — | /v1/models |
| Images | ❌ | ❌ | — |
| Speech / Transcription | ❌ | ❌ | — |
| Files | ❌ | ❌ | — |
| Batch | ❌ | ❌ | — |
| Count Tokens | ❌ | ❌ | — |
Поддержка Responses в Fireworks — нативная в Meridian. Запросы уходят напрямую в эндпоинт Fireworks /v1/responses, поэтому поля вроде previous_response_id, max_tool_calls и store сохраняются.
1. Chat Completions
Fireworks chat completions используют стандартный OpenAI-совместимый wire-формат.
Fireworks-специфичная обработка
predictionсохраняется и пробрасывается.- Meridian маппит
prompt_cache_keyв Fireworks-полеprompt_cache_isolation_keyдля изоляции prompt cache в chat completions. - Ассистентский
reasoning_contentсохраняется для тех Fireworks chat-моделей, которые поддерживают reasoning history.
Фильтруемые параметры
Для Fireworks chat completions Meridian удаляет или переписывает небольшой набор OpenAI-специфичных полей перед отправкой запроса в апстрим:
prompt_cache_keyмаппится в Fireworksprompt_cache_isolation_key;prompt_cache_retentionудаляется;verbosityудаляется;storeудаляется;web_search_optionsудаляется.
Пример
curl -X POST http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "fireworks/accounts/fireworks/models/deepseek-v3p2",
"messages": [
{"role": "user", "content": "Reply with exactly: fireworks ok"}
]
}'2. Responses API
Fireworks Responses используют нативный эндпоинт Fireworks:
/v1/responsesЭто сохраняет специфичные для Responses поля и семантику, в том числе:
previous_response_id;max_tool_calls;store;- нативный streaming для responses.
Пример
curl -X POST http://localhost:8080/v1/responses \
-H "Content-Type: application/json" \
-d '{
"model": "fireworks/accounts/fireworks/models/deepseek-v3p2",
"input": [
{"role": "user", "content": "Reply with exactly: responses ok"}
],
"max_tool_calls": 2
}'Для запросов-продолжений Fireworks также поддерживает previous_response_id.
3. Text Completions
Fireworks text completions отправляются на нативный completions-эндпоинт:
/v1/completionsПример
curl -X POST http://localhost:8080/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "fireworks/accounts/fireworks/models/deepseek-v3p2",
"prompt": "In fruits, A is for apple and B is for"
}'Для Fireworks text completions Meridian извлекает prompt_cache_key из extra_params и маппит его в Fireworks-поле prompt_cache_isolation_key.
4. Embeddings
Fireworks embeddings отправляются на:
/v1/embeddingsМодели для embeddings могут отличаться от моделей для chat/completions.
Пример
curl -X POST http://localhost:8080/v1/embeddings \
-H "Content-Type: application/json" \
-d '{
"model": "fireworks/nomic-ai/nomic-embed-text-v1.5",
"input": "embedding test"
}'Fireworks документирует дополнительные embedding-специфичные поля — prompt_template, return_logits, normalize. На этой странице описан стандартный embeddings-флоу, поддерживаемый Meridian на данный момент.
5. Неподдерживаемые операции
Следующие операции у провайдера Fireworks в Meridian пока не поддерживаются:
| Операция | Статус |
|---|---|
| Image generation / editing / variations | ❌ |
| Speech / TTS | ❌ |
| Transcription / STT | ❌ |
| Files | ❌ |
| Batch | ❌ |
| Count tokens | ❌ |
| Rerank | ❌ |