Busca em arquivos
RAG integrado: upload de arquivos, vector stores e respostas baseadas nos seus documentos.
Atualizado em 10 de ago. de 2026
A busca em arquivos dá ao assistente conhecimento que não está no modelo — manuais, políticas, relatórios, qualquer documento seu. Você sobe os arquivos para vector stores; a plataforma extrai o texto, fatia, gera os embeddings e indexa. Na execução, o modelo decide quando buscar, e a resposta vem fundamentada nos trechos encontrados.
- 1
Crie o assistente com file_search
Adicione
{"type": "file_search"}emtools— os documentos podem vir depois. - 2
Suba os arquivos
Um
POST /v1/filesmultipart compurpose=assistantspara cada documento. - 3
Crie a vector store e adicione os arquivos
Um
POST /v1/vector_stores, depoisPOST /v1/vector_stores/{id}/filescom cadafile_id. A ingestão é assíncrona — aguarde o statuscompleted. - 4
Vincule ao assistente
Atualize
tool_resources.file_search.vector_store_idscom o id da store. - 5
Rode
Pergunte algo que está nos documentos. O run mostra a busca nos steps e a resposta cita o conteúdo.
# 1. assistente
ASST=$(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": "RH",
"instructions": "Responda com base nos documentos internos.",
"tools": [{"type": "file_search"}]
}' | jq -r .id)
# 2. arquivo
FILE=$(curl -s https://api.hinow.ai/v1/files \
-H "Authorization: Bearer hi_SUA_API_KEY" \
-F "file=@politica_ferias.pdf" -F "purpose=assistants" | jq -r .id)
# 3. vector store + arquivo
VS=$(curl -s https://api.hinow.ai/v1/vector_stores \
-H "Authorization: Bearer hi_SUA_API_KEY" -H "Content-Type: application/json" \
-d '{"name": "Docs RH"}' | jq -r .id)
curl -s https://api.hinow.ai/v1/vector_stores/$VS/files \
-H "Authorization: Bearer hi_SUA_API_KEY" -H "Content-Type: application/json" \
-d "{\"file_id\": \"$FILE\"}"
# aguarde: GET /v1/vector_stores/$VS/files/$FILE até status=completed
# 4. vincular
curl -s https://api.hinow.ai/v1/assistants/$ASST \
-H "Authorization: Bearer hi_SUA_API_KEY" -H "Content-Type: application/json" \
-d "{\"tool_resources\": {\"file_search\": {\"vector_store_ids\": [\"$VS\"]}}}"
# 5. perguntar
curl -s https://api.hinow.ai/v1/threads/runs \
-H "Authorization: Bearer hi_SUA_API_KEY" -H "Content-Type: application/json" \
-d "{\"assistant_id\": \"$ASST\", \"thread\": {\"messages\": [\
{\"role\": \"user\", \"content\": \"Quantos dias de férias posso vender?\"}]}}"Na execução, o file_search vira uma ferramenta que o modelo chama com a consulta que ele mesmo formula. A busca é semântica, roda sobre os vector stores do assistente e da thread, e devolve os trechos mais relevantes (até 8 por busca) para o modelo compor a resposta.
O que foi encontrado fica registrado nos run steps — cada busca aparece como um step tool_calls com file_id, file_name e score de cada resultado:
{
"type": "tool_calls",
"tool_calls": [{
"type": "file_search",
"file_search": {
"results": [
{"file_id": "file-8bcac8...", "file_name": "politica_ferias.pdf", "score": 0.59}
]
}
}]
}https://api.hinow.ai/v1/filesBearerSobe um arquivo (multipart/form-data).
Parâmetros
filefile· bodyobrigatórioAté 25 MB. PDF, TXT, Markdown, DOCX e demais formatos de texto.
purposestring· bodyobrigatórioassistants para busca em arquivos.
Respostas
O restante do CRUD: GET /v1/files (aceita ?purpose=), GET /v1/files/{id}, GET /v1/files/{id}/content (o binário) e DELETE /v1/files/{id}.
CRUD completo em /v1/vector_stores (criar, listar, ler, editar, remover) e arquivos da store em /v1/vector_stores/{id}/files. O objeto traz file_counts com o progresso da ingestão:
{"total": 2, "completed": 2, "in_progress": 0, "failed": 0, "cancelled": 0}Para volumes maiores, os file batches adicionam vários arquivos numa chamada e dão o progresso agregado — é o que os helpers upload_and_poll dos SDKs usam:
# vários arquivos de uma vez
curl -s https://api.hinow.ai/v1/vector_stores/$VS/file_batches \
-H "Authorization: Bearer hi_SUA_API_KEY" -H "Content-Type: application/json" \
-d '{"file_ids": ["file-aaa", "file-bbb", "file-ccc"]}'
# progresso
curl -s https://api.hinow.ai/v1/vector_stores/$VS/file_batches/$BATCH \
-H "Authorization: Bearer hi_SUA_API_KEY"Threads também têm documentos
Uma thread pode carregar tool_resources.file_search.vector_store_ids próprios — útil para juntar os documentos permanentes do assistente com um arquivo específico daquela conversa. A busca cobre os dois.

