Configuração da geração aumentada de recuperação (RAG)

watsonx Code Assistant Plano padrão

RAG é o processo de otimização da saída do modelo de linguagem grande (LLM) por meio do aumento do prompt com o contexto adicional. Se você enviar uma consulta, o site watsonx Code Assistant usará as ferramentas RAG para recuperar as informações de suas bases de código ou documentação. Esse contexto relevante é anexado à consulta antes de ser enviado ao modelo LLM. O sistema RAG determina as fontes que precisam ser incluídas ou excluídas para gerar uma resposta com as informações mais úteis.

O RAG exige o plano watsonx Code Assistant Standard e a extensão Visual Studio Code. Ele não está disponível para uso com o plug-in Eclipse.

IBM watsonx Code Assistant oferece suporte ao RAG que aprimora a qualidade da resposta das consultas do usuário em um contexto relevante e atualizado de bases de código e documentação. O RAG reduz as alucinações do modelo e melhora a precisão das respostas geradas.

Você pode configurar o watsonx Code Assistant com repositórios de código específicos e documentação de projeto que não estejam armazenados no repositório Git usando o RAG para extrair informações relevantes para a mensagem de bate-papo. Você pode configurar a documentação, como documentos de API, arquivos Leiame, documentos técnicos e de design, Markdown, PDFs, Word e PowerPoint.

A figura a seguir ilustra o procedimento para configurar o RAG para watsonx Code Assistant:

Procedimento para configurar o RAG em watsonx Code Assistant
Procedimento para configurar o RAG em watsonx Code Assistant

Ativação do RAG

Para ativar o RAG:

  1. Provisione um armazenamento de vetores em IBM Cloud.

    1. Provisione uma instância de armazenamento de vetores Milvus ou Elasticsearch no IBM Cloud. Se o armazenamento de vetores já estiver disponível em seu site IBM Cloud, você poderá pular esta etapa.

    2. Opcional: Provisione uma instância do IBM watsonx.ai Studio para indexar o repositório de código.

  2. Indexe ou atualize seus repositórios de código em Milvus ou Elasticsearch. Para obter mais informações, consulte Indexação de repositórios de código com o IBM watsonx.ai Studio.

    Configure os ativos de conexão:

    1. Use o espaço de implementação existente em sua instância de serviço watsonx Code Assistant.

    2. Crie um ativo de conexão para cada índice criado no armazenamento de vetores. Para obter mais informações, consulte Criação de um ativo de conexão.

  3. Configure o token de acesso pessoal Git em Visual Studio Code e use os prompts habilitados para RAG.

    1. Clique no ícone do seu perfil em GitHub e acesse Settings > Developer Settings > Personal Access Tokens > Tokens (Classic).
    2. Copie seu token de acesso pessoal.
    3. Em Visual Studio Code, clique em View (Exibir ) e, em seguida, clique em Command Palette (Paleta de comandos ).
    4. Procure por WCA e clique em Enter GitHub Personal Access Token for WCA.
    5. Digite seu token de acesso pessoal GitHub e pressione Enter ou Return.
    6. Em mensagens de bate-papo, digite @repo < instruction > ou @docs < instruction > para gerar uma resposta que use o contexto do repositório referenciado ou dos documentos no armazenamento de vetores. Substitua o parâmetro < instruction > por uma mensagem de prompt.
    • Exemplo de sintaxe para usar o repositório referenciado:

      @repo how is a chat message processed?
      

      watsonx Code Assistant usa os repositórios indexados com base nas seguintes condições:

      • Se um repositório for aberto em Visual Studio Code, watsonx Code Assistant procurará o contexto no repositório aberto como padrão.

      • Se vários repositórios forem abertos em Visual Studio Code, watsonx Code Assistant procurará o contexto do repositório que está associado ao arquivo acessado recentemente.

      • Watsonx Code Assistant verifica o arquivo repo.yaml no repositório indexado quando você digita a sintaxe @repo < instruction > no chat. Se um ou mais arquivos de configuração YAML estiverem configurados, o watsonx Code Assistant usará todos os repositórios configurados para gerar uma resposta. Se a configuração YAML não estiver configurada, o site watsonx Code Assistant usará o repositório selecionado.

    • Exemplo de sintaxe para usar a coleção de documentos referenciados:

      @docs What are the steps to setup a connection to the user data store?
      

      Watsonx Code Assistant usa as coleções de documentos indexados com base nas seguintes condições:

      • Se o documento for aberto em Visual Studio Code, watsonx Code Assistant procurará o contexto no repositório aberto como padrão.

      • Se várias coleções de documentos forem abertas em Visual Studio Code, watsonx Code Assistant procurará o contexto do documento acessado recentemente.

      • Watsonx Code Assistant verifica o arquivo docs.yaml no repositório indexado quando você digita a sintaxe @docs < instruction > no chat. Se um ou mais arquivos de configuração YAML estiverem configurados, o site watsonx Code Assistant usará todas as coleções de documentos configuradas para gerar uma resposta. Se a configuração YAML não estiver configurada, o site watsonx Code Assistant usará todos os documentos com o nome docs_<filename> em seu espaço de implantação.

    Opcional: se você precisar definir a configuração YAML para repositórios indexados ou coleções de documentos, consulte Definição da configuração YAML para o RAG.

Definição da configuração YAML para o RAG

Você pode definir a configuração YAML opcionalmente para permitir que o watsonx Code Assistant pesquise vários repositórios ao mesmo tempo ou use o repositório de código indexado específico ou o documento no armazenamento de vetores. Se você não definir a configuração YAML, o site watsonx Code Assistant usará o repositório aberto em Visual Studio Code como padrão.

watsonx Code Assistant usa o método de autorização de chave de API para garantir que você possa acessar apenas os repositórios ou coleções de documentos autorizados.

Para definir a configuração YAML para um repositório indexado específico, conclua as etapas a seguir:

  1. Crie uma pasta .wca/repo no nível da raiz do repositório.

  2. Crie um arquivo YAML com os seguintes campos:

    repo:
       - url: git@github.ibm.com:code-assistant/<my-code>.git
    

    Se você precisar configurar o watsonx Code Assistant com vários repositórios, crie um arquivo repo.yaml para cada repositório que precisa ser usado para gerar uma resposta.

Para definir a configuração YAML para coleções de documentos específicas, conclua as etapas a seguir:

  1. Crie uma pasta .wca/docs no nível da raiz do repositório.

  2. Crie um arquivo YAML com os seguintes campos:

    docs:
       - url: my_collection
    

Cenários de casos de uso

Os cenários de casos de uso explicam como o RAG funciona e como os dados são recuperados de repositórios ou documentos indexados.

Uso de um único repositório de código

Se estiver trabalhando em um único repositório e quiser usar o código desse repositório como contexto para conversas de bate-papo, conclua as etapas a seguir:

  1. Certifique-se de que você tenha acesso ao repositório em GitHub.

  2. Indexar o repositório no armazenamento de vetores. Para obter mais informações, consulte Repositório de código de indexação com IBM watsonx.ai Studio

  3. Crie um ativo de conexão para o repositório. Para obter mais informações, consulte Criação de um ativo de conexão.

  4. Gere um token de acesso pessoal Git a partir de sua conta GitHub e conclua a configuração em Visual Studio Code.

  5. Abra o repositório em Visual Studio Code.

  6. Use o comando @repo no chat para gerar uma resposta que use o contexto do repositório.

Uso de vários repositórios de código

Se você estiver trabalhando em um repositório que tenha dependências em outro repositório, poderá usar o código de ambos os repositórios como contexto para conversas de bate-papo. Para usar os dois repositórios, conclua as etapas a seguir:

  1. Certifique-se de que você tenha acesso aos dois repositórios em GitHub.

  2. Indexar cada repositório no armazenamento de vetores separadamente. Para obter mais informações, consulte Repositório de código de indexação com IBM watsonx.ai Studio.

  3. Crie dois ativos de conexão para cada armazenamento de vetores. Para obter mais informações, consulte Criação de um ativo de conexão.

  4. Gere um token de acesso pessoal Git a partir de sua conta GitHub e conclua a configuração em Visual Studio Code.

  5. No primeiro repositório, defina a configuração YAML para listar os dois repositórios.

  6. Use o comando @repo no chat para gerar uma resposta que use o contexto de ambos os repositórios.

Se você usar o mesmo índice para ambos os repositórios, a verificação de acesso GitHub não será usada para o segundo repositório. Se você não tiver acesso a um dos repositórios, o site watsonx Code Assistant gerará o contexto somente a partir do repositório autorizado.

Permitir que todos os usuários de uma equipe acessem os repositórios de documentação do projeto

Você pode permitir que todos os usuários de uma equipe acessem os repositórios de documentação do projeto e usem os documentos como contexto para conversas de bate-papo.

Para permitir o acesso de todos os usuários:

  1. Indexar os repositórios de documentação do projeto no armazenamento de vetores. Para obter mais informações, consulte Repositório de código de indexação com IBM watsonx.ai Studio.

    É possível usar o mesmo índice para todos os repositórios de documentação se todos os usuários tiverem acesso aos repositórios de documentação do projeto indexados. Se os usuários tiverem uma restrição de acesso ao repositório indexado, consulte Habilitação de usuários em uma subequipe diferente para acessar os repositórios de documentação do projeto.

  2. Crie um ativo de conexão para o índice de documentação no espaço de implementação que inclua todos os usuários da equipe. Para obter mais informações, consulte Criação de um ativo de conexão.

  3. Use o comando @docs no chat para gerar uma resposta que use o contexto do índice da documentação.

Os tokens de acesso pessoal GitHub não são usados para verificar o acesso ao conteúdo da documentação. Você pode combinar vários repositórios de documentação no mesmo índice no armazenamento de vetores. O conteúdo da documentação é menos restritivo do que os repositórios de código e um único índice para todos os repositórios de documentação simplifica o processo de gerenciamento de índices. A autorização para acessar os repositórios de documentação só é permitida aos usuários integrados no espaço de implementação.

Permitir que os usuários de uma subequipe diferente acessem os repositórios de documentação do projeto

Nesse caso de uso, diferentes subequipes de uma grande equipe mantêm os repositórios de documentação do projeto. O acesso aos repositórios de documentação é restrito às diferentes subequipes. Outras subequipes não têm acesso a esses repositórios de documentação.

Para permitir que cada subequipe acesse os repositórios de documentação do projeto relacionados:

  1. Indexar os repositórios de documentação separadamente no armazenamento de vetores. Para obter mais informações, consulte Repositório de código de indexação com IBM watsonx.ai Studio.

  2. Certifique-se de que o espaço de implementação seja criado para cada subequipe que inclua seus usuários.

  3. Para cada índice do repositório de documentação, crie um ativo de conexão no espaço de implantação relacionado. Para obter mais informações, consulte Criação de um ativo de conexão.

  4. Use o comando @docs no chat para gerar uma resposta que use o contexto do índice da documentação.

Watsonx Code Assistant usa o índice do repositório de documentação com base no espaço de implementação atribuído aos usuários. A configuração no lado do cliente não é necessária.

Permitir que usuários baseados em funções acessem repositórios de documentação do projeto

Nesse caso de uso, os usuários de uma equipe precisam de acesso a diferentes conjuntos de documentação com base em suas funções. O escopo da documentação que é usada como contexto varia entre os usuários sem restrições de acesso. Por exemplo, os desenvolvedores precisam apenas de documentação técnica e de API, enquanto os analistas de negócios se concentram em documentos de processos de negócios.

Para personalizar os repositórios de documentação que são usados como contexto:

  1. Indexar cada repositório de documentação no armazenamento de vetores separadamente. Para obter mais informações, consulte Repositório de código de indexação com IBM watsonx.ai Studio.

  2. Crie um ativo de conexão para cada índice no espaço de implementação da equipe. Para obter mais informações, consulte Criação de um ativo de conexão.

  3. Defina a configuração YAML para o índice de documentação necessário que é usado como contexto. Se você precisar usar vários índices de documentação, defina a configuração YAML para cada índice de documentação.

  4. Use o comando @docs no chat para gerar uma resposta que use o contexto do índice da documentação.