Planification de votre déploiement
Vous pouvez utiliser les agents Oracle Cloud Infrastructure Generative AI pour créer un système de recherche intelligent qui fournit des réponses contextuellement pertinentes en effectuant une recherche dans la base de connaissances de votre entreprise.
Les implémentations suivantes sont décrites dans cette section :
- Intégrez vos données d'entreprise dans une base de connaissances gérée par le service que les agents d'IA générative peuvent 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 incorporations vectorielles.
Agents d'IA générative avec une base de connaissances gérée par le service
Le déploiement suivant utilise des agents OCI Generative AI pour créer un système de recherche intelligent qui utilise une base de connaissances gérée par le service et Oracle Cloud Infrastructure Object Storage.
Ce déploiement télécharge des fichiers TXT et PDF vers le bucket Oracle Cloud Infrastructure Object Storage où les agents Generative AI assimilent automatiquement les données pour créer des vecteurs stockés dans une banque de vecteurs intégrée.
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, qui fournit une assimilation rapide et facile des données et qui a des exigences minimales en matière de codage et de maintenance. Cependant, le modèle d'intégration géré par le service Cohere ne permet que jusqu'à 1000 fichiers texte et PDF par base de connaissances.
genai-knowledge-base-oracle.zip
Pour créer ce déploiement, procédez comme suit :
- Provisionnez un bucket de stockage d'objets et téléchargez des fichiers vers le bucket.
Les types de fichiers 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. OCI Object Storage prend en charge le téléchargement en batch de fichiers à l'aide de la console, de l'API Rest ou du kit de développement logiciel.
- Créez une base de connaissances et un travail d'ingestion.
Créez une base de connaissances dans les agents OCI Generative AI et indiquez le bucket de stockage d'objet que vous avez provisionné en tant que source de données. Sélectionnez l'option Démarrer automatiquement le travail d'ingestion de sorte que le service Agents OCI Generative AI génère un index vectoriel à l'aide du modèle d'intégration géré par le service.
- Créez l'agent et l'adresse.
Créez un agent dans les agents OCI Generative AI et connectez-le à la base de connaissances provisionnée à l'étape précédente. Créez une adresse pour l'agent qui sera utilisée ultérieurement pour lancer une discussion avec l'agent. L'adresse est utilisée pour permettre la communication et l'échange de données entre un agent et des systèmes externes. L'adresse est un paramètre d'entrée requis si vous voulez activer la fonctionnalité de discussion à l'aide d'agents AI à l'aide de l'API ou du kit SDK.
- Vous pouvez également créer une intégration front-end.
Le service Agents OCI Generative AI fournit une interface utilisateur de discussion qui permet aux utilisateurs de poser des questions sur les données auxquelles l'agent a accès. Vous pouvez intégrer l'agent à votre application à l'aide du kit SDK ou de l'API de service Rest, puis en personnalisant l'interface de chat bot. Oracle propose des outils de développement d'applications sans code et sans code, tels qu'Oracle APEX Application Development et Oracle Digital Assistant.
Agents d'IA 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 que les agents d'IA générative peuvent utiliser.
Oracle Cloud Infrastructure Search with OpenSearch est un service géré qui peut rechercher et analyser des données hébergées dans des banques de données de gros volumes. Dans ce déploiement, OpenSearch est la base de données vectorielle utilisée pour stocker des documents d'entreprise, créer des index, rechercher et extraire des données à l'aide de la recherche hybride. Les résultats de la recherche sont ensuite classés par agents OCI Generative AI à l'aide d'un modèle de classement géré, puis envoyés au modèle de langage LLM (Large Language Model) Cohere 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 troncation 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'assimilation et d'indexation des données, et que les fichiers soient découpés en blocs à moins de 512 jetons chacun, puis assimilés et indexés dans OpenSearch.
Pour créer ce déploiement, procédez comme suit :
- Provisionnez la pile de recherche Oracle Cloud Infrastructure et assimilez les données.
Provisionnez des réseaux cloud virtuels (VCN), un cluster de recherche Oracle Cloud Infrastructure et une instance de machine virtuelle.
Reportez-vous à la section Explorer davantage pour obtenir un lien vers un tutoriel qui explique comment créer la pile.
- Créez une clé secrète OCI Vault.
Les agents OCI Generative AI exigent que vous créiez une clé secrète afin qu'Oracle Cloud Infrastructure Search puisse stocker les noms utilisateur et les mots de passe dans OCI Vault.
- Configurez la base de connaissances et l'agent des agents OCI Generative AI.
Créez une base de connaissances en choisissant le cluster de recherche Oracle Cloud Infrastructure comme source de données et en indiquant les index à utiliser. Créez un agent RAG OCI Generative AI à l'aide de cette base de connaissances.
Agents OCI Generative AI avec Oracle Database 23ai
Ce déploiement utilise Oracle Autonomous Database 23ai avec Vector Search 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'IA exécute des recherches de similarité pour trouver les faits les plus pertinents à transmettre aux agents OCI Generative AI. Ces agents exécutent ensuite des modèles de classement et utilisent le grand modèle de langage (LLM) 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 tiers pour fournir des résultats de recherche ciblés. Ce déploiement nécessite de créer et de déployer du code pour l'assimilation des données, de générer des incorporations vectorielles et de créer des index vectoriels.
genai-vector-search-oracle.zip
Pour créer ce déploiement, procédez comme suit :
- Créez une instance Oracle Database 23ai :
- Dans le menu de navigation de la console de service OCI, cliquez sur Oracle Database, puis sélectionnez Autonomous Data Warehouse.
- Cliquez sur Créer une base de données autonome.
- Nommez la base de données et sélectionnez 23ai comme version de base de données. Indiquez d'autres paramètres ou acceptez les valeurs par défaut, puis cliquez sur Créer une instance Autonomous Database.
- Créez un coffre pour stocker les informations d'identification de base de données, puis créez une clé :
- Dans le menu de navigation de la console de service OCI, cliquez sur Identité et sécurité, puis sélectionnez Coffre.
- Cliquez sur Créer un coffre.
- Nommez le coffre. Indiquez d'autres paramètres ou acceptez les valeurs par défaut, puis cliquez sur Créer un coffre.
- Dans le coffre que vous venez de créer, cliquez sur Créer une clé.
- Nommez la clé. Indiquez d'autres paramètres ou acceptez les valeurs par défaut, puis cliquez sur Créer une clé.
- Créez une connexion Database Tools :
- Dans le menu de navigation de la console de service OCI, cliquez sur Services de développeur, puis sélectionnez Connexions.
- Cliquez sur Créer une connexion.
- Nommez la connexion, sélectionnez Oracle Autonomous Database en tant que service cloud de base de données, sélectionnez le compartiment et indiquez un nom utilisateur. Indiquez d'autres paramètres ou acceptez les valeurs par défaut, puis cliquez sur Créer une clé secrète de mot de passe.
- Nommez la clé secrète de mot de passe, sélectionnez le compartiment, le compartiment de coffre et le compartiment de clé de cryptage, puis indiquez un mot de passe. Cliquez sur Créer.
- Sélectionnez Portefeuille SSO comme format de portefeuille, puis cliquez sur Créer une clé secrète de contenu de portefeuille, nommez la clé secrète de contenu de portefeuille, sélectionnez les compartiments de coffre et de clé de cryptage et assurez-vous que l'option Extraire le portefeuille régional d'Autonomous Database est sélectionnée. Cliquez sur Créer.
- Cliquez sur Créer dans la fenêtre Créer une connexion. La connexion nouvellement créée est répertoriée sous l'onglet Connexion de la page de détails de la base de données associée.
- Créez des vecteurs à l'aide de l'intégration de modèles à l'aide de PL/SQL :
- Configurez des informations d'identification pour autoriser l'accès aux ressources OCI, telles que le service OCI Gen AI et les informations d'identification pour DBMS_CLOUD. Vous aurez besoin d'OCI d'un fichier de configuration avec api_keys privé et public, une empreinte digitale, un utilisateur, une location et 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; /
- Utilisez la fonctionnalité de base de données intégrée avec les fichiers PDF stockés 23ai pour découper les 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;
- Créez des incorporations vectorielles à l'aide d'un large éventail d'options d'intégration, telles que le modèle cohere.embed-multilingual-v3.0 via 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 );
- Créez une fonction pour interroger les tables vectorielles et effectuer les opérations de recherche AI 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;
- Configurez des informations d'identification pour autoriser l'accès aux ressources OCI, telles que le service OCI Gen AI et les informations d'identification pour DBMS_CLOUD. Vous aurez besoin d'OCI d'un fichier de configuration avec api_keys privé et public, une empreinte digitale, un utilisateur, une location et un ocid de compartiment.
- Créez la base de connaissances à l'aide d'Oracle Database 23ai :
- Dans le menu de navigation de la console de service OCI, cliquez sur Analyse et IA, puis sélectionnez Agents d'IA générative.
- Cliquez sur Bases de connaissances, puis sur Créer une base de connaissances.
- Nommez la base de connaissances, sélectionnez Recherche de vecteur Oracle AI comme type de banque de données et indiquez la connexion à l'outil de base de données et la fonction de recherche, puis cliquez sur Créer une base de connaissances.
- Créez un agent d'IA générative avec la base de connaissances Oracle Database 23 AI :
- Dans le menu de navigation de la console de service OCI, cliquez sur Analyse et IA, puis sélectionnez Agents.
- Cliquez sur Créer un agent.
- 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 devez voir qu'il est actif et prêt pour la discussion.