Ferramentas integradas
As ferramentas integradas permitem que os modelos Sabiá busquem na web, executem código e consultem bases de dados oficiais brasileiras no lado do servidor, sem que você precise implementar ou hospedar nada. Diferentemente da chamada de funções — em que o modelo delega de volta para o seu código — as ferramentas integradas rodam dentro da infraestrutura da Maritaca como um fluxo agêntico: o modelo decide quais ferramentas chamar, as chama em múltiplos passos e retorna apenas a resposta final. O raciocínio e as chamadas de ferramenta intermediários ficam internos.
A disponibilidade varia por ferramenta: a Busca na web funciona em todos os modelos Sabiá, enquanto a Execução de código e o Data Ocean estão disponíveis nos modelos sabia-4 e sabia-4-thinking.
Ferramentas disponíveis
| Ferramenta | Flag | Modelos | O que faz |
|---|---|---|---|
| Busca na web | web_search | Todos os modelos Sabiá | Pesquisa na web e lê páginas para responder com informações atualizadas e fontes. |
| Execução de código | code_execution | sabia-4 e sabia-4-thinking | Executa Python/Bash em um sandbox para calcular, analisar dados e gerar arquivos (gráficos, documentos). |
| Data Ocean | data_ocean | sabia-4 e sabia-4-thinking | Consulta dezenas de bases de dados oficiais brasileiras — população, empresas, saúde, clima, segurança, economia, eleições e mais — para responder com números e fontes reais. |
Ao ativar data_ocean, a busca na web (web_search) e a execução de código (code_execution) também são ativadas automaticamente. As respostas do Data Ocean costumam cruzar dados oficiais com busca na web e cálculos. Como consequência, data_ocean: true pode gerar cobranças de Data Ocean + busca na web + execução de código na mesma requisição (veja Preços).
Ativando as ferramentas
As ferramentas integradas exigem stream: false (o fluxo agêntico retorna apenas a resposta final) e um modelo compatível (veja a tabela acima). Elas vêm desligadas por padrão — você as ativa por requisição.
Chat Completions
Ative uma ferramenta definindo a flag booleana correspondente no corpo da requisição. Com a biblioteca da OpenAI, envie as flags via extra_body.
curl https://chat.maritaca.ai/api/chat/completions \
-H "Authorization: Bearer $MARITACA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sabia-4-thinking",
"stream": false,
"data_ocean": true,
"messages": [
{"role": "user", "content": "Quantos habitantes tem Campinas segundo o Censo 2022?"}
]
}'
from openai import OpenAI
client = OpenAI(api_key=MARITACA_API_KEY, base_url="https://chat.maritaca.ai/api")
response = client.chat.completions.create(
model="sabia-4-thinking",
stream=False,
messages=[{"role": "user", "content": "Pesquise na web a cotação atual do dólar e cite a fonte."}],
extra_body={"web_search": True},
)
print(response.choices[0].message.content)
Responses API
Na Responses API você pode ativar as ferramentas da mesma forma (pelas flags), ou pela convenção de ferramentas integradas da OpenAI, no array tools:
curl https://chat.maritaca.ai/api/v1/responses \
-H "Authorization: Bearer $MARITACA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sabia-4-thinking",
"input": "Gere um gráfico de barras (3, 7, 2, 5) com matplotlib e mostre para mim.",
"tools": [{"type": "code_interpreter"}]
}'
A mesma chamada com a biblioteca da OpenAI. Os arquivos gerados voltam como
itens code_execution_artifact em response.output — decodifique o
content_base64 para salvá-los:
import base64
from openai import OpenAI
client = OpenAI(api_key=MARITACA_API_KEY, base_url="https://chat.maritaca.ai/api")
response = client.responses.create(
model="sabia-4-thinking",
input="Gere um gráfico de barras (3, 7, 2, 5) com matplotlib e mostre para mim.",
tools=[{"type": "code_interpreter"}], # ou extra_body={"code_execution": True}
)
print(response.output_text)
for item in response.output:
if item.type == "code_execution_artifact":
with open(item.filename, "wb") as f:
f.write(base64.b64decode(item.content_base64))
print("salvo", item.filename)
Os tipos de ferramenta integrada são mapeados para as flags da seguinte forma:
Entrada em tools | Ativa |
|---|---|
{"type": "web_search"} | web_search |
{"type": "code_interpreter"} | code_execution |
{"type": "data_ocean"} | data_ocean |
Você pode combinar ferramentas integradas com as suas próprias ferramentas de função na mesma requisição.