Przejdź do głównej zawartości

Responses API

Harmony Responses to format domyślny dla nowych modeli (GPT-4.1, GPT-4o, o3, o4-mini). Zapewnia:

  • Dostęp do narzędzi (function_call, code_interpreter, web_search)
  • Jeden strumień zdarzeń
  • response_id do wznawiania rozmów
  • Równoległe wywołania narzędzi

Legacy /v1/chat/completions nie wspiera tych funkcji.

PoleCo oznaczaJak używamy w Vista
id / response_idID odpowiedzi nadawane przez model (resp-...)Przechowujemy w ai_conversation_snapshots.response_id i w sessionArchiveService
previous_response_idParametr żądania - która odpowiedź ma być traktowana jako historiaKażdy retry / kolejny turn wysyła ID poprzedniej odpowiedzi zamiast całej transkrypcji
output[]Tablica kroków: message, function_call, tool_call_output, errorReemitujemy 1:1 do UI
call_idID przydzielone przez model każdemu wywołaniu narzędziaW UI traktujemy jako „tool invocation”
input[]Dane wysyłane do API (tekst, obrazy, function_call_output, pliki)Slash commands i @mentions jako dedykowane elementy
metadataOpcjonalny obiekt echa (model go nie interpretuje)context_id, visit_id, workspace_id
flowchart TB
subgraph Frontend
CP[ChatPanel]
SOAP[SOAP Generator]
Slash[Slash Commands]
end
subgraph Services
UAC[UnifiedAIClient]
SAS[sessionArchiveService]
TR[toolRegistry]
end
subgraph Backend
SR[ServiceResolver]
CH[chat_history.rs]
end
CP --> UAC
SOAP --> UAC
Slash --> UAC
UAC --> SR
SR --> CH
CH -->|response_id| SAS
TR -->|tools| UAC
PlikRola
src-tauri/src/unified_ai/chat/service.rsNormalizacja do /v1/responses, przechowywanie response_id
src/features/ai-suite/state/services/client.tsUnifiedAIClient - serializacja response_id, output, usage
src/features/ai-suite/state/services/sessionArchiveService.tsMirror response_id i output
src/features/ai-suite/state/services/toolRegistry.tsRejestr slash/@ narzędzi
{
"input": [
{"role": "user", "content": [{"type": "input_text", "text": "..."}]},
{"type": "function_call_output", "call_id": "tool-call-id", "output": "{...}"}
],
"metadata": {"visit_id": "vis_123", "context_id": "slash:task"},
"previous_response_id": "resp_abc"
}
{
"id": "resp_def",
"output": [
{"type": "message", "content": [{"type": "output_text", "text": "..."}]},
{"type": "function_call", "name": "vista.lookup_patient", "call_id": "toolu_01...", "arguments": "{...}"}
],
"usage": {...}
}