POST /responses aceita requisições no formato Responses API da OpenAI e retorna itens de saída tipados, como reasoning, message e function_call. Ele funciona com todos os modelos de texto da Venice e aceita uma chave de API ou autenticação por carteira x402.
Quando usar
Use/responses quando seu cliente já fala o formato Responses, por exemplo agentes de programação e SDKs construídos sobre o responses.create da OpenAI. É a melhor forma de executar agentes no estilo Codex em modelos OpenAI por meio da Venice.
Para modelos que não são da OpenAI, /chat/completions ainda é a opção mais completa: ele suporta saídas estruturadas, entradas de arquivo, modelos E2EE e todas as opções de venice_parameters em todos os modelos.
Início rápido
output de itens tipados e um objeto usage:
Como as requisições são atendidas
A Venice atende cada requisição em um de dois modos.- Nativo. Requisições para modelos OpenAI são encaminhadas à Responses API da OpenAI sem tradução. Isso abrange todos os modelos
openai-*, excetoopenai-gpt-oss-120b. Itens de resposta, IDs, raciocínio e eventos de stream retornam exatamente como a OpenAI os retorna. - Traduzido. Todos os outros modelos, além de
openai-gpt-oss-120b, passam por uma camada de tradução: a Venice converte a requisição em uma requisição de Chat Completions, a executa e converte o resultado de volta. Qualquer coisa que o formato Chat Completions não consiga expressar é ignorada ou rejeitada. Veja Limitações.
web_search, web_search: true ou venice_parameters.enable_web_search), x_search, venice_parameters.character_slug e venice_parameters.enable_web_scraping. Requisições com campos que o modo nativo não consegue atender, listados em Modo nativo, recorrem ao modo traduzido da mesma forma.
Você pode controlar e inspecionar o modo com headers:
Conversas são stateless
A Venice não armazena respostas, em nenhum dos modos. Envie a conversa inteira eminput a cada requisição, anexando os itens de output anteriores e quaisquer resultados de ferramentas.
store é sempre tratado como false. previous_response_id e conversation não podem ser resolvidos porque nada é armazenado. Com o modo padrão auto, essas requisições são atendidas no modo traduzido, onde esses campos são ignorados. Com x-venice-responses-mode: native, elas retornam 400.
Modo nativo
O modo nativo suporta os recursos da Responses API que o próprio endpoint da OpenAI suporta, incluindo:instructions, aplicadas como escritas.- Saídas estruturadas com
text.format. A OpenAI valida schemas de forma estrita, então um schema inválido retorna 400. Por exemplo,strict: trueexigeadditionalProperties: false, ejson_objectexige a palavra “json” em algum lugar do input. - Ferramentas de função e
tool_choiceno formato Responses da OpenAI{"type": "function", "name": "..."}, além de chamadas de ferramentas paralelas. - Ferramentas executadas pelo cliente:
custom(input livre),namespace,tool_search,apply_patch,shellelocal_shellcom um ambiente local, e computer use. - Resumos de raciocínio, ativados por padrão. Modelos de raciocínio sempre retornam
encrypted_contentnos itens de raciocínio. Envie esses itens de volta eminputno próximo turno para manter o contexto de raciocínio do modelo. - Prompt caching com
prompt_cache_key. A Venice limita o escopo da chave à sua conta, de modo que ela nunca compartilha cache com outros usuários, e retorna sua chave original na resposta. - Entradas de imagem, incluindo
detail: "original", einput_filecomfile_datainline. - Modelos Pro (
*-pro), que executam automaticamente o modo de raciocínio Pro da OpenAI.
instructions são aplicadas sem alterações. Defina venice_parameters.include_venice_system_prompt: true para adicioná-lo.
Os itens a seguir precisam de armazenamento no servidor ou de recursos hospedados pelo provedor, então não estão disponíveis nativamente:
Essas restrições também se aplicam a ferramentas carregadas mais adiante na conversa por meio de itens
additional_tools ou tool_search_output. Uma ferramenta de busca da Venice declarada ali também direciona a requisição para o modo traduzido.
Campos de requisição não reconhecidos são tratados da mesma forma: com auto, a requisição é atendida no modo traduzido, e com native, ela retorna 400.
Streaming
Definastream: true para receber server-sent events. Ambos os modos encerram o stream com data: [DONE].
No modo nativo, os eventos são exatamente os da OpenAI, incluindo response.reasoning_summary_text.delta para resumos de raciocínio e response.function_call_arguments.delta para argumentos de ferramentas.
No modo traduzido, os eventos são response.created, response.output_item.added, response.content_part.added, response.output_text.delta, response.function_call_arguments.delta, response.content_part.done, response.output_item.done e, por fim, response.completed, response.incomplete ou response.failed. Dois eventos diferem dos da OpenAI:
- O texto de raciocínio é transmitido como
response.reasoning.delta, e não como os eventos de resumo de raciocínio da OpenAI. - Quando a busca na web é executada, um evento
response.web_search.donetraz os resultados da busca antes que a resposta seja transmitida.
Parâmetros do modo traduzido
A busca na web é cobrada como aumento por busca, assim como em
/chat/completions.
Alguns comportamentos do modo traduzido para levar em conta:
instructionssão aplicadas como uma mensagem de sistema.- Ferramentas custom retornam itens
custom_tool_callcom oinputbruto. Se um modelo retornar argumentos malformados para uma ferramenta custom, ou chamar uma ferramenta que não foi declarada na requisição, a chamada volta como umfunction_callcomum com os argumentos originais, para que seu cliente possa reportar um erro de ferramenta e continuar. - Enquanto o input de uma ferramenta custom é transmitido, o item de chamada e os itens posteriores podem chegar apenas depois que o input estiver completo. O stream envia comentários SSE de keep-alive enquanto aguarda.
- Imagens com
detail: "original"são enviadas comohighpara provedores que não suportam esse valor.
Limitações
Estas lacunas se aplicam ao modo traduzido: todos os modelos que não são da OpenAI,openai-gpt-oss-120b e requisições a modelos OpenAI que usam recursos exclusivos da Venice. Salvo indicação em contrário, a requisição ainda é bem-sucedida e o campo é ignorado.