
Vamos falar sobre a Geração Aumentada por Recuperação, ou RAG (Retrieval-Augmented Generation). É um daqueles conceitos de IA que é, de facto, tão interessante quanto parece. O RAG é o que permite que os assistentes de IA vão além do seu conhecimento pré-definido e acedam aos dados privados da sua empresa para extrair respostas que são realmente úteis e específicas para si. O ingrediente secreto por trás de qualquer configuração RAG sólida é algo chamado armazenamento de vetores (vector store), que pode ser visto como uma memória de longo prazo para a sua IA.
Se é um programador a trabalhar com as ferramentas da OpenAI, provavelmente já se deparou com a API de Armazenamento de Vetores (Vector Stores API). Ela dá-lhe as peças para construir essa memória de IA por si mesmo. Este guia é totalmente sobre a referência da API de Armazenamento de Vetores da OpenAI, mas de um ponto de vista prático. Vamos analisar as partes essenciais, como começar e alguns dos problemas do mundo real com que se pode deparar.
Compreender os armazenamentos de vetores na referência da API de Armazenamento de Vetores da OpenAI
Simplificando, um armazenamento de vetores é um tipo de base de dados construída para entender o significado por trás das palavras, não apenas as palavras em si. Quando lhe fornece um documento, como um PDF de política da empresa ou um artigo do centro de ajuda, ele não armazena apenas o texto bruto. Utiliza o que é chamado de modelo de incorporação (embedding model) para traduzir esse texto numa sequência de números conhecida como vetor.
Estes vetores são bastante inteligentes; capturam a essência contextual do conteúdo. Assim, o vetor para "política de devolução" estará numericamente próximo do vetor para "como obtenho um reembolso?", mesmo que usem palavras diferentes. É isto que permite que uma IA encontre a informação certa para responder a uma pergunta, não importa quão estranhamente alguém a formule.
O Armazenamento de Vetores da OpenAI é um serviço gerido que trata das partes mais complicadas por si. Foi concebido para funcionar bem com as suas APIs de Assistentes e Respostas, tratando do trabalho de bastidores de:
-
Divisão em blocos (Chunking): Dividir documentos grandes em pedaços mais pequenos e fáceis de gerir.
-
Incorporação (Embedding): Transformar esses pedaços em vetores.
-
Indexação: Organizar todos esses vetores para que possam ser pesquisados rapidamente.
O seu principal objetivo é potenciar a ferramenta "file_search", que lhe permite construir assistentes de IA que podem extrair respostas diretamente dos documentos que fornece. Isto transforma uma IA genérica num especialista no seu negócio específico.
Como usar a referência da API de Armazenamento de Vetores da OpenAI
Começar a usar a API de Armazenamento de Vetores da OpenAI resume-se a alguns objetos e endpoints chave. Vamos percorrer o fluxo típico para preparar os seus dados para serem usados por um assistente de IA.
Criar um armazenamento de vetores
Primeiro que tudo, precisa de um lugar para colocar os seus ficheiros. No mundo da OpenAI, isto é chamado de "Vector Store" (Armazenamento de Vetores). Pode criar um com uma chamada direta ao endpoint "POST /v1/vector_stores".
Pode criar um sem parâmetros, mas é uma boa ideia dar-lhe um "name" (nome) apenas para evitar confusões. O parâmetro "expires_after" também é incrivelmente útil, especialmente para testes. Permite-lhe definir um temporizador de autodestruição no armazenamento, para que não acabe a pagar por armazenamento de que se esqueceu. O primeiro 1GB é gratuito, mas depois disso, é faturado diariamente pelo que usa (atualmente cerca de $0.10 por GB por dia).
Também pode especificar uma "chunking_strategy" (estratégia de divisão). A OpenAI trata da divisão dos seus documentos, mas este parâmetro dá-lhe algum controlo sobre como isso é feito. Pode optar por "auto" e deixar a OpenAI fazer o seu trabalho, ou escolher "static" para definir você mesmo o tamanho máximo do bloco e a sobreposição.
Adicionar ficheiros ao seu armazenamento de vetores
Com um armazenamento de vetores vazio e pronto a usar, é hora de o encher. Isto envolve dois passos: primeiro, carrega um ficheiro para o armazenamento geral de ficheiros da OpenAI e, em seguida, associa esse ficheiro ao seu armazenamento de vetores específico.
Passo 1: Carregar um Ficheiro
Começará por chamar o endpoint "POST /v1/files". O parâmetro chave aqui é "purpose" (finalidade), que precisa de ser definido como "'assistants'". Isto sinaliza à OpenAI que o ficheiro se destina a ser usado pelas ferramentas de um assistente, como a "file_search". Esta chamada devolve-lhe um "file_id", que precisará para a próxima parte.
Passo 2: Anexar o Ficheiro ao Armazenamento de Vetores
Assim que tiver o seu "file_id", pode conectá-lo ao seu armazenamento usando o endpoint "POST /v1/vector_stores/{vector_store_id}/files". Esta é a ação que inicia oficialmente o processo de divisão, incorporação e indexação.
Esta também é a sua oportunidade para adicionar "attributes" (atributos), ou metadados, aos seus ficheiros. Esta é uma funcionalidade muito útil para adicionar etiquetas chave-valor aos seus documentos, como "{"author": "Jane Doe", "category": "refunds"}". Pode depois usar estas etiquetas para filtrar as suas pesquisas, dizendo à IA para procurar apenas dentro de certos documentos.
<protip text="Se precisar de adicionar um monte de ficheiros, fazê-lo um a um pode ser uma chatice. O endpoint "POST /v1/vector_stores/{vector_store_id}/file_batches" permite adicionar vários ficheiros de uma só vez, o que é muito mais eficiente.">
Consultar os seus dados
Depois de os seus ficheiros serem processados e indexados, o seu assistente está pronto para os usar. Quando adiciona a ferramenta "file_search" a um assistente, o resto acontece de forma praticamente automática. O modelo analisa a pergunta do utilizador e, se decidir que precisa de informação dos seus ficheiros, consulta o armazenamento de vetores em segundo plano.
Se quiser uma abordagem mais prática ou precisar de ver como o seu armazenamento de vetores está a funcionar, também pode consultá-lo diretamente com o endpoint "POST /v1/vector_stores/{vector_store_id}/search". Isto pode ser ótimo para depuração ou para construir os seus próprios fluxos RAG fora da estrutura padrão dos Assistentes.
Aqui estão os principais parâmetros que usará para pesquisar:
Parâmetro | Descrição | Exemplo de Caso de Uso |
---|---|---|
"query" | A pergunta em linguagem natural para a qual deseja encontrar uma resposta. | "Qual é a nossa política de reembolso?" |
"filters" | Condições para restringir a pesquisa com base nos "attributes" do ficheiro. | Procurar apenas em documentos onde o "author" é 'Jane Doe'. |
"max_num_results" | O número máximo de blocos (chunks) relevantes a serem retornados. | Manter apenas os 3 principais resultados para evitar uma resposta excessivamente longa. |
Desafios de usar a API de Armazenamento de Vetores da OpenAI
Embora a referência da API de Armazenamento de Vetores da OpenAI lhe dê um conjunto sólido de ferramentas, construir um sistema RAG pronto para produção do zero é um projeto sério. O que começa com algumas chamadas de API simples pode rapidamente transformar-se num sistema complexo que exige um grande esforço de engenharia para construir e manter, especialmente se for para algo importante como o suporte ao cliente.
Aqui estão alguns dos obstáculos que provavelmente encontrará:
-
Gerir o fluxo de trabalho é uma dor de cabeça. Uma única conversa com um utilizador não é apenas uma chamada de API. Tem de gerir assistentes, threads, mensagens e execuções (runs). Também tem de verificar constantemente o estado para saber quando uma execução terminou ou precisa da sua atenção. Isto leva à escrita de muito código extra apenas para gerir esta comunicação.
-
Não existe um painel de controlo. Com a API pura, não tem um painel de controlo amigável para gerir os seus armazenamentos de vetores. Quer verificar que ficheiros estão indexados? Precisa de atualizar um documento de política? Tem de fazer tudo através de código. Isto torna a gestão diária lenta e completamente dependente dos programadores.
-
Os testes e a validação são difíceis. Como sabe que o seu assistente dará a resposta certa antes de o lançar para os clientes? A API não oferece uma forma de simular como responderia a conversas passadas. Isto torna difícil avaliar a qualidade da sua configuração RAG, prever quantos problemas pode realmente resolver e ganhar a confiança para o implementar.
-
Manter o conhecimento atualizado é uma tarefa árdua. A informação da sua empresa está sempre a mudar. As políticas são atualizadas no Confluence, os artigos de ajuda são ajustados no Zendesk e novas respostas surgem em tickets de suporte antigos. Carregar e rastrear manualmente as versões dos ficheiros através da API é entediante e propenso a erros, o que significa que a sua IA pode rapidamente ficar desfasada da realidade.
eesel AI: Uma alternativa à referência da API de Armazenamento de Vetores da OpenAI
Construir com a API pura é um pouco como receber uma caixa com peças de motor e ouvir: 'agora constrói um carro'. É definitivamente possível se tiver uma equipa de mecânicos, mas a maioria de nós só quer entrar e conduzir. É aqui que uma plataforma como a eesel AI pode ajudar.
A eesel AI oferece-lhe um motor de fluxo de trabalho completo, construído sobre modelos de IA poderosos e sistemas de recuperação como os da OpenAI. Trata de todo o pipeline RAG por si, desde a sincronização das suas fontes de conhecimento até à gestão da conversa, para que possa lançar um agente de IA pronto para produção em minutos, em vez de meses.
Este infográfico ilustra como uma plataforma como a eesel AI simplifica o pipeline RAG ao sincronizar e integrar automaticamente o conhecimento de várias fontes.
Eis uma comparação rápida das duas abordagens:
Funcionalidade | DIY com a API de Armazenamento de Vetores da OpenAI | Plataforma eesel AI |
---|---|---|
Tempo de Configuração | Dias ou semanas de programação | Minutos |
Sincronização de Conhecimento | Uploads manuais de ficheiros via API | Integrações com 1 clique para Confluence, Google Docs, Zendesk e mais de 100 outras. |
Gestão | Chamadas de API e scripts personalizados | Um painel de controlo limpo para gerir conhecimento, prompts e ações. |
Testes | Limitado a chamadas de API manuais | Simule o desempenho em milhares de tickets passados antes do lançamento. |
Controlo | Controlo detalhado, mas requer código | Um construtor visual de fluxos de trabalho para definir exatamente como a automação funciona. |
Preços | Vários custos: Armazenamento + Chamadas de API + Tokens do modelo | Preços simples e previsíveis baseados em interações. |
Com a eesel AI, pode evitar as dores de cabeça de engenharia. Em vez de escrever scripts para carregar ficheiros, conecta fontes como o Zendesk ou o Slack com um único clique. Em vez de se perguntar como o seu agente se sairá, pode executar uma simulação nos seus tickets históricos para obter uma previsão real da sua taxa de resolução. E em vez de lutar com chamadas de API, pode construir fluxos de trabalho poderosos numa interface simples, tudo sem escrever uma única linha de código.
Considerações finais sobre a API de Armazenamento de Vetores da OpenAI
A referência da API de Armazenamento de Vetores da OpenAI oferece os blocos de construção essenciais para criar assistentes de IA que conhecem os seus dados por dentro e por fora. É uma ótima ferramenta para programadores que querem pôr as mãos na massa e construir um sistema RAG do zero.
Mas a jornada de algumas chamadas de API até um agente de IA fiável e pronto para produção é longa, cheia de obstáculos técnicos. Para equipas que querem avançar rapidamente e focar-se nos resultados em vez da infraestrutura, uma abordagem de plataforma muitas vezes faz mais sentido. A eesel AI dá-lhe o melhor dos dois mundos: o poder de modelos de IA de topo com uma plataforma simples e self-service que lhe permite construir, testar e implementar com confiança.
Pronto para lançar um agente de IA treinado no conhecimento da sua empresa em minutos, não em meses? Experimente a eesel AI gratuitamente e veja como pode ser fácil automatizar o seu suporte.
Perguntas frequentes
A referência da API de Armazenamento de Vetores da OpenAI fornece as ferramentas para construir e gerir a memória de longo prazo para assistentes de IA. Permite que a IA aceda e recupere informações específicas e contextualmente relevantes das suas fontes de dados privadas, indo além do seu conhecimento pré-treinado.
Para criar um armazenamento de vetores, inicia uma chamada "POST /v1/vector_stores". É recomendado fornecer um "name" (nome) para organização e considerar o uso de "expires_after" para armazenamentos temporários, especialmente durante os testes, para gerir os custos de forma eficaz.
A adição de ficheiros envolve dois passos principais: primeiro, carregar o seu ficheiro para o armazenamento geral de ficheiros da OpenAI com o "purpose" (finalidade) definido como "'assistants'", o que retorna um "file_id". Segundo, anexa este "file_id" ao seu armazenamento de vetores específico usando o endpoint "POST /v1/vector_stores/{vector_store_id}/files".
Os programadores encontram frequentemente dificuldades em gerir fluxos de trabalho complexos, na falta de um painel de controlo centralizado para gestão e na realização de testes e validações exaustivos. Manter as bases de conhecimento atualizadas e sincronizadas com informações em constante mudança também representa um desafio significativo.
Pode consultar os seus dados diretamente usando o endpoint "POST /v1/vector_stores/{vector_store_id}/search". Isto permite-lhe fornecer uma "query" (a sua pergunta), aplicar "filters" (filtros) com base nos atributos do ficheiro e especificar "max_num_results" para o número desejado de blocos relevantes.
Sim, para maior eficiência, a referência da API de Armazenamento de Vetores da OpenAI inclui o endpoint "POST /v1/vector_stores/{vector_store_id}/file_batches". Isto permite-lhe adicionar vários ficheiros ao seu armazenamento de vetores numa única chamada de API, otimizando o processo de ingestão.