Dokumentacja API Hop
Multimodalne OpenAI Responses
API Responses zgodne z OpenAI. Ten punkt końcowy używa input w stylu OpenAI i obsługuje tekst, publiczne adresy URL obrazów, pliki PDF na wejściu, wywołania narzędzi, opcje rozumowania i parametry strumieniowania.
https://api.apihop.ai/openai/responsesAPI Responses zgodne z OpenAI. Ten punkt końcowy używa input w stylu OpenAI i obsługuje tekst, publiczne adresy URL obrazów, pliki PDF na wejściu, wywołania narzędzi, opcje rozumowania i parametry strumieniowania.
POST https://api.apihop.ai/openai/responsesUwierzytelnianie
Wszystkie żądania wymagają uwierzytelniania tokenem Bearer.
Authorization: Bearer YOUR_API_KEYTreść żądania
modelstringWymaganeWartość domyślna: gpt-5.4Obecnie aktywne modele obsługujące Responses:
gpt-5.4gpt-5.5gpt-5.6-solgpt-5.6-terragpt-6-astra
Modele widoczne dla bieżącego klucza API znajdziesz w katalogu modeli.
inputstring | object[]Treść wejściowa. Wymagana, chyba że podano niepuste previous_response_id. Pominięcie obu pól lub użycie nieprawidłowego typu wejścia zwraca 400 przed rozliczeniem.
Obsługiwane formy:
- Ciąg znaków, równoważny jednemu tekstowemu wejściu
user. - Tablica elementów wejściowych dla historii rozmowy, wejścia multimodalnego i wyników wywołań narzędzi.
Każdy obiekt w tablicy wejściowej może zawierać następujące pola:
typestringTyp elementu wejściowego.
Typowe wartości:
message: wiadomość wejściowa.function_call_output: wynik wywołania narzędzia funkcyjnego.
rolestringRola przy type=message.
Typowe wartości:
developersystemuserassistant
contentstring | object[]Treść wiadomości.
W żądaniach multimodalnych używaj tablicy bloków treści. Bloki treści obsługują:
typestringTyp bloku treści.
Obecnie obsługiwane:
input_textinput_imageinput_file
textstringTreść tekstowa przy type=input_text.
image_urlstringPubliczny adres URL obrazu przy type=input_image.
Obsługiwane są tylko publicznie dostępne adresy URL obrazów http:// lub https://. Adresy Data URL Base64, takie jak data:image/...;base64,..., nie są obsługiwane.
detailstringWartość domyślna: autoPoziom szczegółowości obrazu przy type=input_image.
Typowe wartości:
autolowhigh
file_datastringAdres Data URL zawartości pliku przy type=input_file. Pliki PDF mogą używać data:application/pdf;base64,....
filenamestringNazwa pliku przy type=input_file.
instructionsstringInstrukcje systemowe lub deweloperskie wstawiane do kontekstu modelu.
max_output_tokensintegerOpcjonalna maksymalna liczba tokenów wyjściowych jako dodatnia liczba całkowita. Pomiń to pole, aby użyć wartości domyślnej dostawcy dla wybranego modelu. W zależności od modelu limit może obejmować zarówno tokeny rozumowania, jak i końcowy tekst. Mały limit może uciąć odpowiedź lub wyczerpać się przed końcowym tekstem; jego zwiększenie może podnieść koszt.
streambooleanWartość domyślna: falseCzy strumieniować odpowiedź.
false: zwraca jedną kompletną odpowiedźtrue: zwraca zdarzenia SSE w stylu OpenAI Responses
temperaturenumberWartość domyślna: 1.0Temperatura próbkowania, zwykle od 0 do 2.
top_pnumberWartość domyślna: 1.0Parametr próbkowania jądrowego, zwykle od 0 do 1.
textobjectKonfiguracja tekstu wyjściowego.
text.formatobjectKonfiguracja formatu tekstu, na przykład { "type": "text" } lub schemat JSON.
text.verbositystringSzczegółowość wyniku, na przykład low, medium lub high. Obsługa zależy od wybranego modelu.
toolsobject[]Definicje narzędzi. Dostępność zależy od wybranego modelu i dostępnych funkcji.
tool_choicestring | objectZasady wyboru narzędzi.
parallel_tool_callsbooleanCzy dozwolone są równoległe wywołania narzędzi.
reasoningobjectOpcje dotyczące rozumowania.
includestring[]Dodatkowe pola do uwzględnienia w odpowiedzi.
prompt_cache_keystringKlucz pamięci podręcznej promptu do jej ponownego użycia.
prompt_cache_retentionstringZasady przechowywania pamięci podręcznej promptu. Obsługiwane wartości zależą od wybranego modelu i dostępnych funkcji.
safety_identifierstringStały identyfikator użytkownika końcowego dla mechanizmów bezpieczeństwa.
storebooleanCzy stan odpowiedzi może być przechowywany.
Różnice parametrów modeli
- Natywne przekazywanie Responses zgodne z OpenAI zachowuje
top_pw żądaniu do dostawcy; walidacja i zachowanie próbkowania zależą od wybranego modelu i dostawcy. Kontrole z 2026-09-26 zaakceptowałytop_p: 0.9dlagpt-5.5,gpt-5.6-soligpt-5.6-terra. Akceptacja i przekazanie nie dowodzą wpływu na próbkowanie ani nie gwarantują obsługi innych wartości, modeli lub późniejszych żądań. Zacznij od minimalnego żądania. - Obsługa opisana na tej stronie dotyczy tylko zwykłego punktu końcowego
/openai/responses. Nie oznacza, że ten sam model obsługuje/openai/responses/compact, WebSocket lub stanoweprevious_response_id. - Pięć wymienionych wyżej modeli GPT nie ma obecnie zweryfikowanego kanału Compact. Żądania Compact są odrzucane przed rozliczeniem, gdy nie ma jawnie włączonego kanału. Zwykłe Responses i Responses WebSocket pozostają dostępne.
Przykłady żądań
Poniższe przykłady podają input. Kontynuacja może pominąć input, gdy podaje prawidłowe previous_response_id, a wybrany kanał obsługuje kontynuację ze stanem. Identyfikator odpowiedzi nie włącza tej funkcji w kanale bez jej obsługi. Wyniki narzędzi pozostają prawidłowymi elementami wejściowymi, w tym function_call_output.
Tekst
{
"model": "gpt-5.4",
"input": "Hello, introduce yourself in one sentence."
}Parametry w stylu Codex CLI
{
"model": "gpt-5.5",
"input": "Reply with READY only.",
"reasoning": {
"effort": "xhigh"
},
"store": false,
"text": {
"verbosity": "low"
},
"stream": true
}Rozumienie obrazów
{
"model": "gpt-5.4",
"input": [
{
"type": "message",
"role": "user",
"content": [
{
"type": "input_text",
"text": "What is in this image?"
},
{
"type": "input_image",
"image_url": "https://example.com/cat.png",
"detail": "high"
}
]
}
]
}Plik na wejściu
Użyj file_data wraz z filename, aby przesłać zawartość PDF. file_data musi być kompletnym adresem Data URL.
{
"model": "gpt-5.4",
"input": [
{
"type": "message",
"role": "user",
"content": [
{
"type": "input_text",
"text": "Summarize the key points in this PDF."
},
{
"type": "input_file",
"file_data": "data:application/pdf;base64,JVBERi0xLjQKJc...",
"filename": "report.pdf"
}
]
}
]
}Obraz i plik na wejściu
{
"model": "gpt-5.4",
"input": [
{
"type": "message",
"role": "user",
"content": [
{
"type": "input_text",
"text": "Give three conclusions based on the image and attachment."
},
{
"type": "input_image",
"image_url": "https://example.com/chart.png",
"detail": "high"
},
{
"type": "input_file",
"file_data": "data:application/pdf;base64,JVBERi0xLjQKJc...",
"filename": "notes.pdf"
}
]
}
]
}Strumieniowanie wyniku
{
"model": "gpt-5.4",
"stream": true,
"input": [
{
"role": "user",
"content": [
{
"type": "input_text",
"text": "Explain this diagram step by step."
},
{
"type": "input_image",
"image_url": "https://example.com/diagram.png"
}
]
}
]
}Odpowiedź
Odpowiedzi bez strumieniowania mają format OpenAI Responses. Rzeczywiste pola mogą zależeć od możliwości wybranego modelu.
idstringUnikalny identyfikator odpowiedzi.
objectstringTyp obiektu odpowiedzi, zwykle response.
created_atintegerZnacznik czasu utworzenia.
modelstringFaktycznie użyty model.
outputobject[]Lista elementów wyjściowych. Typowe elementy obejmują message, function_call i wyniki związane z narzędziami.
usageobjectStatystyki zużycia tokenów, takie jak input_tokens, output_tokens i total_tokens.
Przykład powodzenia
{
"id": "resp_123",
"object": "response",
"created_at": 1766534400,
"model": "gpt-5.4",
"output": [
{
"type": "message",
"role": "assistant",
"content": [
{
"text": "The image shows a cat, and the attachment is a document about pet care."
}
]
}
],
"usage": {
"input_tokens": 128,
"output_tokens": 42,
"total_tokens": 170
}
}Odpowiedź strumieniowa
Przy stream=true punkt końcowy zwraca zdarzenia Server-Sent Events.
event: response.output_text.delta
data: {"type":"response.output_text.delta","delta":"The image"}
event: response.completed
data: {"type":"response.completed","response":{"id":"resp_123"}}Odczytuj zdarzenia do response.completed lub zamknięcia połączenia.
Odpowiedź błędu
Zobacz kody błędów i diagnozowanie, aby poznać pełny wykaz kodów, różnice protokołów i kroki diagnostyczne.
Błędy HTTP generowane przez platformę używają poniższych płaskich pól zamiast opakowania error. Niektóre błędy dostawcy mogą zachować oryginalną strukturę; błędy w już rozpoczętym strumieniu SSE nie mają formatu tego przykładu odpowiedzi HTTP.
{
"code": 40000,
"message": "Insufficient credit. Required: 30000, Available: 20000",
"type": "api_error"
}Uwagi
- Punkt końcowy
Responsesużywainput, a niemessages. Jeśli Twój klient wysyła tylkomessages, użyj/openai/v1/chat/completions. - Wejście obrazu używa
input_image;image_urlmusi być publicznym adresem URLhttp://lubhttps://. Adresy Data URL Base64 nie są obsługiwane dla obrazów. - Wejście pliku używa
input_file. Dla plików PDF użyjfile_datawraz zfilename;file_datapowinno być kompletnym adresem URLdata:application/pdf;base64,.... - Wejście/wyjście dźwięku, narzędzia generowania obrazów, wyszukiwanie plików i inne zaawansowane możliwości zależą od wybranego modelu i dostępnych funkcji.
- Pola wymienione na tej stronie tworzą obecny publiczny kontrakt żądania Responses; nie zakładaj dostępności pól niewymienionych.
/openai/responsesjest zalecaną publiczną ścieżką./v1/responsesużywa tego samego publicznego kontraktu żądań i odpowiedzi./compat/v1/responsesużywa tego samego publicznego kontraktu żądań i odpowiedzi./openai/v1/responsesużywa tego samego publicznego kontraktu żądań i odpowiedzi.