Cookbook / Widget de voz para documentação
Converse com
a sua documentação

Captura de tela. O template rodando localmente.
- Modelos
- ink-2, sonic-3.6
- Idiomas
- Inglês, espanhol, francês, hindi, japonês
- Licença
- Apache-2.0
- Stack
- HonoNode.jsWeb ComponentsesbuildBM25 or OpenAI embeddings
- Produtos da Cartesia
- Managed AgentsInk 2Sonic 3.6
O que ele faz
O widget funciona em qualquer site e não precisa de outras bibliotecas. O servidor é um pequeno app Node que guarda o índice de busca em um arquivo local. Por padrão, a busca compara palavras-chave. Com uma chave da OpenAI, ela compara o significado, o que lida melhor com perguntas escritas de outro jeito que na documentação. Indexar de novo processa só as páginas que mudaram.
Rode você mesmo
Rode a demo
Rode os comandos abaixo com o Node 22.22 ou mais recente, abra
http://localhost:4512, clique em Ask the docs e depois em Start talking. O site de demonstração é uma cópia de duas páginas dedocs.cartesia.ai.Variáveis de ambiente - CARTESIA_API_KEY
play.cartesia.ai/keys- OPENAI_API_KEY
- Opcional. Muda a busca para embeddings com
text-embedding-3-small - CARTESIA_AGENT_ID
- Gravado por
npm run setup:agent - CARTESIA_TOOL_IDS
- Opcional. Gravado por
npm run setup:agentpara você saber quais ferramentas apagar. Nada o lê - ALLOWED_ORIGINS
- As origens da sua documentação, separadas por vírgula
- PUBLIC_URL, TRUST_PROXY
- Atrás de um proxy.
TRUST_PROXY=1 aplica o limite de requisições pelo endereço que o seu proxy acrescentou
Indexe sua documentação
Rode
npm run ingest--./my-docs--base-url/docs/ para uma pasta de arquivos .md ou .mdx, ounpm run ingest -- --sitemapcom a URL do seu sitemap para um site no ar.Adicione a tag script
Implante o servidor em qualquer host que rode Node 22.22 ou mais recente, adicione uma tag script apontando para o
widget.jsdele e definaALLOWED_ORIGINScom a origem da sua documentação.
Crie com seu agente de programação
Um prompt que diz ao seu agente de programação por onde começar e o que ler primeiro.
Prompt
Add a voice assistant to my documentation site with a Cartesia Managed Agent. Start from https:/ and follow its AGENTS.md for the commands, files and rules. npm run setup:agent creates the agent and two client tools, search_docs and show_source. The widget gets a 60 second access token with only the agent grant from the Hono server and opens the Managed Agents WebSocket. search_docs results come from POST /api/search and must stay under 4,096 bytes. Index my docs with npm run ingest, either from a folder or with --sitemap. If I don't have a Cartesia API key yet, follow https:/ to get one.
Como funciona
Por que funciona assim
A busca roda no navegador do visitante
A Cartesia só chama ferramentas que ficam em um endereço HTTPS público. Uma ferramenta de cliente roda no navegador do visitante, que repassa a pergunta ao seu servidor, então a demonstração funciona em localhost sem túnel.
Os resultados cabem em menos de 4.096 bytes
A Cartesia rejeita resultados de ferramentas de cliente com mais de 4.096 bytes. server/search.ts ordena as seções, dá um pequeno peso extra à página atual e junta as quatro primeiras em um resultado com menos de 3.800 bytes.
O limite de requisições é a proteção de verdade
O servidor recusa outros sites verificando o cabeçalho Origin, mas um script pode enviar qualquer cabeçalho. O que protege sua conta é o limite de 4 tokens por minuto e 30 por hora por endereço IP.
Deixe com a sua cara
Prompt e ferramentas
Edite scripts/agent-config.ts e depois rode npm run setup:agent -- --force. Ele cria um novo agente e duas novas ferramentas e sobrescreve CARTESIA_TOOL_IDS, então copie os ids antigos antes e apague o agente e as ferramentas antigos em play.cartesia.ai. Os nomes das ferramentas também ficam em widget/src/tools.ts, então mude os dois.
Idioma
Defina AGENT_LANGUAGE como es, fr, hi ou ja antes da configuração. O prompt já responde no idioma do visitante.
Banco de vetores
server/store.ts é o único arquivo que lê ou grava o índice. Troque por pgvector ou SQLite quando alguns milhares de seções não forem suficientes.
Junte-se às equipes que estão migrando para a Cartesia
Perguntas
Outros sites podem usar meu widget e minha chave de API?
Não. Só os sites que você listar em ALLOWED_ORIGINS, mais o endereço do próprio servidor, podem iniciar uma chamada. Suas chaves de API ficam no servidor, e o navegador recebe um token que dura 60 segundos e só funciona para chamadas com agentes.
A base de conhecimento integrada da Cartesia não faz isso?
Ela também responde a partir da sua documentação. Este template busca no seu próprio servidor, então cada resultado traz o link da página e a seção de que o widget precisa para rolar até ela.
Funciona no Docusaurus, no Mintlify ou no Nextra?
Sim, em qualquer lugar onde você possa adicionar uma tag script. Indexe o site pelo sitemap para que os links das seções batam com os títulos. O widget segue o modo escuro do site ou a configuração do sistema do visitante.
Por que a chamada termina quando clico em um link para outra página?
A chamada vive na página, e um site de várias páginas recarrega ao navegar. Durante uma chamada, fontes em outras páginas abrem em uma nova aba.
As chamadas dos visitantes são gravadas?
Sim. A Cartesia grava o áudio e a transcrição de cada chamada de agente. Avise seus visitantes e apague as chamadas de que não precisa pela API da Cartesia.
Existe um guia passo a passo deste template?
Sim. A receita explica o código, o README cobre a configuração, as variáveis de ambiente e a implantação, e a documentação de ferramentas de cliente explica o lado da Cartesia.
Mais do cookbook
Comece hoje
Fale com um especialista.
Converse com alguém da nossa equipe e descubra como a Cartesia pode ajudar você a criar experiências de voz de alto nível.
Comece a criar.
Acesse nossos modelos por API e coloque um agente de voz em produção em minutos.

