Crie uma pesquisa de conteúdo de IA com o agente do Documentos

A pesquisa de informações é um dos usos mais comuns de de inteligência artificial (IA). Como criar uma interface de pesquisa conversacional para seu conteúdo usando IA permite que os usuários façam perguntas específicas e recebam respostas diretas.

Neste tutorial, mostramos como criar uma pesquisa conversacional com tecnologia de IA para seu conteúdo. Ela é baseada Agente do Documentos Google, um projeto de código aberto que usa a API Gemini do Google para criar um interface de pesquisa do Google, sem treinar um novo modelo de IA nem ajustar o modelo com modelos do Gemini. Isso significa que você pode criar esse recurso de pesquisa rapidamente usá-lo para conjuntos de conteúdo pequenos e grandes.

Para um vídeo de visão geral do projeto e como estendê-lo, incluindo insights das pessoas que o constroem, confira: Pesquisa de conteúdo de IA | Crie com a IA do Google. Caso contrário, comece a ampliar o projeto seguindo as instruções. a seguir.

Visão geral

O projeto do Agente do Documentos oferece uma interface de pesquisa conversacional para um conjunto de conteúdos, respaldado pela API Gemini do Google e por modelos generativos. Os usuários podem fazer uma pergunta detalhada em um estilo conversacional e obter uma resposta detalhada com base em um conjunto de conteúdo específico. Em segundo plano, o Agente do Documentos leva pergunta e procura em um banco de dados de vetores do conteúdo, e cria uma comando detalhado para o modelo generativo, incluindo trechos de textos relevantes. O modelo generativo gera uma resposta para a pergunta, e o agente do app Documentos formata a resposta e a apresenta ao usuário.

Diagrama funcional do agente do app Documentos Figura 1. Diagrama funcional do app de projeto do agente do Documentos.

O segredo para tornar o Agente do Documentos capaz de responder a perguntas sobre seu conteúdo é o criação de um banco de dados de vetores desse conteúdo. Você separa seu conteúdo em pedaços lógicos de texto e gerar um vetor para cada um deles. Esses vetores são representações numéricas das informações em cada bloco e são geradas com uma função de incorporação de texto de IA dos modelos generativos do Google.

Quando um usuário faz uma pergunta, o agente do Documentos usa a mesma incorporação de texto para criar uma representação numérica dessa pergunta e usa essa função para pesquisar o banco de dados de vetores e encontrar conteúdo relacionado. Ela ocupa o topo resultados e adiciona essas informações a um comando para o modelo generativo. A IA usa a pergunta e as informações de contexto adicionais e gera uma responder.

Configurar o projeto

Estas instruções ajudam você a configurar o projeto do agente do Documentos para desenvolvimento e teste. As etapas gerais são a instalação de alguns pré-requisitos de software, definindo algumas variáveis de ambiente, clonando o projeto do código e execute a instalação da configuração. O projeto de código usa Python Poetry, para gerenciar pacotes e o ambiente de execução do Python.

Instalar os pré-requisitos

O projeto do Agente do Documentos usa Python 3 e Python Poetry para gerenciar pacotes e executar o aplicativo. As instruções de instalação a seguir servem para Linux máquina host.

Para instalar o software necessário:

  1. Instale o Python 3 e o pacote do ambiente virtual venv para Python.
    sudo apt update
    sudo apt install git pip python3-venv
    
  2. Instale o Python Poetry para gerenciar dependências e empacotamento para a projeto.
    curl -sSL https://install.python-poetry.org | python3 -
    

É possível usar a Poetry do Python para adicionar mais bibliotecas de Python se estender o projeto.

Defina as variáveis de ambiente

Defina algumas variáveis de ambiente necessárias para permitir o código do agente do Documentos Google projeto a ser executado, incluindo uma chave da API Google Gemini e Python Configuração "poesia". É possível adicionar essas variáveis ao seu arquivo $HOME/.bashrc se estiver usando o Linux, para defini-las como configurações padrão para o terminal. de conteúdo.

Para definir as variáveis de ambiente:

  1. Gere uma chave da API Google Gemini e copie a string da chave.
  2. Defina a chave de API como uma variável de ambiente. Em hosts do Linux, use o comando a seguir.
    export API_KEY=<YOUR_API_KEY_HERE>
    
  3. Resolver um problema conhecido problema para a poesia em Python, definindo o parâmetro PYTHON_KEYRING_BACKEND. Em hosts do Linux, use o comando a seguir.
    export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
    

Clonar e configurar o projeto

Baixe o código do projeto e use o comando de instalação do Poetry para fazer o download as dependências necessárias e configurar o projeto. Você precisa o software de controle de origem git para recuperar a o código-fonte do projeto. externo Para fazer o download e configurar o código do projeto:

  1. Clone o repositório git usando o comando a seguir.
    git clone https://github.com/google/generative-ai-docs
    
  2. Outra opção é configurar o repositório git local para usar a finalização esparsa. então você só tem os arquivos do projeto do agente do Documentos.
    cd generative-ai-docs/
    git sparse-checkout init --cone
    git sparse-checkout set examples/gemini/python/docs-agent/
    
  3. Mova-o para o diretório raiz do projeto docs-agent.
    cd examples/gemini/python/docs-agent/
    
  4. Execute o comando de instalação do Poetry para fazer o download das dependências e configurar projeto:
    poetry install
    

Preparar conteúdo

O projeto Agente do Documentos foi desenvolvido para funcionar com conteúdo de texto e inclui especificamente para trabalhar com sites que usam Markdown como formato de origem. Se você estiver trabalhando com conteúdo de sites, deverá preservar (ou replicar) os Estrutura de diretórios do site exibido para ativar a tarefa de processamento de conteúdo mapear e criar links para esse conteúdo.

Dependendo do formato e dos detalhes do conteúdo, talvez seja necessário limpar para remover informações não públicas, observações internas ou outras informações que você não deseja que sejam pesquisáveis. Você deve manter a formatação básica, como como títulos e cabeçalhos, que ajudam a criar divisões de texto lógicas, ou partes, na de processamento de conteúdo.

Como preparar conteúdo para processamento:

  1. Crie um diretório para o conteúdo que você quer que o agente de IA pesquise.
    mkdir docs-agent/content/
    
  2. Copie seu conteúdo para o diretório docs-agent/content/. Se o é um site, preserva (ou replica) a estrutura de diretórios do do site veiculado.
  3. limpar ou editar o conteúdo conforme necessário para remover informações não públicas; ou outras informações que você não quer que sejam incluídas nas pesquisas.

Usar documentos do Flutter para testes

Se você precisar de um conjunto de conteúdo para testar o agente do Documentos, use o Flutter documentos do desenvolvedor para testes.

Para acessar os documentos do desenvolvedor do Flutter:

  1. Mude para o diretório do conteúdo que você quer que o agente de IA acesse pesquisa.
    cd docs-agent/content/
    
  2. Clone os documentos do Flutter no diretório docs-agent/content/.
    git clone --recurse-submodules https://github.com/flutter/website.git
    

Processar conteúdo

Para que o agente de pesquisa pesquise efetivamente conteúdo relacionado a dos usuários você precisa criar um banco de dados de vetores que representem seu conteúdo. Os vetores são gerados usando uma função de modelo generativo de IA chamada embedding de texto. Os embeddings de texto são representações numéricas do texto conteúdo. Eles aproximam o significado semântico do texto como um conjunto de números grandes. Com as representações numéricas das informações, o sistema pergunta do usuário, aproxima seu significado usando a mesma incorporação de texto função e, em seguida, encontrar informações relacionadas como um cálculo matemático, usando um vizinho mais próximo (k-NN).

Dividir conteúdo de texto

A quantidade de texto que um vetor de embedding de texto pode representar efetivamente é limitada. Este projeto limita o texto representado em um vetor a 3.000 caracteres ou menos, e isso significa que você precisa dividir seu conteúdo em pedaços sob esse de caracteres. Esta seção descreve como usar um script fornecido com a Projeto do agente do Documentos para dividir arquivos Markdown em partes de texto menores. Para dicas sobre com outros formatos de conteúdo, consulte Use outros formatos.

.

Para dividir o conteúdo do formato Markdown:

  1. Configure os parâmetros de entrada para o script de processamento editando os docs-agent/config.yaml. Este exemplo segmenta um subconjunto dos documentos do Flutter:
    input:
    - path: "content/website/src/ui"
      url_prefix: "https://docs.flutter.dev/ui"
    
  2. Salve as alterações nesse arquivo de configuração.
  3. Navegue até o diretório do projeto docs-agent:
    cd docs-agent/
    
  4. Divida o conteúdo de origem do Markdown executando o comando agent chunk:
    agent chunk
    

O script processa o conteúdo de entrada e cria arquivos de texto de saída no docs-agent/data, dividindo o texto com base em títulos, cabeçalhos e parágrafos relacionados. O processamento pode levar algum tempo dependendo do tamanho conteúdo.

Criar vetores de embedding de texto

Depois de dividir seu conteúdo em partes significativas de tamanho adequado, você pode preencher o banco de dados de vetores com seu conteúdo usando um embedding de texto função. O projeto Agente do Documentos usa a API Chroma de vetores para armazenar vetores de embedding de texto. Estas instruções abordam como usar o script do Docs Agents para preencher um banco de dados de vetores com a divisão conteúdo.

Para gerar embeddings de texto e preencher o banco de dados de vetores:

  1. Navegue até o diretório do projeto docs-agent:
    cd docs-agent/
    
  2. Preencha o banco de dados de vetores com seu conteúdo usando o agent populate comando:
    agent populate
    

Esse script usa a API Google Gemini para gerar embedding de texto vetores e salva a saída no banco de dados de vetores. O processamento pode levar certo tempo, dependendo do tamanho do seu conteúdo.

Processar outros formatos

O projeto Agente do Documentos foi projetado para funcionar com o conteúdo do site no Markdown . Os autores do projeto criaram alguns scripts de conversão para gerar outros tipos de conteúdo em formato Markdown, incluindo Documentos Google, Formato de documento (PDF) e Gmail. Para mais informações sobre como usar usuários que fizeram uma conversão, docs-agent/apps_script do repositório de código.

Converter outros formatos de conteúdo

Você pode usar outros formatos de conteúdo com o projeto, mas outros métodos precisam ser criados por você ou por outros membros da comunidade. Verifique o repositório de código Problemas e Solicitações de envio para pessoas que criam soluções semelhantes.

O código-chave que você precisa criar para oferecer suporte a outros formatos de conteúdo é um divisor do script, como o files_to_plain_text.py script. Tente criar um script ou programa que gere um resultado semelhante a este script. Lembre-se de que o texto final deve ter formatação mínima e informações externas. Se você estiver usando formatos de conteúdo como HTML ou JSON, elimine o máximo de formatação não informativa (tags, scripting, CSS) possível, para que não distorça os valores do texto e embeddings gerados por eles.

Depois de criar um script divisor para o formato de conteúdo, você deve ser capaz de execute o populate_vector_database.py para preencher o banco de dados de vetores. Para mais informações sobre o processamento para usar com o Agente do Documentos, consulte a documentação Leiame do pré-processamento.

Testar o app

Quando você tiver concluído o preenchimento do seu banco de dados de vetores, o projeto estará pronto para testes. O projeto fornece uma função de empacotamento para permitir que você execute o o projeto localmente.

Para executar e testar a interface da Web do projeto:

  1. Navegue até o diretório do projeto docs-agent:
    cd docs-agent/
    
  2. Execute o script de inicialização do aplicativo da Web:
    agent chatbot
    
  3. Usando seu navegador da Web, navegue até o endereço da web do URL mostrado no saída do script de inicialização e testar o aplicativo.
    * Running on http://your-hostname-here:5000
    
.

Opções de implementação

A API Gemini oferece ferramentas de programação que podem substituir componentes do a implementação do Agente do Documentos, especificamente: recuperação semântica e atribuída Variante do modelo Gemini para respostas a perguntas (AQA). Você pode usar os atributos Recuperação semântica para substituir o banco de dados de vetores separado. O recurso de recuperação semântica permite gerar embeddings do conteúdo e armazenar esse conteúdo. O O modelo AQA do Gemini está ajustado para responder perguntas com material de fonte fornecido em um comando. Você usa semântica A recuperação junto com o modelo de AQA para responder às perguntas sobre seu conteúdo usando a API Gemini.

O Agente do Documentos inclui opções de configuração para usar o campo Semântico recurso da API Retrieval, esse modelo do AQA Gemini ou ambos. Para mais informações, consulte as Leiame do Agente do Documentos.

Outros recursos

Para mais informações sobre o projeto do agente do Documentos, consulte a repositório de códigos (link em inglês). Se você precisar de ajuda para criar o aplicativo ou estiver procurando desenvolvedores colaboradores, confira o Discord da comunidade do Google Developers servidor.

Aplicativos de produção

Se você planeja implantar o Agente do Documentos para um público grande, observe que o uso do a API Gemini do Google pode estar sujeita à limitação de taxa, restrições de uso. Se você está pensando em criar um aplicativo de produção com a API Gemini, como Agente do Documentos, confira Vertex AI do Google Cloud para aumentar a escalonabilidade e a confiabilidade do seu app.