Ponto Neural
O Hub CSV agora possui uma API de busca semântica que indexa automaticamente todo o conteúdo do repositório. Qualquer agente, automação ou SaaS pode consultar o arsenal completo do Hub em linguagem natural.
Escopo desta busca
AI Search indexa conteúdo estático do repositório do Hub. Não é o catálogo privado da Central de Documentos, não substitui seu RBAC/ACL e não deve receber originais do R2 csv-documents-private. Em 16/09/2026, a pesquisa do Panta v2 documental foi validada em produção pela Central/Extensio nos cinco tenants, com isolamento e políticas preservados. Esta versão do Hub habilita o campo de busca após essa validação; a sessão humana no navegador permanece não aferida. A busca textual documental não altera o escopo deste AI Search.
Para uso cotidiano, consulte o manual da Central e o manual do Panta v2. Eles explicam o papel de cada aplicação sem confundir pesquisa de páginas com acesso a documentos privados.
O Cloudflare AI Search transforma o conteúdo estático do Hub CSV (markdown, HTML, JSON, CSV, PDF) em uma base de conhecimento vetorial consultável via API REST. A cada push no repositório, o conteúdo é sincronizado automaticamente para o bucket R2 e re-indexado.
Não é uma interface de chat. É uma API robusta projetada para ser o ponto de conexão entre o Hub e o restante do ecossistema digital: agentes, automações, SaaS e, em especial, o Extensio.
Hub CSV (GitHub) → GitHub Actions → R2 (hub-csv-knowledge) → AI Search (hub-csv) → API REST
↓
Extensio / LLMs / Make / Agentes| Componente | Recurso | Detalhes |
|---|---|---|
| Repositório | GitHub grupocsv/hub | Fonte primária de todo o conteúdo |
| Armazenamento | R2 hub-csv-knowledge | Fonte externa sincronizada; contagens atuais devem ser consultadas em GET /stats |
| Instância AI Search | hub-csv | O gate de publicação exige zero erro e zero item desatualizado após cada job |
| Embedding | qwen3-embedding-0.6b | 2048 tokens por chunk, 10% overlap |
| AI Gateway | default | Valor retornado pela API da instância em 1º de setembro de 2026 |
| Índice vetorial | Gerenciado pelo AI Search | 1.024 dimensões, conforme GET /stats |
A API AutoRAG anterior não é mais recomendada pela Cloudflare. Os consumidores novos devem usar a API ai-search/instances com mensagens no formato compatível com a API da OpenAI.
Retorna os trechos mais relevantes, sem geração de texto. É o endpoint preferencial para agentes que fazem a própria síntese.
POST /client/v4/accounts/da0c29123f448f3c3892f784cd9f7cac/ai-search/instances/hub-csv/search
Host: api.cloudflare.com
Authorization: Bearer SEU_AI_SEARCH_TOKEN
Content-Type: application/jsonBody:
{
"messages": [
{
"role": "user",
"content": "Qual o mandato da AxiaCare®?"
}
]
}Resposta: JSON com os trechos recuperados, scores e metadados dos itens de origem.
Recupera o contexto e gera uma resposta em uma única chamada.
POST /client/v4/accounts/da0c29123f448f3c3892f784cd9f7cac/ai-search/instances/hub-csv/chat/completions
Host: api.cloudflare.com
Authorization: Bearer SEU_AI_SEARCH_TOKEN
Content-Type: application/jsonBody:
{
"messages": [
{
"role": "system",
"content": "Responda em Português do Brasil e cite as fontes recuperadas."
},
{
"role": "user",
"content": "O que é o Signal™?"
}
]
}| Parâmetro | Tipo | Descrição |
|---|---|---|
messages | array | Mensagens de sistema e usuário em formato compatível com a API da OpenAI |
stream | boolean | Streaming da resposta por SSE no endpoint de chat |
ai_search_options | object | Opções específicas de recuperação quando suportadas pelo endpoint |
Ao usar chat/completions, inclua este texto como mensagem de sistema para contextualizar as respostas:
Você é o assistente do Hub CSV, a base de conhecimento pessoal
de Guilherme Thomé, médico executivo e fundador do Grupo CSV.
O Hub contém: mandatos institucionais (AxiaCare, Thera, MedValor, ICDS),
boletins estratégicos (Signal, Compass), dashboards operacionais
(Unimed GV, Unihealth), calculadoras clínicas, identidade visual
e documentação técnica. Responda sempre em português do Brasil,
com precisão e citando as fontes quando disponíveis.O fluxo de atualização é totalmente automatizado:
Push em main → deploy.yml → GitHub Pages → sync-r2-ai-search.yml → R2 → POST /jobs → polling do job → GET /statsO workflow sync-r2-ai-search.yml roda automaticamente após cada deploy bem-sucedido. Também pode ser disparado manualmente via workflow_dispatch. Depois do rclone sync, o workflow cria um job real com POST /ai-search/instances/hub-csv/jobs, consulta GET /jobs/{JOB_ID} até ended_at e, como a finalização dos arquivos pode continuar após o encerramento formal do job, consulta GET /stats até queued=0 e running=0. O gate falha diante de end_reason, timeout, erro HTTP, error>0 ou outdated>0.
Arquivos sincronizados: .md, .html, .json, .csv, .txt, .pdf (até 4 MB cada).
Excluídos: .git/, node_modules/, cache do VitePress, package-lock.json.
O AI Search foi projetado para ser consumido por múltiplos canais:
| Canal | Como conectar |
|---|---|
| LLMs (Manus, Claude, ChatGPT) | Chamar a API REST diretamente como tool/function |
| Make (automações) | Módulo HTTP com POST para o endpoint |
| Agentes | Function calling apontando para /ai-search |
| SaaS diversos | Webhook ou integração HTTP |
| Extensio (segundo cérebro) | Ponto neural dedicado — lê Hub via API |
| MCP (Model Context Protocol) | Endpoint /mcp quando disponível |
O Extensio é o segundo cérebro digital que concentra diversos pontos neurais. O AI Search do Hub CSV é um desses pontos. O Extensio já lê e-mails, WhatsApp, Notion e GitHub. Com o AI Search, ele passa a ter acesso semântico a todo o conteúdo do Hub: mandatos, boletins, dashboards, identidade visual e documentação técnica.
import requests
ACCOUNT_ID = "da0c29123f448f3c3892f784cd9f7cac"
TOKEN = "SEU_AI_SEARCH_TOKEN"
def search_hub(query: str) -> dict:
url = (
"https://api.cloudflare.com/client/v4/accounts/"
f"{ACCOUNT_ID}/ai-search/instances/hub-csv/search"
)
headers = {
"Authorization": f"Bearer {TOKEN}",
"Content-Type": "application/json",
}
body = {"messages": [{"role": "user", "content": query}]}
response = requests.post(url, json=body, headers=headers, timeout=30)
response.raise_for_status()
return response.json()
resultado = search_hub("Quais são os portais do Hub CSV?")
print(resultado)curl --request POST \
"https://api.cloudflare.com/client/v4/accounts/da0c29123f448f3c3892f784cd9f7cac/ai-search/instances/hub-csv/search" \
--header "Authorization: Bearer SEU_AI_SEARCH_TOKEN" \
--header "Content-Type: application/json" \
--data '{"messages":[{"role":"user","content":"O que é o Signal™?"}]}'Para conectar no Make, use o módulo HTTP > Make a request:
https://api.cloudflare.com/client/v4/accounts/da0c29123f448f3c3892f784cd9f7cac/ai-search/instances/hub-csv/searchAuthorization: Bearer SEU_TOKEN e Content-Type: application/json{"messages":[{"role":"user","content":"SUA_PERGUNTA"}]}| Recurso | Valor |
|---|---|
| Account ID | da0c29123f448f3c3892f784cd9f7cac |
| Instância | hub-csv |
| Bucket R2 | hub-csv-knowledge |
| AI Gateway | default |
| Token API | Armazenado no Arsenal Técnico e em GitHub Secrets |
| Endpoint base | https://api.cloudflare.com/client/v4/accounts/.../ai-search/instances/hub-csv/ |
| Query | Qualidade | Observação |
|---|---|---|
| Marcos temporais T0, Tp, T1, Td, T2, T3 e T4 no processo de alta | Excelente | Recuperou a edição 008 e o PDF v2 após o job de 1º de setembro de 2026 |
| Fototerapia neonatal, idade gestacional e via de parto | Excelente | Recuperou a edição histórica 003 e seus artefatos atuais |
| Metas quantitativas, ACO e orçamento global | Excelente | Recuperou a edição histórica 001 e seus artefatos atuais |
| Neurodesenvolvimento | Ruim | Termo ambíguo, sem contexto suficiente |
O design do sistema cria um ciclo de retroalimentação positiva:
O Hub deixa de ser apenas um repositório de páginas e se torna o núcleo de conhecimento operacional do Grupo CSV.