Planificación del despliegue

Puede utilizar agentes de Oracle Cloud Infrastructure Generative AI para crear un sistema de búsqueda inteligente que proporcione respuestas contextualmente relevantes buscando en su base de conocimientos empresarial.

En esta sección, se describen las siguientes implementaciones:

  • Lleve los datos de su empresa a una base de conocimientos gestionada por servicios para que los agentes de IA generativa los ingieran.
  • Indexa tus datos en una base de conocimientos gestionada por el cliente.
  • Cree y despliegue código para la ingestión de datos y genere incrustaciones de vectores.

Agentes de IA generativa con base de conocimientos gestionada por el servicio

El siguiente despliegue utiliza agentes de OCI Generative AI para crear un sistema de búsqueda inteligente que utilice una base de conocimientos gestionada por el servicio y Oracle Cloud Infrastructure Object Storage.

Este despliegue carga archivos TXT y PDF en el cubo de Oracle Cloud Infrastructure Object Storage, donde los agentes de IA generativa ingieren automáticamente los datos para crear vectores almacenados en un almacén de vectores integrado.

Las ventajas de este despliegue son que es adecuado para los clientes que necesitan una solución gestionada para datos no estructurados, proporciona una ingesta de datos rápida y sencilla y tiene requisitos mínimos de codificación y mantenimiento. Sin embargo, el modelo de incrustación gestionado por el servicio Cohere solo permite hasta 1000 archivos de texto y PDF por base de conocimientos.



genai-knowledge-base-oracle.zip

Utilice los siguientes pasos generales para crear este despliegue:

  1. Aprovisione un cubo de almacenamiento de objetos y cargue archivos en el cubo.

    Los tipos de archivo admitidos son PDF y TXT y cada archivo no debe tener más de 100 MB. Los archivos PDF pueden incluir imágenes, gráficos y tablas de referencia, pero cada uno de estos objetos no debe superar los 8 MB. OCI Object Storage soporta la carga por lotes de archivos mediante la consola, la API Rest o el kit de desarrollo de software (SDK).

  2. Cree una base de conocimientos y un trabajo de ingestión.

    Cree una base de conocimientos en los agentes de OCI Generative AI y especifique el cubo de almacenamiento de objetos que ha aprovisionado como origen de datos. Seleccione la opción Iniciar trabajo de ingesta automáticamente para que el servicio de agentes de OCI Generative AI genere un índice vectorial mediante el modelo de embebido gestionado por servicio.

  3. Cree el agente y el punto final.

    Cree un agente en los agentes de OCI Generative AI y conéctelo a la base de conocimientos aprovisionada en el paso anterior. Cree un punto final para el agente que se utilizará más adelante para iniciar un chat con el agente. El punto final se utiliza para permitir la comunicación y el intercambio de datos entre un agente y sistemas externos. El punto final es un parámetro de entrada necesario si desea activar la funcionalidad de chat mediante agentes de IA mediante la API o el SDK.

  4. Opcionalmente, cree una integración front-end.

    El servicio de agentes de OCI Generative AI proporciona una interfaz de usuario de chat que permite a los usuarios hacer preguntas relacionadas con los datos a los que el agente tiene acceso. Puede integrar el agente con la aplicación mediante el SDK o la API Rest del servicio y, a continuación, mediante la personalización de la interfaz del bot de chat. Oracle ofrece herramientas de desarrollo de aplicaciones sin código y con poco código, como Oracle APEX Application Development y Oracle Digital Assistant.

Agentes de IA generativa con OCI OpenSearch

En el siguiente despliegue se utiliza la búsqueda de Oracle Cloud Infrastructure con datos OpenSearch como base de conocimientos gestionada por el cliente para que la utilicen los agentes de IA generativa.

La búsqueda de Oracle Cloud Infrastructure con OpenSearch es un servicio gestionado que puede buscar y analizar datos alojados en almacenes de datos de gran volumen. En este despliegue, OpenSearch es la base de datos vectorial utilizada para almacenar documentos de empresa, crear índices y buscar y recuperar datos mediante la búsqueda híbrida. A continuación, los resultados de búsqueda los clasifican los agentes de OCI Generative AI mediante un modelo de nueva generación gestionado y, a continuación, se envían al modelo de lenguaje grande (LLM) de Cohere para generar una respuesta contextual.

Las ventajas de este despliegue son que soporta una gama más amplia de tipos de archivo, como JSON, XML y blogs, es compatible con una amplia gama de modelos de inserción de código abierto y puede utilizar el truncamiento automático para resultados de búsqueda más específicos. Este despliegue requiere que cree y gestione los pipelines de ingesta e indexación de datos y requiere que los archivos se fragmenten a menos de 512 tokens cada uno y se ingieran e indexen en OpenSearch.



genai-opensearch-oracle.zip

Utilice los siguientes pasos generales para crear este despliegue:

  1. Aprovisione la pila de búsqueda e ingestión de Oracle Cloud Infrastructure.

    Aprovisione redes virtuales en la nube (VCN), un cluster de búsqueda de Oracle Cloud Infrastructure y una instancia de máquina virtual (VM).

    Consulte la sección Explorar más para obtener un enlace a un tutorial que muestra cómo crear la pila.

  2. Crear un secreto de OCI Vault.

    Los agentes de OCI Generative AI requieren que cree un secreto para que la búsqueda de Oracle Cloud Infrastructure pueda almacenar nombres de usuario y contraseñas en OCI Vault.

  3. Configure la base de conocimientos y el agente de los agentes de OCI Generative AI.

    Cree una base de conocimientos seleccionando el cluster de búsqueda de Oracle Cloud Infrastructure como origen de datos y especificando qué índices utilizar. Cree un agente de RAG de OCI Generative AI mediante esta base de conocimientos.

Agentes de OCI Generative AI con Oracle Database 23ai

Este despliegue utiliza Oracle Autonomous Database 23ai con Vector Search para gestionar los datos estructurados y no estructurados.

Cuando los usuarios consultan datos empresariales, la búsqueda vectorial de IA ejecuta búsquedas similares para encontrar los hechos más relevantes que se deben transferir a los agentes de OCI Generative AI. A continuación, estos agentes ejecutan modelos de referencia y utilizan el modelo de lenguaje grande (LLM) de Cohere para generar respuestas contextuales.

Las ventajas de este despliegue son que soporta datos estructurados y no estructurados, incluidos datos de medios, imágenes y vídeos, y que es compatible con modelos de inserción de terceros para proporcionar resultados de búsqueda dirigidos. Este despliegue requiere la creación y el despliegue de código para la ingestión de datos, la generación de incrustaciones de vectores y la creación de índices vectoriales.



genai-vector-search-oracle.zip

Utilice los siguientes pasos generales para crear este despliegue:

  1. Cree una instancia de Oracle Database 23ai:
    1. En el menú de navegación de la consola de servicio de OCI, haga clic en Oracle Database y, a continuación, seleccione Autonomous Data Warehouse.
    2. Haga clic en Crear base de datos autónoma.
    3. Asigne un nombre a la base de datos y seleccione 23ai como versión de base de datos. Proporcione otros parámetros o acepte los valores por defecto y haga clic en Crear Autonomous Database.
  2. Cree un almacén de datos para almacenar credenciales de base de datos y, a continuación, cree una clave:
    1. En el menú de navegación de la consola de servicio de OCI, haga clic en Identidad y seguridad y, a continuación, seleccione Almacén.
    2. Haga clic en Crear almacén.
    3. Asigne un nombre al almacén. Proporcione otros parámetros o acepte los valores por defecto y haga clic en Crear almacén.
    4. En el almacén recién creado, haga clic en Create Key.
    5. Asigne un nombre a la clave. Proporcione otros parámetros o acepte los valores por defecto y haga clic en Crear clave.
  3. Cree una conexión a Database Tools:
    1. En el menú de navegación de la consola de servicio de OCI, haga clic en Servicios para desarrolladores y, a continuación, seleccione Conexiones.
    2. Haga clic en Crear Conexión.
    3. Asigne un nombre a la conexión, seleccione Oracle Autonomous Database como servicio de base de datos en la nube, seleccione el compartimento y especifique un nombre de usuario. Proporcione otros parámetros o acepte los valores por defecto y haga clic en Crear secreto de contraseña.
    4. Asigne un nombre al secreto de contraseña, seleccione el compartimento, el compartimento de almacén, el compartimento de clave de cifrado y especifique una contraseña. Haga clic en Create.
    5. Seleccione Cartera de SSO como formato de cartera y, a continuación, haga clic en Crear secreto de contenido de cartera, asigne un nombre al secreto de contenido de cartera, seleccione los compartimentos de clave de cifrado y almacén y asegúrese de que se ha seleccionado Recuperar cartera regional de Autonomous Database. Haga clic en Crear.
    6. Haga clic en Crear en la ventana Crear Conexión. La conexión recién creada se muestra en el separador Conexión de la página de detalles de la base de datos asociada.
  4. Cree vectores mediante el embebido de modelos mediante PL/SQL:
    1. Configure credenciales para permitir el acceso a los recursos de OCI, como el servicio OCI Gen AI y las credenciales para DBMS_CLOUD. Necesitará a OCI un archivo de configuración con api_keys privado y público, una huella, un usuario, un arrendamiento y un OCID de compartimento.
      begin
        DBMS_CLOUD.CREATE_CREDENTIAL (
          credential_name => '<credential_name>',
          user_ocid       => '<user_ocid>',
          tenancy_ocid    => '<tenancy_ocid>',
          private_key     => '<private_key>',
          fingerprint     => '<fingerprint>'
        );
      end;
      /
    2. Utilice la funcionalidad de base de datos incorporada con archivos PDF almacenados de 23ai para fragmentar archivos y realizar la extracción de texto.
      CREATE TABLE ai_extracted_data AS
      SELECT
        j.chunk_id,
        j.chunk_offset,
        j.chunk_length,
        j.chunk_data
      FROM
        -- divide a blob into chunks (utl_to_chunks):
        (select * from dbms_vector_chain.utl_to_chunks(
                  dbms_vector_chain.utl_to_text(
                      to_blob(
                          DBMS_CLOUD.GET_OBJECT('OCI_CRED_BUCKET', '<path-to-object-pdf>')
                      )
                  ), json('{"max":"75", "normalize":"all", "overlap":"15"}')
              )),
        JSON_TABLE(column_value, '$'
          COLUMNS (
            chunk_id NUMBER PATH '$.chunk_id',
            chunk_offset NUMBER PATH '$.chunk_offset',
            chunk_length NUMBER PATH '$.chunk_length',
            chunk_data CLOB PATH '$.chunk_data'
          )
        ) j;
    3. Cree incrustaciones de vectores mediante una amplia gama de opciones de incrustación, como el modelo cohere.embed-multilingual-v3.0 a través de OCI Generative AI.
      create table ai_extracted_data_vector as (
          select chunk_id as docid, to_char(chunk_data) as body, dbms_vector.utl_to_embedding(
                  chunk_data,
                  json('{
                      "provider": "OCIGenAI",
                      "credential_name": "<credential_name>",
                      "url": "https://example.com/<path>",
                      "model": "cohere.embed-multilingual-v3.0"
                  }')
              ) as text_vec
          from ai_extracted_data
          where chuck_id <= 400
      );
      
    4. Cree una función para consultar las tablas vectoriales y realice las operaciones de búsqueda de AI en tiempo de ejecución.
      create or replace FUNCTION retrieval_func_ai (
          p_query IN VARCHAR2,
          top_k IN NUMBER
      ) RETURN SYS_REFCURSOR IS
          v_results SYS_REFCURSOR;
          query_vec VECTOR;
      BEGIN
          query_vec := dbms_vector.utl_to_embedding(
              p_query,
              json('{
                  "provider": "OCIGenAI",
                  "credential_name": "<credential_name>",
                  "url": "https://example.com/<path>",
                  "model": "cohere.embed-multilingual-v3.0"
              }')
          );
       
          OPEN v_results FOR
              SELECT DOCID, BODY, VECTOR_DISTANCE(text_vec, query_vec) as SCORE
              FROM ai_extracted_data_vector
              ORDER BY SCORE
              FETCH FIRST top_k ROWS ONLY;
       
          RETURN v_results;
      END;
  5. Cree la base de conocimientos mediante Oracle Database 23ai:
    1. En el menú de navegación de la consola de servicio de OCI, haga clic en Análisis e IA y, a continuación, seleccione Agentes de IA generativa.
    2. Haga clic en Bases de conocimientos y, a continuación, en Crear base de conocimientos.
    3. Asigne un nombre a la base de conocimientos, seleccione Oracle AI Vector Search como tipo de almacén de datos y proporcione la conexión a la herramienta de base de datos y la función de búsqueda y, a continuación, haga clic en Crear base de conocimientos.
  6. Cree un agente de IA generativa con la base de conocimientos de Oracle Database 23 AI:
    1. En el menú de navegación de la consola de servicio de OCI, haga clic en Análisis e IA y, a continuación, seleccione Agentes.
    2. Haga clic en Crear agente.
    3. Asigne un nombre al agente, seleccione la base de conocimientos que ha creado y, a continuación, haga clic en Crear agente.

    Después de crear el agente, debe ver que el agente está activo y listo para chatear.