/v1/responses na /chat/completions. Mapuje też poziomy reasoningu w stylu OpenAI
na dwa poziomy akceptowane przez DeepSeek.
Konfiguracja
config.yaml:
Jeśli wcześniej skonfigurowałeś DeepSeek jako
type: openai, zmień to na
type: deepseek. Ogólny provider OpenAI nie tłumaczy /responses
ani nie mapuje poziomu reasoningu.Mapowanie poziomu reasoningu
Modele reasoningowe DeepSeek V4 przyjmująreasoning_effort jako string na najwyższym
poziomie z dwoma dozwolonymi poziomami: high i max.
GoModel przepisuje
"reasoning": {"effort": "..."} w formacie OpenAI na
reasoning_effort na najwyższym poziomie w formacie DeepSeek – bez zmian po stronie klienta.
Własne wartości klienta zwaliduj lub znormalizuj do high albo max przed wywołaniem GoModel.
Aby wyłączyć reasoning, całkowicie pomiń pole reasoning; każde podane
reasoning.effort, łącznie z low, zostaje zmapowane i włącza reasoning.
Wywołania narzędzi i reasoning
W trybie thinking DeepSeek wymagareasoning_content w każdej wcześniejszej
turze asystenta, gdy request zawiera tools, nawet w turach bez wywołań
narzędzi. GoModel zachowuje wartość wysłaną przez klienta, a gdy jej brakuje, wstawia
pojedynczą spację, dzięki czemu klienci, którzy nie wiedzą, że request obsługuje DeepSeek
(na przykład przez model wirtualny), nadal działają.
Structured output
DeepSeek akceptujeresponse_format: {"type": "json_object"}, ale nie
json_schema. Dla requestów z json_schema (w tym text.format na
/v1/responses) GoModel kieruje się ustawieniem DEEPSEEK_JSON_SCHEMA_MODE:
Wynik po obniżeniu trybu to poprawny JSON zgodny z założeniami schematu, ale DeepSeek
go nie wymusza. Zwaliduj wynik, jeśli zależy Ci na dokładnym kształcie, albo ustaw
error, gdy klienci nigdy nie mogą otrzymać niewymuszonego wyniku.Nieobsługiwane przez DeepSeek
- Embeddingi (zwraca
invalid_request_error).