Configuración de la generación aumentada de recuperación (RAG)
watsonx Code Assistant Plan estándar
La RAG es el proceso de optimización de la salida del modelo de lenguaje amplio (LLM) mediante el aumento de la indicación con el contexto adicional. Si envía una consulta, watsonx Code Assistant utiliza las herramientas RAG para recuperar la información de sus bases de código o documentación. Este contexto relevante se añade a la consulta antes de enviarla al modelo LLM. El sistema RAG determina las fuentes que deben incluirse o excluirse para generar una respuesta con la información más útil.
RAG requiere el plan watsonx Code Assistant Standard y la ampliación Visual Studio Code. No está disponible para su uso con el plug-in Eclipse.
IBM watsonx Code Assistant soporta RAG que mejora la calidad de respuesta de las consultas de los usuarios en un contexto pertinente y actualizado a partir de bases de código y documentación. La RAG reduce las alucinaciones del modelo y mejora la precisión de las respuestas generadas.
Puede configurar watsonx Code Assistant con repositorios de código específicos y documentación del proyecto que no estén almacenados en el repositorio Git utilizando RAG para extraer la información relevante para el mensaje de chat. Puede configurar documentación como documentos API, archivos Léame, documentos técnicos y de diseño, Markdown, PDF, Word y PowerPoint.
La siguiente figura ilustra el procedimiento para configurar RAG para watsonx Code Assistant:
Habilitación de RAG
Para activar el RAG:
-
Aprovisione un almacén de vectores en IBM Cloud.
-
Aprovisione una instancia de almacén vectorial Milvus o Elasticsearch en IBM Cloud. Si el almacén de vectores ya está disponible en tu IBM Cloud, puedes saltarte este paso.
-
Para aprovisionar una instancia de almacén vectorial Elasticsearch, consulte Aprovisionamiento Databases for Elasticsearch.
-
Para aprovisionar una instancia de almacén de vectores Milvus, consulte Aprovisionamiento de watsonx.data.
Milvus forma parte de IBM watsonx.data. Puede aprovisionar una instancia de Milvus con el plan de empresa watsonx.data.
-
-
Opcional: Aprovisione una instancia de IBM watsonx.ai Studio para indexar el repositorio de código.
-
-
Indexe o actualice sus repositorios de código en Milvus o Elasticsearch. Para más información, consulte Indexación de repositorios de código con IBM watsonx.ai Studio.
Configurar los activos de conexión:
-
Utilice el espacio de despliegue existente en su instancia de servicio watsonx Code Assistant.
-
Crear un activo de conexión para cada índice que se cree en el almacén de vectores. Para obtener más información, consulte Creación de un activo de conexión.
-
-
Configure el token de acceso personal Git en Visual Studio Code y utilice las indicaciones habilitadas para RAG.
- Haga clic en el icono de su perfil en GitHub y vaya a Configuración > Configuración de desarrollador > Fichas de acceso personal > Fichas (Classic).
- Copie su código de acceso personal.
- En Visual Studio Code, haga clic en Ver y, a continuación, en Paleta de comando.
- Busque
WCAy, a continuación, haga clic en Introducir GitHub Token de acceso personal para WCA. - Introduzca su clave de acceso personal GitHub y pulse
EnteroReturn. - En los mensajes de chat, introduzca
@repo < instruction >o@docs < instruction >para generar una respuesta que utilice el contexto del repositorio referenciado o los documentos del almacén de vectores. Sustituya el parámetro< instruction >por un mensaje de aviso.
-
Ejemplo de sintaxis para utilizar el repositorio referenciado:
@repo how is a chat message processed?watsonx Code Assistant utiliza los repositorios indexados en función de las siguientes condiciones:
-
Si se abre un repositorio en Visual Studio Code, watsonx Code Assistant busca el contexto en el repositorio abierto por defecto.
-
Si se abren varios repositorios en Visual Studio Code, watsonx Code Assistant busca el contexto del repositorio asociado al archivo al que se ha accedido recientemente.
-
Watsonx Code Assistant busca el archivo
repo.yamlen el repositorio indexado cuando se introduce la sintaxis@repo < instruction >en el chat. Si se configuran uno o más archivos de configuración YAML, watsonx Code Assistant utiliza todos los repositorios configurados para generar una respuesta. Si no se configura YAML, watsonx Code Assistant utiliza el repositorio seleccionado.
-
-
Ejemplo de sintaxis para utilizar la colección de documentos referenciada:
@docs What are the steps to setup a connection to the user data store?Watsonx Code Assistant utiliza las colecciones de documentos indexados en función de las siguientes condiciones:
-
Si el documento se abre en Visual Studio Code, watsonx Code Assistant busca por defecto el contexto en el repositorio abierto.
-
Si se abren varias colecciones de documentos en Visual Studio Code, watsonx Code Assistant busca el contexto del documento al que se ha accedido recientemente.
-
Watsonx Code Assistant busca el archivo
docs.yamlen el repositorio indexado cuando se introduce la sintaxis@docs < instruction >en el chat. Si se configuran uno o más archivos de configuración YAML, watsonx Code Assistant utiliza todas las colecciones de documentos configuradas para generar una respuesta. Si no se configura YAML, watsonx Code Assistant utiliza todos los documentos con el nombredocs_<filename>de su espacio de despliegue.
-
Opcional: si necesita configurar YAML para repositorios indexados o colecciones de documentos, consulte Configurar YAML para RAG.
Configuración de YAML para RAG
Puede establecer la configuración YAML opcionalmente para permitir que watsonx Code Assistant busque varios repositorios al mismo tiempo o utilice el repositorio de código o documento indexado específico en el almacén de vectores. Si no establece la configuración YAML, watsonx Code Assistant utiliza por defecto el repositorio abierto en Visual Studio Code.
watsonx Code Assistant utiliza el método de autorización de clave API para garantizar que sólo pueda acceder a los repositorios o colecciones de documentos autorizados.
Para establecer la configuración YAML para un repositorio indexado específico, complete los siguientes pasos:
-
Cree una carpeta
.wca/repoen el nivel raíz del repositorio. -
Cree un archivo YAML con los siguientes campos:
repo: - url: git@github.ibm.com:code-assistant/<my-code>.gitSi necesita configurar watsonx Code Assistant con varios repositorios, cree un archivo
repo.yamlpara cada repositorio que deba utilizarse para generar una respuesta.
Para establecer la configuración de YAML para colecciones de documentos específicas, siga los siguientes pasos:
-
Cree una carpeta
.wca/docsen el nivel raíz del repositorio. -
Cree un archivo YAML con los siguientes campos:
docs: - url: my_collection
Escenarios de casos de uso
Los escenarios de casos de uso explican cómo funciona la GAR y cómo se recuperan los datos de los repositorios o documentos indexados.
Utilizar un único repositorio de código
Si está trabajando en un único repositorio y desea utilizar el código de este repositorio como contexto para las conversaciones de chat, complete los siguientes pasos:
-
Asegúrese de que tiene acceso al repositorio en GitHub.
-
Indexa el repositorio en el almacén de vectores. Para más información, consulte Indexación del repositorio de código con IBM watsonx.ai Studio
-
Crear un activo de conexión para el repositorio. Para obtener más información, consulte Creación de un activo de conexión.
-
Genere un token de acceso personal Git desde su cuenta GitHub y complete la configuración en Visual Studio Code.
-
Abra el repositorio en Visual Studio Code.
-
Utilice el comando
@repoen el chat para generar una respuesta que utilice el contexto del repositorio.
Uso de múltiples repositorios de código
Si está trabajando en un repositorio que tiene dependencias con otro repositorio, puede utilizar el código de ambos repositorios como contexto para las conversaciones de chat. Para utilizar ambos repositorios, siga estos pasos:
-
Asegúrese de que tiene acceso a ambos repositorios en GitHub.
-
Indexa cada repositorio del almacén de vectores por separado. Para más información, consulte Indexación del repositorio de código con IBM watsonx.ai Studio.
-
Cree dos activos de conexión para cada almacén de vectores. Para obtener más información, consulte Creación de un activo de conexión.
-
Genere un token de acceso personal Git desde su cuenta GitHub y complete la configuración en Visual Studio Code.
-
En el primer repositorio, establezca la configuración YAML para listar ambos repositorios.
-
Utilice el comando
@repoen el chat para generar una respuesta que utilice el contexto de ambos repositorios.
Si utiliza el mismo índice para ambos repositorios, la comprobación de acceso GitHub no se utiliza para el segundo repositorio. Si no tiene acceso para uno de los repositorios, watsonx Code Assistant genera el contexto sólo desde el repositorio autorizado.
Permitir que todos los usuarios de un equipo accedan a los repositorios de documentación del proyecto
Puede permitir que todos los usuarios de un equipo accedan a los repositorios de documentación del proyecto y utilizar los documentos como contexto para las conversaciones de chat.
Para permitir el acceso a todos los usuarios:
-
Indexa los repositorios de documentación del proyecto en el almacén de vectores. Para más información, consulte Indexación del repositorio de código con IBM watsonx.ai Studio.
Puede utilizar el mismo índice para todos los repositorios de documentación si todos los usuarios tienen acceso a los repositorios de documentación del proyecto indexados. Si los usuarios tienen una restricción de acceso al repositorio indexado, consulte Habilitación de los usuarios de un subequipo diferente para acceder a los repositorios de documentación del proyecto.
-
Cree un activo de conexión para el índice de documentación en el espacio de despliegue que incluya a todos los usuarios del equipo. Para obtener más información, consulte Creación de un activo de conexión.
-
Utilice el comando
@docsen el chat para generar una respuesta que utilice el contexto del índice de documentación.
Los tokens de acceso personal de GitHub no se utilizan para verificar el acceso al contenido de la documentación. Puede combinar varios repositorios de documentación en el mismo índice del almacén vectorial. El contenido de la documentación es menos restrictivo que el de los repositorios de código y un índice único para todos los repositorios de documentación simplifica el proceso de gestión del índice. La autorización para acceder a los repositorios de documentación sólo se permite a los usuarios incorporados en el espacio de despliegue.
Permitir a los usuarios de un subequipo diferente acceder a los repositorios de documentación del proyecto
En este caso de uso, distintos subequipos de un gran equipo mantienen los repositorios de documentación del proyecto. El acceso a los repositorios de documentación está restringido a los distintos subequipos. Otros subequipos no tienen acceso a estos repositorios de documentación.
Permitir que cada subequipo acceda a los repositorios de documentación del proyecto relacionados:
-
Indexa los repositorios de documentación por separado en el almacén de vectores. Para más información, consulte Indexación del repositorio de código con IBM watsonx.ai Studio.
-
Asegúrese de que se crea el espacio de despliegue para cada subequipo que incluya a sus usuarios.
-
Para cada índice de repositorio de documentación, cree un activo de conexión en el espacio de despliegue relacionado. Para obtener más información, consulte Creación de un activo de conexión.
-
Utilice el comando
@docsen el chat para generar una respuesta que utilice el contexto del índice de documentación.
Watsonx Code Assistant utiliza el índice del repositorio de documentación en función del espacio de despliegue asignado a los usuarios. La configuración del cliente no es necesaria.
Permitir a los usuarios acceder a los repositorios de documentación del proyecto en función de sus funciones
En este caso, los usuarios de un equipo necesitan acceder a diferentes conjuntos de documentación en función de sus funciones. El alcance de la documentación que se utiliza como contexto en varía según los usuarios sin restricciones de acceso. Por ejemplo, los desarrolladores sólo necesitan documentación técnica y de las API, mientras que los analistas empresariales se centran en los documentos de los procesos de negocio.
Para personalizar los repositorios de documentación que se utilizan como contexto:
-
Indexa cada repositorio de documentación en el almacén de vectores por separado. Para más información, consulte Indexación del repositorio de código con IBM watsonx.ai Studio.
-
Cree un activo de conexión para cada índice en el espacio de despliegue del equipo. Para obtener más información, consulte Creación de un activo de conexión.
-
Establecer la configuración YAML para el índice de documentación requerido que se utiliza como contexto. Si necesita utilizar varios índices de documentación, establezca la configuración YAML para cada índice de documentación.
-
Utilice el comando
@docsen el chat para generar una respuesta que utilice el contexto del índice de documentación.