Ir para o conteúdo

Chamada de funções

Descreva suas funções; o modelo decide quando chamá-las, seu código executa e devolve o resultado.

Atualizado em 10 de ago. de 2026

Na chamada de funções, você descreve funções para o assistente e ele devolve, de forma inteligente, quais chamar e com quais argumentos — quem executa é o seu código. O run para em requires_action, espera os resultados e continua com eles.

Passo 1: descreva as funções

Funções entram em tools na criação do assistente, com parâmetros em JSON Schema:

curl -s https://api.hinow.ai/v1/assistants \
  -H "Authorization: Bearer hi_SUA_API_KEY" -H "Content-Type: application/json" \
  -d '{
    "model": "hinow/himax",
    "name": "Meteorologista",
    "instructions": "Use get_weather para responder sobre o clima.",
    "tools": [{
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Obtém o clima atual de uma cidade",
        "parameters": {
          "type": "object",
          "properties": {"city": {"type": "string", "description": "Nome da cidade"}},
          "required": ["city"]
        }
      }
    }]
  }'

Passo 2: rode e observe o requires_action

Quando a pergunta dispara uma função, o run para em requires_action. O objeto traz as chamadas pendentes — cada uma com id, nome e argumentos que o modelo escolheu:

{
  "id": "run_e31d5fe7...",
  "status": "requires_action",
  "required_action": {
    "type": "submit_tool_outputs",
    "submit_tool_outputs": {
      "tool_calls": [{
        "id": "call_00_R8JQ...",
        "type": "function",
        "function": {"name": "get_weather", "arguments": "{\"city\": \"Curitiba\"}"}
      }]
    }
  }
}

Passo 3: execute e devolva os resultados

POSThttps://api.hinow.ai/v1/threads/{thread_id}/runs/{run_id}/submit_tool_outputsBearer

Entrega os resultados das funções; o run continua de onde parou.

Parâmetros

  • thread_idstring· pathobrigatório
  • run_idstring· pathobrigatório
  • tool_outputsarray· bodyobrigatório

    [{"tool_call_id": "call_...", "output": "..."}] — todos os calls pendentes, numa única chamada.

  • streamboolean· body

    true continua o run em SSE, com os mesmos eventos.

Respostas

200O run retomado (queued → resposta final)
400tool_call_id desconhecido, faltando, ou run fora de requires_action
curl -s https://api.hinow.ai/v1/threads/$THREAD/runs/$RUN/submit_tool_outputs \
  -H "Authorization: Bearer hi_SUA_API_KEY" -H "Content-Type: application/json" \
  -d '{
    "tool_outputs": [{
      "tool_call_id": "call_00_R8JQ...",
      "output": "{\"temperatura\": \"14°C\", \"condicao\": \"chuvisco\"}"
    }]
  }'

O run volta para queued, o modelo lê os resultados e escreve a resposta final na thread. Os run steps registram tudo: o step tool_calls guarda argumentos e o output que você enviou; o message_creation fecha o ciclo.

Tudo de uma vez, dentro do prazo

Envie os outputs de todos os tool_calls pendentes numa única chamada — parciais são recusados com 400 e a lista dos ids esperados. E dentro da janela do run: 10 minutos após a criação, um run em requires_action expira.

O modelo pode chamar várias funções de uma vez (parallel_tool_calls, ligado por default) — o array tool_calls traz todas, e você devolve todas juntas. Com stream: true no submit, a continuação chega por SSE como em qualquer run.