EU GPT logo
EU GPT

Public preview — Deze API is in public preview. Endpoints, schemas en limieten kunnen wijzigen vóór general availability.

API

De Responses API

Waarom EU GPT de OpenAI Responses-shape gebruikt en hoe deze verschilt van Chat Completions.

EU GPT biedt één conversationele endpoint: POST /v1/responses. Hij implementeert de OpenAI Responses API — de opvolger van Chat Completions — met dezelfde request-shape, dezelfde event-namen en dezelfde SDK-ergonomie.

Als je ooit openai.chat.completions.create hebt aangeroepen, herken je hier alles. Als je openai.responses.create hebt gebruikt, kun je overstappen door de base URL en de API-key te wijzigen.

Hoe het verschilt van Chat Completions#

De Responses API is een superset van Chat Completions. De shape-wijzigingen zijn bewust en klein.

AspectChat CompletionsResponses
Veld voor de promptmessages: [{ role, content }]input: string of structured ContentItem[]
Outputchoices[0].message.contentoutput_text (string) en output: ContentItem[] (structured)
StateStateless — caller stuurt elke beurt de volledige historieOptionele conversation_id — server bewaart de thread
Toolstools[] in de request, model retourneert tool_callsTools zijn server-side, zichtbaar via streaming events
Streaming eventsAlleen delta.content-chunksGetypeerde events: text deltas, tool calls, content parts, completion

In de praktijk betekent dit:

  • Voor een one-shot-antwoord geef je een string. De response is een string. Zelfde shape als Chat Completions.
  • Voor een multi-turn-gesprek geef je een conversation_id. De server handelt history af.

De request-shape#

{
  "model": "auto",
  "input": "What is data sovereignty?",
  "stream": true,
  "instructions": "Be concise. Cite sources when you use the web search tool.",
  "conversation_id": "8f14e45f-ceea-467a-a4ed-a9e9a5cb16ee",
  "project_id": null
}
  • model — geaccepteerd voor OpenAI-SDK-compatibiliteit maar genegeerd. De router kiest altijd het model; elk concreet ID dat je meestuurt heeft geen effect. Geef "auto" mee. De response rapporteert het daadwerkelijk gebruikte model. Zie Modellen.
  • input — een string voor plain text, of een lijst ContentItems voor structured input.
  • streamtrue (default) retourneert SSE; false retourneert één JSON-document.
  • instructions — system prompt voor deze response. Als het gesprek nieuw is, wordt het ook opgeslagen als de system message van het gesprek.
  • conversation_id — toevoegen aan een bestaande thread. Weglaten voor stateless.
  • project_id — bind de response aan de RAG-corpus van een project. Caller moet member zijn.

De response-shape (non-streaming)#

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "object": "response",
  "created_at": 1716387200000,
  "status": "completed",
  "model": "gpt-oss-120b",
  "output": [
    { "type": "message", "role": "assistant", "content": [/* text parts */] }
  ],
  "output_text": "Data sovereignty is …"
}

Voor de meeste applicaties is output_text voldoende — dit is een platte concatenatie van elke text-chunk die het model uitstootte. Gebruik output als je de structured items nodig hebt (bv. om tool calls apart te renderen of om content-part-grenzen te bewaren).

Wat hetzelfde blijft als bij OpenAI#

  • De Authorization: Bearer …-header.
  • Het base-path-layout: /v1/responses.
  • De SDK-call-shape: client.responses.create(...).
  • De streaming-event-taxonomie (response.output_text.delta, response.completed, etc.).
  • De error-envelope-structuur (een JSON-body met detail en error).

Wat verschilt van OpenAI#

  • Geen interactieve tool approval gate. Tools zijn auto-approved voor API-callers (web_search, web_fetch, calculator, current_datetime). De web-UI gate’t ze; de API draait ze.
  • Geen previous_response_id. Stateful gesprekken gebruiken conversation_id, geen response-chains.
  • Stateless requests zijn standaard verborgen. Een request zonder conversation_id maakt een ephemeral gesprek dat niet in de history van de gebruiker verschijnt.
  • organization is impliciet. Je API-key draagt de organisatie-context; je geeft het niet door in de body.