Planifier votre déploiement

Vous pouvez utiliser des agents Oracle Cloud Infrastructure Generative AI pour créer un système de recherche intelligent qui fournit des réponses pertinentes en fonction du contexte en recherchant dans la base de connaissances de votre entreprise.

Les implémentations suivantes sont décrites dans cette section :

  • Intégrez les données de votre entreprise dans une base de connaissances gérée par le service pour que les agents d'IA génératifs puissent les ingérer.
  • Indexez vos données dans une base de connaissances gérée par le client.
  • Créez et déployez du code pour l'ingestion de données et générez des intégrations vectorielles.

Agents IA génératifs avec base de connaissances gérée par le service

Le déploiement suivant utilise des agents d'intelligence artificielle générative OCI pour créer un système de recherche intelligente qui utilise une base de connaissances gérée par le service et Oracle Cloud Infrastructure Object Storage.

Ce déploiement charge des fichiers TXT et PDF dans le seau Oracle Cloud Infrastructure Object Storage, où les agents d'IA génératifs ingèrent automatiquement les données pour créer des vecteurs stockés dans un magasin de vecteurs intégré.

Les avantages de ce déploiement sont qu'il est bien adapté aux clients qui ont besoin d'une solution gérée pour les données non structurées, offre une ingestion des données rapide et facile et a des exigences minimales en matière de codage et de maintenance. Toutefois, le modèle d'intégration géré par le service Cohere n'autorise que 1000 fichiers texte et PDF par base de connaissances.



genai-base de connaissances-oracle.zip

Pour créer ce déploiement, procédez comme suit :

  1. Provisionnez un seau de stockage d'objets et chargez des fichiers dans le seau.

    Les types de fichier pris en charge sont PDF et TXT et chaque fichier ne doit pas dépasser 100 Mo. Les fichiers PDF peuvent inclure des images, des graphiques et des tables de référence, mais chacun de ces objets ne doit pas dépasser 8 Mo. Le service Stockage d'objets OCI prend en charge le chargement par lots de fichiers à l'aide de la console, de l'API Rest ou de la trousse SDK.

  2. Créez une base de connaissances et une tâche d'ingestion.

    Créez une base de connaissances dans les agents d'intelligence artificielle générative OCI et spécifiez le seau de stockage d'objets que vous avez provisionné en tant que source de données. Sélectionnez l'option Démarrer automatiquement la tâche d'ingestion afin que le service d'IA générative OCI génère un index vectoriel à l'aide du modèle d'intégration géré par le service.

  3. Créez l'agent et le point d'extrémité.

    Créez un agent dans les agents d'intelligence artificielle générative OCI et connectez-le à la base de connaissances provisionnée à l'étape précédente. Créez un point d'extrémité pour l'agent, qui sera ensuite utilisé pour lancer un clavardage avec l'agent. Le point d'extrémité est utilisé pour permettre la communication et l'échange de données entre un agent et des systèmes externes. Le point d'extrémité est un paramètre d'entrée obligatoire si vous voulez activer la fonctionnalité de clavardage à l'aide d'agents AI à l'aide de l'API ou de la trousse SDK.

  4. Facultativement, créez une intégration frontale.

    Le service d'agents de l'IA générative OCI fournit une interface utilisateur de clavardage qui permet aux utilisateurs de poser des questions relatives aux données auxquelles l'agent a accès. Vous pouvez intégrer l'agent à votre application à l'aide de l'API Rest du service ou de la trousse SDK, puis en personnalisant l'interface du robot de clavardage. Oracle offre des outils de développement d'applications avec codage réduit et sans codage, tels qu'Oracle APEX Application Development et Oracle Digital Assistant.

Agents d'intelligence artificielle générative avec OCI OpenSearch

Le déploiement suivant utilise la recherche Oracle Cloud Infrastructure avec les données OpenSearch en tant que base de connaissances gérée par le client à utiliser par les agents d'intelligence artificielle générative.

La recherche dans Oracle Cloud Infrastructure avec OpenSearch est un service géré qui peut rechercher et analyser les données hébergées dans des magasins de données à grand volume. Dans ce déploiement, OpenSearch est la base de données vectorielle utilisée pour stocker des documents d'entreprise, créer des index et rechercher et extraire des données à l'aide d'une recherche hybride. Les résultats de la recherche sont ensuite classés par agents de l'IA générative OCI à l'aide d'un modèle de reclassement géré, puis envoyés au modèle de langue large Cohere (LLM) pour générer une réponse contextuelle.

Les avantages de ce déploiement sont qu'il prend en charge un plus large éventail de types de fichiers, tels que JSON, XML et Blogs, est compatible avec un large éventail de modèles d'intégration open source et peut utiliser la troncature automatique pour des résultats de recherche plus spécifiques. Ce déploiement nécessite que vous créiez et gériez les pipelines d'ingestion et d'indexation de données et que les fichiers soient fragmentés en moins de 512 jetons chacun et ingérés et indexés dans OpenSearch.



genai-opensearch-oracle.zip

Pour créer ce déploiement, procédez comme suit :

  1. Provisionnez la pile de recherche et l'ingestion de données pour Oracle Cloud Infrastructure.

    Provisionnez des réseaux en nuage virtuels (VCN), une grappe de recherche Oracle Cloud Infrastructure et une instance de machine virtuelle.

    Voir la section Explorer plus pour un lien vers un tutoriel expliquant comment créer la pile.

  2. Créez une clé secrète pour le service de chambre forte pour OCI.

    Les agents d'intelligence artificielle générative OCI nécessitent de créer une clé secrète pour que la recherche Oracle Cloud Infrastructure puisse stocker les noms d'utilisateur et les mots de passe dans la chambre forte OCI.

  3. Configurez la base de connaissances et l'agent de l'intelligence artificielle générative OCI.

    Créez une base de connaissances en choisissant la grappe de recherche pour Oracle Cloud Infrastructure comme source de données et en spécifiant les index à utiliser. Créez un agent RAG d'IA générative OCI à l'aide de cette base de connaissances.

Agents d'IA générative OCI avec Oracle Database 23ai

Ce déploiement utilise Oracle Autonomous Database 23ai avec la recherche vectorielle pour gérer les données structurées et non structurées.

Lorsque les utilisateurs interrogent des données d'entreprise, la recherche vectorielle d'intelligence artificielle exécute des recherches de similarité pour trouver les faits les plus pertinents à transmettre aux agents de l'intelligence artificielle générative OCI. Ces agents exécutent ensuite des modèles de reclassement et utilisent le modèle LLLM (Large Language Model) Cohere pour générer des réponses contextuelles.

Les avantages de ce déploiement sont qu'il prend en charge les données structurées et non structurées, y compris les données multimédias, les images et les vidéos, et qu'il est compatible avec les modèles d'intégration de tierce partie pour fournir des résultats de recherche ciblés. Ce déploiement nécessite la création et le déploiement de code pour l'ingestion de données, la génération d'intégrations de vecteurs et la création d'index de vecteurs.



genai-vector-search-oracle.zip

Pour créer ce déploiement, procédez comme suit :

  1. Créez une instance Oracle Database 23ai :
    1. Dans le menu de navigation de la console de service OCI, cliquez sur Oracle Database, puis sélectionnez Autonomous Data Warehouse.
    2. Cliquez sur Créer une base de données autonome.
    3. Nommez la base de données et sélectionnez 23ai comme version. Indiquez d'autres paramètres ou acceptez les valeurs par défaut et cliquez sur Créer une base de données Autonomous Database.
  2. Créez une chambre forte pour stocker les données d'identification de base de données, puis créez une clé :
    1. Dans le menu de navigation de la console de service OCI, cliquez sur Identité et sécurité, puis sélectionnez Chambre forte.
    2. Cliquez sur Créer une chambre forte.
    3. Nommez la chambre forte. Indiquez d'autres paramètres ou acceptez les valeurs par défaut et cliquez sur Créer une chambre forte.
    4. Dans la chambre forte nouvellement créée, cliquez sur Créer une clé.
    5. Nommez la clé. Indiquez d'autres paramètres ou acceptez les valeurs par défaut et cliquez sur Créer une clé.
  3. Créer une connexion au service d'outils de base de données :
    1. Dans le menu de navigation de la console de service OCI, cliquez sur Services de développement, puis sélectionnez Connexions.
    2. Cliquez sur Créer une connexion.
    3. Nommez la connexion, sélectionnez Oracle Autonomous Database comme service de base de données en nuage, sélectionnez le compartiment et spécifiez un nom d'utilisateur. Indiquez d'autres paramètres ou acceptez les valeurs par défaut et cliquez sur Créer une clé secrète de mot de passe.
    4. Nommez la clé secrète du mot de passe, sélectionnez le compartiment, le compartiment de la chambre forte, le compartiment de la clé de chiffrement et spécifiez un mot de passe. Cliquez sur Créer.
    5. Sélectionnez Portefeuille d'authentification unique comme format de portefeuille, puis cliquez sur Créer une clé secrète pour le contenu du portefeuille, nommez la clé secrète pour le contenu du portefeuille, sélectionnez la chambre forte et les compartiments de clés de chiffrement et assurez-vous que l'option Extraire le portefeuille régional d'Autonomous Database est sélectionnée. Cliquez sur Créer.
    6. Cliquez sur Créer dans la fenêtre Créer une connexion. La nouvelle connexion est répertoriée sous l'onglet Connection de la page de détails de la base de données associée.
  4. Créez des vecteurs à l'aide de modèles intégrés à l'aide de code PL/SQL :
    1. Configurez des données d'identification pour permettre l'accès aux ressources OCI, telles que le service d'intelligence artificielle Gen pour OCI et les données d'identification pour DBMS_CLOUD. Vous aurez besoin d'OCI d'un fichier de configuration avec api_keys privé et public, d'une empreinte numérique, d'un utilisateur, d'une location et d'un ocid de compartiment.
      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. Utilisez la fonctionnalité de base de données intégrée avec des fichiers PDF stockés 23ai pour fragmenter des fichiers et effectuer l'extraction de texte.
      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. Créez des intégrations de vecteur à l'aide d'un large éventail d'options d'intégration, telles que le modèle cohere.embed-multilingual-v3.0 au moyen de l'IA générative OCI.
      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. Créez une fonction pour interroger les tables vectorielles et effectuer les opérations de recherche IA lors de l'exécution.
      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. Créez la base de connaissances à l'aide d'Oracle Database 23ai :
    1. Dans le menu de navigation de la console de service OCI, cliquez sur Analyse et intelligence artificielle, puis sélectionnez Agents d'intelligence artificielle génériques.
    2. Cliquez sur Bases de connaissances, puis sur Créer une base de connaissances.
    3. Nommez la base de connaissances, sélectionnez Recherche de vecteurs dans Oracle AI comme type de magasin de données et que vous fournissez la connexion à l'outil de base de données et la fonction de recherche, puis cliquez sur Créer une base de connaissances.
  6. Créez un agent d'IA génératif avec la base de connaissances Oracle Database 23 AI :
    1. Dans le menu de navigation de la console de service OCI, cliquez sur Analyses et intelligence artificielle, puis sélectionnez Agents.
    2. Cliquez sur Créer un agent.
    3. Nommez l'agent, sélectionnez la base de connaissances que vous avez créée, puis cliquez sur Créer un agent.

    Une fois l'agent créé, vous devriez voir qu'il est actif et prêt pour le clavardage.