RAG Tool HeatWave MySQL Linee guida per gli agenti AI generativa

Puoi trasferire le tue integrazioni vettoriali (BYO) da un database HeatWave MySQL a OCI Generative AI Agents.

In questo argomento vengono descritte le informazioni di supporto, i task dei prerequisiti e le linee guida per l'utilizzo di HeatWave MySQL come opzione di dati per gli agenti AI generativa. Le informazioni fornite presumono che tu abbia familiarità con le reti cloud virtuali (VCN) e le subnet, HeatWave MySQL, e che tu crei connessioni utilizzando il servizio Strumenti di database

Passo 1. Rivedi informazioni di supporto

Prima di utilizzare una memoria di vettore HeatWave MySQL come opzione di dati per gli agenti AI generativa, assicurarsi di comprendere gli elementi supportati e completare i task necessari.

Supporto database

Gli agenti AI generativi supportano gli incorporamenti vettoriali BYO da:

  • Sistemi di database MySQL HeatWave. Qualsiasi versione dell'innovazione non obsoleta.
  • Database HeatWave MySQL gestiti dall'utente in esecuzione sulle istanze di OCI Compute

Supporto cross-region e cross-tenancy
Quando si utilizzano gli agenti AI generativa in un'area ospitata, è possibile connettersi a un database HeatWave MySQL in:
  • Un'altra area all'interno della stessa tenancy. Abilita la connettività creando una connessione agli strumenti di database nell'area in cui è disponibile il servizio agente.
  • Altra tenancy. Abilitare la connettività creando una connessione agli strumenti di database nella tenancy in cui è disponibile il servizio agente.

Per configurare le impostazioni di rete, vedere Requisiti di rete (database cross-region e cross-tenancy) al Passo 3. Configurare i requisiti di rete e di sicurezza.

Per creare una connessione, immettere manualmente la stringa di connessione come descritto nel Passo 5. Creare connessioni agli strumenti di database.

Passo 2. Aggiungi gruppo dinamico e criteri

Oltre a concedere all'utente l'accesso a tutte le risorse degli agenti di intelligenza artificiale generativa come descritto in Aggiunta di criteri prima di poter utilizzare il servizio, è necessario creare un gruppo dinamico con accesso agli strumenti di database.

  1. Creare un gruppo dinamico e aggiungere la regola della corrispondenza seguente.

    ALL {resource.type='genaiagent'}

    Per assistenza, vedere Creazione di un gruppo dinamico.

  2. Consente di concedere autorizzazioni al gruppo dinamico.

    • Scrivere i criteri riportati di seguito, che possono essere utilizzati con il dominio di Identity predefinito.

      allow dynamic-group <dynamic-group-name> 
      to read database-tools-family in compartment <compartment-name>
      
      allow dynamic-group <dynamic-group-name> to use database-tools-connections in compartment <compartment-name>
      
    • Utilizzare i criteri seguenti con un dominio di Identity non predefinito, fornendo il nome di dominio Oracle Identity Cloud Service (IDCS) e il nome del gruppo dinamico:

      allow dynamic-group '<idcs-domain-name>/<dynamic-group-name>' 
      to read database-tools-family in compartment <compartment-name>
      
      allow dynamic-group '<idcs-domain-name>/<dynamic-group-name>' 
      to use database-tools-connections in compartment <compartment-name>
      
Suggerimento

Se la connessione di Database Tools non è accessibile dopo aver scritto i criteri precedenti, potrebbe verificarsi un problema con il token di sessione del principal risorsa. Provare a utilizzare le impostazioni dei criteri riportate di seguito senza fare affidamento sui gruppi dinamici.

allow any-user to read database-tools-family in compartment <compartment-name> where any {request.principal.type='genaiagent'}

allow any-user to use database-tools-connections in compartment <compartment-name> where any {request.principal.type='genaiagent'}
Passo 3. Configurare i requisiti di rete e di sicurezza

Eseguire questi task se non sono state già configurate o create le risorse necessarie.

Requisiti di networking
  • Aggiungere il database HeatWave MySQL alla subnet privata di una VCN.
  • Impostare le seguenti proprietà per la regola di entrata della subnet privata:
    • Tipo di origine: CIDR
    • Source CIDR: The VCN's IPv4 CIDR Block (such as 10.0.0.0/16)
    • Protocollo IP: TCP
    • Intervallo di porte di origine: Tutto
    • Intervallo di porte di destinazione: 3306
Requisiti di rete (database cross-region e cross-tenancy)
  • Impostare due VCN con CIDR non sovrapposti. Per configurare le impostazioni di rete, vedere Peering VCN remoto.
  • Nella VCN del database HeatWave MySQL, assicurarsi di aggiungere la regola di entrata per il CIDR VCN della connessione agli strumenti del database per accedere alla porta del database 3306.

Esempio di database tra più aree: è possibile connettersi a un database che si trova in un'area diversa da quella in cui è in esecuzione il servizio Agenti AI generativa. Ad esempio:

  • Il servizio agente è in esecuzione nella tenancy A nell'area ORD.

  • Il database HeatWave MySQL viene distribuito nell'area PHX.

  • Per accedere al database, configurare i gateway di instradamento dinamico (DRG) in entrambe le aree e impostare una connessione agli strumenti di database in ORD per connettersi al database in PHX.

Esempio di database cross-tenancy: è possibile connettersi a un database che si trova in una tenancy diversa dal servizio Agenti AI generativa. Ad esempio:

  • Il servizio agente è in esecuzione nella tenancy A nell'area ORD.

  • Il database HeatWave MySQL viene distribuito nella tenancy B nell'area PHX.

  • Per accedere al database, configurare i gateway di instradamento dinamico (DRG) in entrambe le tenancy e impostare una connessione agli strumenti di database nella tenancy A (area OR) per connettersi al database nella tenancy B (area PHX).

La configurazione di rete cross-tenancy si applica indipendentemente dal fatto che il servizio di database e il servizio agente si trovino nella stessa area o in aree diverse.

Requisiti di sicurezza del vault

Per memorizzare i segreti per il database HeatWave MySQL, ad esempio la password per accedere al database, è necessario un vault in OCI Vault.

Creare il vault nello stesso compartimento della connessione agli strumenti del database. Ciò si applica AI database nella stessa area del servizio Agenti AI generativa e AI database cross-region o cross-tenancy.

  1. Creare un vault.
  2. Creare una chiavi di cifratura primaria.
  3. Nel vault creare un segreto per la password del database.
Passo 4. Impostazione di una tabella di database e di una procedura

Nel database HeatWave MySQL creato per l'uso con gli agenti AI generativa, creare una tabella di database con determinati campi obbligatori e impostare una procedura di database che restituisca i risultati della ricerca vettoriale dalle query.

Tabella di database
Creare una tabella con i campi riportati di seguito.

Campi obbligatori

  • DOCID: un ID assegnato a ogni record o documento
  • BODY: il contenuto effettivo che si desidera venga cercato dall'agente
  • VECTOR: vettore generato da un modello di incorporamento basato sul contenuto body

Campi facoltativi

  • CHUNKID: un ID per il documento chunked, nel caso in cui il documento è più grande di 512 token.
  • URL: un riferimento URL per il contenuto, se disponibile.
  • TITLE: Il titolo del contenuto body
  • PAGE_NUMBERS: i numeri di pagina per il contenuto, se disponibili.
Suggerimento

È possibile creare integrazioni di testo in OCI Generative AI.
Procedura database

Impostare una procedura di database in grado di restituire i risultati della ricerca vettoriale da ogni query. Ecco i requisiti:

Parametri di input

  • p_query: la stringa di query
  • top_k: numero di risultati principali

Tipo restituito

  • JSON

Requisiti

  • Il modello di incorporamento utilizzato per il campo di query della funzione deve essere lo stesso del modello di incorporamento che trasforma il contenuto BODY della tabella in incorporamenti vettoriali.

  • I campi restituiti dalla funzione devono corrispondere ai campi obbligatori della tabella (DOCID, BODY e SCORE) e facoltativi (CHUNKID, TITLE e URL).

    Il contenuto BODY viene elaborato da un modello di incorporamento per produrre un VECTOR per ogni contenuto. La funzione calcola le distanze tra il vettore di query e ogni VECTOR, restituendo le righe top_k. Il campo SCORE rappresenta le distanze tra il vettore di query e VECTOR da BODY.

  • Se i nomi dei campi restituiti della funzione non corrispondono ai nomi dei campi della tabella, è necessario utilizzare gli alias nella funzione.

Esempio

Di seguito è riportato un esempio di procedura di database.

-- Check if database exists, create it if not
CREATE DATABASE IF NOT EXISTS vector_store;
 
-- Switch to the database
USE vector_store;
 
-- Drop procedure if it exists (optional, for recreation)
DROP PROCEDURE IF EXISTS sample_search;
 
-- Create the procedure
CREATE PROCEDURE vector_store.sample_search(
  IN p_query TEXT,
  IN top_k INT UNSIGNED,
  OUT context JSON
)
BEGIN
  DECLARE i INT DEFAULT 0;
  DECLARE temp_json JSON DEFAULT JSON_ARRAY();
  -- Instead of using a temporary table, build the JSON directly
  SET i = 99; -- Start with highest scores
  -- Generate the top k results directly
  WHILE i >= (100 - top_k) AND i >= 0 DO
    SET temp_json = JSON_ARRAY_APPEND(temp_json, '$',
      JSON_OBJECT(
        'SCORE', FORMAT(i * 0.01, 2),
        'DOCID', i,
        'BODY', CONCAT('The sample text serves as a standardized sample for conducting comprehensive testing and performance evaluation in the environment.
Key Testing Objectives: Functionality verification, Performance assessment and System behavior analysis', i)
      )
    );
    SET i = i - 1;
  END WHILE;
  SET context = temp_json;
END
Passo 5. Crea connessioni agli strumenti di database

In OCI, utilizzare il servizio Strumenti di database per creare connessioni riutilizzabili a un database HeatWave MySQL tramite un endpoint privato.

Eseguire questi task per stabilire una connessione al database.

  1. Ottenere le seguenti informazioni, se non si dispone già delle informazioni necessarie per creare una connessione.

    Nella console aprire il menu di navigazione e selezionare Database. In HeatWave MySQL, selezionare Sistemi DB.

    • Compartimento in cui viene creato il sistema DB
    • Nome del sistema DB
    • Per un database cross-region o cross-tenancy: l'indirizzo IP privato e la porta del database
    • Nome del segreto vault per la password dell'utente del database
  2. Nel menu di navigazione selezionare Developer Services. In Strumenti di database selezionare Connessioni per creare una connessione.

    1. Immettere un nome per la connessione.
    2. Selezionare il compartimento in cui creare la connessione.

      Si consiglia di creare la connessione degli strumenti del database nello stesso compartimento del segreto vault per la password dell'utente del database.

    3. Utilizzare una delle seguenti opzioni per specificare le informazioni di connessione.
      • Fare clic sull'opzione Seleziona database per selezionare un sistema DB e consentire al servizio di recuperare le informazioni di connessione.
        1. Per Database cloud service, selezionare MySQL Database.
        2. Selezionare il compartimento in cui viene creato il sistema DB.
        3. Selezionare il nome del sistema DB.
        4. Assicurarsi che il campo Stringa di connessione venga popolato automaticamente con la stringa di connessione corretta. Si tratta dell'indirizzo IP privato e della porta del database dell'endpoint primario del sistema DB. Ad esempio:

          mysql://10.0.1.156:3306

      • Utilizzare l'opzione Immettere informazioni sul database per un database tra più aree o tra più tenancy e immettere le informazioni di connessione manualmente.
        1. Per Tipo di connessione, selezionare MySQL.
        2. In Stringa di connessione, immettere la stringa di connessione.
  3. Completare le altre informazioni per creare una connessione agli strumenti di database al database HeatWave MySQL tramite un endpoint privato.

    1. Immettere il nome utente.

      Assicurarsi che l'utente del database disponga delle autorizzazioni necessarie ed eseguire la procedura del database preparata al Passo 4. Impostare una tabella di database e una procedura.

    2. Selezionare il compartimento in cui è stato creato il segreto vault per la password dell'utente del database.

      Se non si dispone di un segreto vault, selezionare Crea segreto password e creare un vault. Quindi creare un segreto per memorizzare la password nel vault. Si consiglia di creare il vault e il segreto nello stesso compartimento della connessione agli strumenti del database.

    3. Abilitare l'opzione Accedi al database tramite una rete privata e fare clic su Seleziona endpoint privato. Selezionare quindi il compartimento e l'endpoint privato nel database.

      Se non si dispone di un endpoint privato, selezionare Crea endpoint privato e creare un endpoint utilizzando la stessa VCN e subnet privata del database.