DBMS_CLOUD_AI - Pacote

O pacote DBMS_CLOUD_AI, com Select AI, facilita e configura a tradução de prompts de linguagem natural para gerar, executar e explicar instruções SQL. Além disso, permite geração aumentada de recuperação e interações baseadas em linguagem natural, incluindo bate-papo com LLMs.

Pré-requisitos

Uma conectividade de saída deve ter sido configurada usando um gateway NAT pelo administrador da frota, conforme descrito abaixo:
  • Crie um gateway NAT na VCN (Rede Virtual na Nuvem) em que seus recursos do Autonomous AI Database residem seguindo as instruções em Criar um Gateway NAT na Documentação do Oracle Cloud Infrastructure.
  • Após criar o gateway NAT, adicione uma regra da rota e uma regra da segurança da saída a cada sub-rede (na VCN) na qual os recursos do Autonomous AI Database residem para que esses recursos possam usar o gateway para obter a chave pública da sua instância doAzure AD
    1. Vá para a página Detalhes da Sub-rede da sub-rede.
    2. Na guia Informações da Sub-rede, clique no nome da Tabela de Rota da sub-rede para exibir sua respectiva página Detalhes da Tabela de Rota.
    3. Na tabela de Regras de Roteamento existentes, verifique se já existe uma regra com as seguintes características:
      • Destino: 0.0.0.0/0
      • Tipo de Destino: Gateway NAT
      • Alvo: O nome do gateway NAT recém-criado na VCN

      Se essa regra não existir, clique em Adicionar Regras de Rota e adicione uma regra de roteamento com essas características.

    4. Retorne à página Detalhes da Sub-rede da sub-rede.
    5. Na tabela Listas de Segurança da sub-rede, clique no nome da lista de segurança da sub-rede para exibir a página Detalhes da Lista de Segurança.
    6. No menu lateral, em Recursos, clique em Regras de Saída.
    7. Na tabela de Regras de Saída existentes, verifique se já existe uma regra com as seguintes características:
      • Tipo de Destino: CIDR
      • Destino: 0.0.0.0/0
      • Protocolo IP: TCP
      • Faixa de Portas de Origem: 443
      • Faixa de Portas de Destino: Todas

      Se essa regra não existir, clique em Adicionar Regras de Saída e adicione uma regra de saída com essas características.

As definições de Proxy HTTP em seu ambiente devem permitir que o banco de dados acesse o provedor de serviços em nuvem.

Essas definições são definidas pelo administrador da frota ao criar a infraestrutura do Exadata Cloud@Customer, conforme descrito em Usando a Console para Provisionar o Exadata Database Service on Cloud@Customer.

Observação:

A configuração de rede, incluindo o Proxy HTTP, só poderá ser editada até que o Exadata Infrastructure esteja no estado Exige Ativação. Depois de ativado, você não poderá editar essas configurações.

A configuração de um Proxy HTTP para uma Infraestrutura do Exadata já provisionada precisa de uma Solicitação de Serviço (SR) no My Oracle Support. Consulte Criar uma Solicitação de Serviço no My Oracle Support para obter detalhes.

Resumo de Subprogramas DBMS_CLOUD_AI

Esta seção abrange os subprogramas DBMS_CLOUD_AI fornecidos com o Autonomous AI Database.

Subprograma Descrição

Procedimento CREATE_PROFILE

Esse procedimento cria um novo perfil AI para traduzir prompts de linguagem natural para instruções SQL.

Procedimento DISABLE_PROFILE

Este procedimento desativa um perfil do AI no banco de dados atual.

Procedimento DROP_PROFILE

Este procedimento elimina um perfil do AI existente.

Procedimento ENABLE_PROFILE

Esse procedimento permite que um perfil do AI seja usado no banco de dados atual.

Função GENERATE

Esta função gera uma instrução SQL usando AI para traduzir.

Procedimento SET_ATTRIBUTE

Este procedimento define atributos de perfil do AI.

Procedimento SET_PROFILE

Este procedimento define o perfil do AI para o banco de dados atual.

Procedimento CREATE_PROFILE

O procedimento cria um novo perfil AI para traduzir prompts de linguagem natural para instrução SQL.

Sintaxe

DBMS_CLOUD_AI.CREATE_PROFILE
   profile_name        IN  VARCHAR2,
   attributes          IN  CLOB      DEFAULT NULL,
   status              IN  VARCHAR2  DEFAULT NULL,
   description         IN  CLOB      DEFAULT NULL
);

Parâmetros

Parâmetro Descrição

profile_name

Um nome para o perfil AI. O nome do perfil deve seguir as regras de nomenclatura do identificador Oracle SQL. O tamanho máximo do nome do perfil é de 125 caracteres.

Este é um parâmetro obrigatório.

attributes

Atributos de perfil no formato JSON. Consulte Atributos de Perfil do AI para obter mais detalhes.

O valor default é NULL.

status

Status do perfil.

O valor default é ativar.

description

Descrição do perfil AI.

O valor default é NULL.

Exemplo

BEGIN
     DBMS_CLOUD_AI.CREATE_PROFILE(
          profile_name    => 'OpenAI,
          attributes      => JSON_OBJECT('provider' value 'openai',
                                         'credential_name' value 'openai_cred'),
          description     => 'AI profile to use OpenAI for SQL translation'
     );
END;
/

Procedimento DROP_PROFILE

O procedimento elimina um perfil do AI existente. Se o perfil não existir, o procedimento gerará um erro.

Sintaxe

DBMS_CLOUD_AI.DROP_PROFILE(
       profile_name        IN   VARCHAR2,
       force               IN   BOOLEAN DEFAULT FALSE
 );

Parâmetros

Parâmetro Descrição

profile_name

O nome do perfil AI

force

Se TRUE, o procedimento ignorará erros se o perfil do AI não existir.

O valor padrão desse parâmetro é FALSE.

Exemplo

BEGIN
     DBMS_CLOUD_AI.DROP_PROFILE(profile_name => 'OPENAI');
END;
/

Observações sobre Uso

Use force para eliminar um perfil e ignorar erros se o perfil do AI não existir.

Procedimento ENABLE_PROFILE

Esse procedimento ativa o perfil do AI que o usuário especifica. O procedimento altera o status do perfil do AI para ENABLED.

Sintaxe

DBMS_CLOUD_AI.ENABLE_PROFILE(
     profile_name         IN   VARCHAR2
 );

Parâmetros

Parâmetro Descrição

profile_name

Nome do perfil AI a ser ativado

Esse parâmetro é obrigatório.

Exemplo para Ativar o Perfil do AI

BEGIN
     DBMS_CLOUD_AI.ENABLE_PROFILE(
         profile_name    => 'OPENAI'
     );
END;
/

Procedimento DISABLE_PROFILE

Este procedimento desativa o perfil AI no banco de dados atual. O status do perfil do AI é alterado para DISABLED por este procedimento.

Sintaxe

DBMS_CLOUD_AI.DISABLE_PROFILE(
      profile_name  IN  VARCHAR2
);

Parâmetros

Parâmetro Descrição

profile_name

Nome do perfil AI.

Esse parâmetro é obrigatório.

Exemplo

BEGIN
     DBMS_CLOUD_AI.DISABLE_PROFILE(
         profile_name    => 'OPENAI'
     );
END;
/

Procedimento SET_ATTRIBUTE

Esse procedimento permite definir atributos de perfil do AI.

Sintaxe

DBMS_CLOUD_AI.SET_ATTRIBUTE(
      profile_name         IN   VARCHAR2,
      attribute_name       IN   VARCHAR2,
      attribute_value      IN   CLOB
);

Parâmetros

Somente o proprietário pode definir ou modificar os atributos do perfil AI. Para obter uma lista de atributos suportados, consulte Atributos de Perfil.

Parâmetro Descrição

profile_name

Nome do perfil AI para o qual você deseja definir os atributos.

Esse parâmetro é obrigatório.

attribute_name

Nome do atributo de perfil AI

Esse parâmetro é obrigatório.

attribute_value

Valor do atributo de perfil.

O valor default é NULL.

Exemplo

BEGIN
 DBMS_CLOUD_AI.SET_ATTRIBUTE(
   profile_name    => 'OPENAI',
   attribute_name  => 'credential_name',
   attribute_value => 'OPENAI_CRED_NEW'
 );
END;
/

Procedimento SET_PROFILE

Este procedimento define o perfil AI para a sessão atual.

Depois de definir um perfil AI para a sessão do banco de dados, qualquer instrução SQL com o prefixo SELECT AI será considerada um prompt de linguagem natural. Dependendo da ação especificada com o prefixo AI, uma resposta é gerada usando o AI. Para usar o prefixo AI, consulte Usar Palavra-chave AI para Informar Prompts. Opcionalmente, é possível substituir os atributos de perfil ou modificar atributos especificando-os no formato JSON. Consulte Procedimento SET_ATTRIBUTE para definir os atributos.

O perfil AI só poderá ser definido para a sessão atual se o proprietário do perfil AI for o usuário da sessão.

Para definir um perfil do AI para todas as sessões de um usuário de banco de dados específico ou todas as sessões de usuário no banco de dados, considere o uso de um trigger de evento de banco de dados para o evento AFTER LOGON no usuário específico ou em todo o banco de dados. Consulte Instrução CREATE TRIGGER em Oracle Database 19c Database PL/SQL Language Reference ou Oracle Database 26ai Database PL/SQL Language Reference para obter mais detalhes.

Sintaxe

DBMS_CLOUD_AI.SET_PROFILE(
    profile_name      IN  VARCHAR2,
);

Parâmetros

Parâmetro Descrição

profile_name

Um nome para o perfil AI na sessão atual.

Esse parâmetro é obrigatório.

Exemplo


   BEGIN
        DBMS_CLOUD_AI.SET_PROFILE(
          profile_name    => 'OPENAI'
        );
   END;
   /

Função GENERATE

Esta função fornece tradução de IA de maneira sem monitoramento de estado. Com seu perfil do AI existente, você pode usar essa função para executar as ações suportadas, como showsql, narrate ou chat. A ação default é showsql.

A substituição de alguns ou todos os atributos de perfil também é possível usando essa função.

Sintaxe

DBMS_CLOUD_AI.GENERATE(
    prompt          IN  CLOB,
    profile_name    IN  VARCHAR2 DEFAULT NULL,
    action          IN  VARCHAR2 DEFAULT NULL,
    attributes      IN  CLOB     DEFAULT NULL
) RETURN CLOB;

Parâmetros

Parâmetro Descrição

prompt

Prompt de linguagem natural para traduzir usando IA.

O prompt pode incluir SELECT AI <action> como prefixo. A ação também pode ser fornecida separadamente como um parâmetro de "ação". O action fornecido no prompt substitui o parâmetro "action". A ação padrão é showsql.

Esse parâmetro é obrigatório.

profile_name

O nome do perfil AI. Esse parâmetro será opcional se um perfil do AI já estiver definido na sessão usando DBMS_CLOUD_AI.SET_PROFILE.

O valor default é NULL.

As seguintes condições se aplicam:
  • Se um perfil for definido na sessão atual, o usuário poderá omitir o argumento profile_name na função DBMS_CLOUD_AI.GENERATE.
  • Se o argumento profile_name for fornecido na função DBMS_CLOUD_AI.GENERATE, ele substituirá qualquer valor definido na sessão usando o procedimento DBMS_CLOUD_AI.SET_PROFILE.
  • Se não houver um perfil definido na sessão usando o procedimento DBMS_CLOUD_AI.SET_PROFILE, o argumento profile_name deverá ser fornecido na função DBMS_CLOUD_AI.GENERATE.

Observação:

Para o Database Actions, você pode especificar o argumento profile_name em DBMS_CLOUD_AI.GENERATE ou pode executar duas etapas como um script PL/SQL: DBMS_CLOUD_AI.SET_PROFILE e DBMS_CLOUD_AI.GENERATE.
EXEC DBMS_CLOUD_AI.set_profile('OPENAI');

-----------------------------------------------
SELECT DBMS_CLOUD_AI.GENERATE(prompt       => 'how many customers',
                              profile_name => 'OPENAI',
                              action       => 'showsql')
FROM dual;

------------------------------------------------
SELECT DBMS_CLOUD_AI.GENERATE(prompt       => 'how many customers',
                              profile_name => 'OPENAI',
                              action       => 'narrate')
FROM dual;
-------------------------------------------
SELECT DBMS_CLOUD_AI.GENERATE(prompt       => 'what is oracle autonomous database',
                              profile_name => 'OPENAI',
                              action       => 'chat')
FROM dual;
Consulte Executando Instruções SQL no Editor de Código para obter mais informações.
action

Ação para traduzir prompt natural usando IA. As ações suportadas incluem showsql (padrão), narrate e chat. As descrições das ações são incluídas em Usar Palavras-chave do AI para Informar Prompts.

Observação:

Esta função não suporta a ação runsql. Se você fornecer a ação runsql, ela retornará o seguinte erro:
ORA-20000: runsql action is not supported by generate function ORA-06512: at "C##CLOUD$SERVICE.DBMS_CLOUD", line xxxx 
ORA-06512: at "C##CLOUD$SERVICE.DBMS_CLOUD_AI", line 2696 ORA-06512: at line x
attributes Substitua atributos de perfil de IA específicos fornecendo atributos no formato JSON. Consulte Atributos de Perfil para obter mais detalhes.

Exemplos

Os exemplos a seguir ilustram as ações showsql, narrate e chat que podem ser usadas com a função DBMS_CLOUD_AI.GENERATE.

Veja a seguir um exemplo com a ação showsql:

SELECT DBMS_CLOUD_AI.GENERATE(prompt       => 'how many customers',
                              profile_name => 'OPENAI',
                              action       => 'showsql')
FROM dual;

Veja a seguir um exemplo com a ação narrate:

SELECT DBMS_CLOUD_AI.GENERATE(prompt       => 'how many customers',
                              profile_name => 'OPENAI',
                              action       => 'narrate')
FROM dual;

Veja a seguir um exemplo com a ação chat:

SELECT DBMS_CLOUD_AI.GENERATE(prompt       => 'what is oracle autonomous database',
                              profile_name => 'OPENAI',
                              action       => 'chat')
FROM dual;

Função GENERATE_SYNTHETIC_DATA

Use este procedimento para gerar dados sintéticos para uma única tabela, várias tabelas ou um esquema completo.

Veja a seguir a sintaxe para gerar dados sintéticos para uma única tabela.

Sintaxe

DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
  profile_name        IN  VARCHAR2,
  object_name         IN  DBMS_ID,
  owner_name          IN  DBMS_ID,
  record_count        IN  NUMBER,
  user_prompt         IN  CLOB DEFAULT NULL,
  params              IN  CLOB DEFAULT NULL
);

Veja a seguir a sintaxe para gerar dados sintéticos para várias tabelas.

DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
  profile_name        IN  VARCHAR2,
  object_list         IN  CLOB,
  params              IN  CLOB DEFAULT NULL
);

Se você não quiser que os dados da tabela ou os documentos de pesquisa vetorial sejam enviados para um LLM, um usuário com privilégios de administrador poderá desativar esse acesso para todos os usuários do banco de dados fornecido. Isso, na verdade, desativa a ação narrate.

Parâmetros

Parâmetro Obrigatória Descrição

profile_name

Sim

O perfil de IA que contém as informações necessárias do serviço LLM. Isso pode ser criado pelo CREATE_PROFILE Procedure.

object_name

Sim Especifique um nome de tabela para preencher dados sintéticos.
  • Os privilégios SELECT e INSERT nos objetos de tabela são necessários para o usuário que os está usando.
  • A tabela está vazia ou contém registros.
owner_name No

Especifique o usuário do banco de dados que possui o objeto referenciado. Se nenhum proprietário específico for fornecido, o procedimento utilizará como padrão o esquema do usuário que o está executando.

record_count No

O número de registros a serem gerados sinteticamente.

user_prompt

No Informações adicionais que um usuário pode mencionar para gerar dados sintéticos. Por exemplo, para gerar um registro para uma tabela chamada MOVIE com uma coluna release_date, a user_prompt pode ser:

a data de lançamento dos filmes deve ser em 2019

params

No

Atributos opcionais fornecidos no formato de string do objeto JSON para modificar o comportamento de uma API. Consulte Parâmetros Opcionais.

object_list

Sim Use este parâmetro para gerar dados sintéticos em várias tabelas. Esse parâmetro recebe informações do objeto da tabela junto com seus argumentos e contém os mesmos argumentos fornecidos na tabela única. Consulte object_list Parâmetros.

Parâmetros Opcionais

Parâmetro Tipo de Dados do Valor Valor Descrição

sample_rows

Número

0 <= sample_rows <= 100

Especifique o número de linhas da tabela a serem usadas como amostra para orientar o LLM na geração de dados.

O valor 0 significa que nenhuma linha de amostra será usada. O valor padrão é 0.

table_statistics

Booliano

  • True
  • False

Ative ou desative o uso de informações de estatísticas de tabela.

O valor padrão é False.

priority

String

Valores válidos:

  • HIGH
  • MEDIUM
  • LOW

Atribua um valor de prioridade que defina o número de solicitações paralelas enviadas ao LLM para gerar dados sintéticos. Tarefas com maior prioridade consumirão mais recursos de banco de dados e serão concluídas com mais rapidez.

O valor padrão é HIGH

  • HIGH: Especifica o número de solicitações paralelas do LLM com base na contagem de ECPUs do banco de dados (ou contagem de OCPUs se o banco de dados usar OCPUs).

  • MEDIUM: Define o número de processos simultâneos de acordo com o limite de simultaneidade para o serviço Médio. O valor padrão é 4.

  • LOW: Executa o job do pipeline em uma ordem serial, sem processamento paralelo.

O número máximo de processos paralelos simultâneos usados para geração de dados sintéticos é limitado a 64.

comments

Booliano
  • True
  • False

Ative ou desative o envio de comentários ao LLM para orientar a geração de dados.

O valor padrão é False.

object_list Parâmetros

Parâmetro Tipo de Dados do Valor Obrigatória Descrição

owner

String

Sim

Especifica o usuário do banco de dados que possui o objeto que está sendo referenciado. Se nenhum proprietário específico for fornecido, o procedimento será padronizado para usar o esquema do usuário que o está executando.

name

String

No

Especifique um nome de tabela para preencher dados sintéticos. Os privilégios SELECT e INSERT nos objetos de tabela são necessários para que o usuário que usa a tabela it.The esteja vazio ou tenha registros nela.

record_count

Número

No

O número de registros a serem gerados sinteticamente. Forneça um número maior que 0.

Forneça record_count ou record_count_percentage.

record_count_percentage

Número

No

A porcentagem do número de registros a serem gerados sinteticamente. Forneça um número maior que 0.

Para um banco de dados de Clone de Metadados, no qual os metadados da tabela, incluindo estatísticas, são preservados, o parâmetro record_count_percentage é suportado.

Forneça record_count ou record_count_percentage.

Ao usar o parâmetro record_count_percentage, a contagem final de registros na tabela é calculada da seguinte forma:
Original_Num_Rows *
      record_count_percentage

user_prompt

String No Igual a user_prompt em Parâmetros. O user_prompt está associado a um objeto de tabela específico.

Exemplos

Os exemplos a seguir mostram a função DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA para gerar dados sintéticos para uma única tabela e várias tabelas. Para obter um exemplo completo e ver mais exemplos, consulte .

BEGIN
    DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
        profile_name => 'GENAI',
        object_name  => 'Director',
        owner_name   => 'ADB_USER',
        record_count => 5
    );
END;
/
PL/SQL procedure successfully completed.
BEGIN
    DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
        profile_name => 'GENAI',
        object_list => '[{"owner": "ADB_USER", "name": "Director","record_count":5},
                         {"owner": "ADB_USER", "name": "Movie_Actor","record_count":5},
                         {"owner": "ADB_USER", "name": "Actor","record_count":10},
                         {"owner": "ADB_USER", "name": "Movie","record_count":5,"user_prompt":"all movies are released in 2009"}]'
    );
END;
/
PL/SQL procedure successfully completed.

ENABLE_DATA_ACCESS Procedimento

Este procedimento permite o envio de dados para o LLM para os recursos Select AI aplicáveis, que é o comportamento padrão. Somente um administrador pode executar este procedimento.

Este procedimento controla o acesso aos dados para os seguintes recursos do Select AI:

  • Ação narrate
  • Geração Aumentada de Recuperações (RAG)
  • Geração de Dados Sintéticos

Sintaxe

DBMS_CLOUD_AI.ENABLE_DATA_ACCESS();

Parâmetros

Este procedimento não requer nenhum parâmetro.

Exemplo para Ativar o Acesso aos Dados

BEGIN
  DBMS_CLOUD_AI.ENABLE_DATA_ACCESS();
END;
/

DISABLE_DATA_ACCESS Procedimento

Este procedimento desativa o envio de dados ao LLM para os recursos Select AI aplicáveis. Somente um administrador pode executar este procedimento.

Este procedimento limita os seguintes recursos do Select AI:

  • Ação narrate
  • Geração Aumentada de Recuperações (RAG)
  • Geração de Dados Sintéticos

Sintaxe

DBMS_CLOUD_AI.DISABLE_DATA_ACCESS();

Parâmetros

Este procedimento não requer nenhum parâmetro.

Exemplo para Desativar o Acesso aos Dados

BEGIN
  DBMS_CLOUD_AI.DISABLE_DATA_ACCESS();
END;
/

CREATE_VECTOR_INDEX Procedimento

Este procedimento cria um índice vetorial no banco de dados vetorial especificado e o preenche com dados de um armazenamento de objetos usando um job do scheduler assíncrono.

Sintaxe

PROCEDURE CREATE_VECTOR_INDEX(                                              
   index_name          IN  VARCHAR2,                                        
   attributes          IN  CLOB      DEFAULT NULL,                          
   status              IN  VARCHAR2  DEFAULT NULL,                          
   description         IN  CLOB      DEFAULT NULL                           
); 

Parâmetros

Parâmetro Descrição

index_name

Nome do índice do vetor. O nome do índice do vetor deve seguir as regras de nomeação do identificador do Oracle SQL. O tamanho máximo do nome do armazenamento de vetores é de 125 caracteres.

Este é um parâmetro obrigatório.

attributes

Atributos personalizados para o índice vetorial no JSON. Para ver uma lista de parâmetros configuráveis, consulte .

O valor default é NULL.

status
Status do índice do vetor. Os valores possíveis são:
  • Enabled
  • Disabled

O valor padrão é Desabilitado.

description

Descrição do índice do vetor.

O valor default é NULL.

Exemplo

O exemplo a seguir demonstra como criar um índice de vetor e configurar os atributos como parâmetros JSON.

BEGIN                                                                
       DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(                                 
            index_name    => 'MY_INDEX'                                   
            attributes    => JSON_OBJECT(                                 
                       'vector_db_provider' value 'oracle',
                       'vector_table_name'  value 'oracle_mycollection',              
                       'profile_name'      value 'OCIGENAI',         
                       'location'          value                          
                         'https://objectstorage.us-phoenix-1.' ||         
                         'oraclecloud.com/n/mynamespace/b/mybucket',      
                       'object_store_credential_name'   value 'OS_CRED',              
                       'chunk_size'        value 2048,                    
                       'chunk_overlap'     value 256,                     
                       'refresh_rate'      value 720)                     
       );                                                                 
END;                                                                 
/

DROP_VECTOR_INDEX Procedimento

Este procedimento remove um índice de armazenamento de vetores. Normalmente, ele remove o objeto de índice de armazenamento de vetores e exclui o armazenamento de vetores. Se definido como FALSE, o argumento include_data garantirá que o procedimento só remova o objeto de índice do armazenamento de vetores enquanto mantém o armazenamento de vetores.

Sintaxe

PROCEDURE DROP_VECTOR_INDEX(                                                
   index_name          IN  VARCHAR2,           
   include_data        IN  BOOLEAN DEFAULT TRUE,                            
   force               IN  BOOLEAN DEFAULT FALSE                           
);

Parâmetros

Parâmetro Descrição

index_name

Nome do índice do vetor. O nome do índice do vetor deve seguir as regras de nomeação do identificador do Oracle SQL. O tamanho máximo do nome do armazenamento de vetores é de 125 caracteres.

Este é um parâmetro obrigatório.

include_data

Indica se o armazenamento de vetores e o índice de vetores do cliente devem ser excluídos juntamente com o objeto de índice de vetores.

Os valores possíveis são:

  • TRUE
  • FALSE

O valor-padrão é TRUE.

force

Indica se devem ser ignorados os erros que ocorrerem se o índice do vetor não existir.

Os valores possíveis são:

  • TRUE
  • FALSE

Se definido como TRUE, esse parâmetro ignorará todos os erros que ocorrerem se o índice do vetor não existir.

O valor padrão é FALSE.

Exemplo

BEGIN
DBMS_CLOUD_AI.DROP_VECTOR_INDEX(
        index_name     => 'MY_INDEX',
        include_data   => FALSE,
        force          => TRUE
     );                                                                 
END;                                                                 
/

DISABLE_VECTOR_INDEX Procedimento

Este procedimento desativa um objeto de índice vetorial no banco de dados atual. Quando desativado, um perfil AI não pode usar o índice de vetores e o sistema não carrega dados no armazenamento de vetores à medida que novos dados são adicionados ao armazenamento de objetos e não executa indexação, pesquisa ou consulta com base no índice.

Sintaxe

DBMS_CLOUD_AI.DISABLE_VECTOR_INDEX(                                              
   index_name       IN  VARCHAR2                                            
);

Parâmetros

Parâmetro Descrição

index_name

Nome do índice do vetor. O nome do índice do vetor deve seguir as regras de nomeação do identificador do Oracle SQL. O tamanho máximo do nome do armazenamento de vetores é de 125 caracteres.

Este é um parâmetro obrigatório.

Exemplo

Você pode desativar um índice vetorial fornecendo o nome do índice vetorial.

BEGIN                                                                
   DBMS_CLOUD_AI.DISABLE_VECTOR_INDEX(index_name => 'MY_INDEX');       
END;                                                                 
/

ENABLE_VECTOR_INDEX Procedimento

Este procedimento ativa ou ativa um objeto de índice de vetor desativado anteriormente. Geralmente, quando você cria um índice vetorial, por padrão ele é ativado de forma que o perfil do AI possa usá-lo para executar indexação e pesquisa.

Quando ativado, um índice de vetores permite que um perfil de IA o use para carregar novos dados de um armazenamento de objetos em um armazenamento de vetores em uma taxa de atualização especificada pelo usuário. Você pode especificar o parâmetro refresh_rate por meio da lista de objetos JSON. Para configurar os atributos JSON, consulte .

Sintaxe

DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX(                                              
   index_name       IN  VARCHAR2                                            
);

Parâmetros

Parâmetro Descrição

index_name

Nome do índice do vetor. O nome do índice do vetor deve seguir as regras de nomeação do identificador do Oracle SQL. O tamanho máximo do nome do armazenamento de vetores é de 125 caracteres.

Este é um parâmetro obrigatório.

Exemplo

Você pode ativar ou ativar um índice de vetor especificando o nome do índice de vetor da seguinte forma:

BEGIN                                                                
   DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX(index_name => 'MY_INDEX');       
END;                                                                 
/

UPDATE_VECTOR_INDEX Procedimento

Este procedimento atualiza um índice de armazenamento de vetores existente com um valor especificado do atributo de índice de vetores.
É sobrecarregado para aceitar:
  • valores de atributo de vários tipos.
  • atributos de índice de vetores como um documento JSON e atualiza um ou mais atributos de um índice de armazenamento de vetores existente com o par de nome e valor de atributo especificado.

Sintaxe

DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(
   index_name         IN  VARCHAR2,
   attributes         IN  CLOB
);

DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(
     index_name         IN  VARCHAR2,
     attribute_name     IN  VARCHAR2,
     attribute_value    IN  VARCHAR2
);

DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(                                                 
     index_name         IN  VARCHAR2,                                         
     attribute_name     IN  VARCHAR2,                                         
     attribute_value    IN  CLOB     DEFAULT NULL                           
  );

Parâmetros

Parâmetro Descrição

index_name

Nome do índice do vetor. O nome do índice do vetor deve seguir as regras de nomeação do identificador do Oracle SQL. O tamanho máximo do nome do armazenamento de vetores é de 125 caracteres.

Este é um parâmetro obrigatório.

attributes

Especifica atributos de índice vetorial no formato JSON.

Este é um parâmetro obrigatório.

attribute_name

Nome dos atributos personalizados especificados como parâmetros JSON no procedimento CREATE_VECTOR_INDEX.

Você não pode modificar os seguintes atributos:

  • location
  • vector_table_name
  • chunk_size
  • chunk_overlap
  • vector_distance_metric
  • vector_dimension

Este é um parâmetro obrigatório.

attribute_value

Valor especificado pelo usuário para o attribute_name personalizado. O valor pode ser do tipo CLOB, NUMBER ou VARCHAR2.

O valor default é NULL.

Observação:

Use o parâmetro attributes para especificar pares attribute_name e de valores no formato JSON ou os parâmetros attribute_name e attribute_value juntos.

Exemplos

BEGIN                                                                
   DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(                                 
      index_name       => 'MY_INDEX',                                   
      attribute_name   => 'object_storage_credential_name',                
      attribute_value  => 'NEW_CRED'                           
   );                                                                 
END;                                                                 
/

O exemplo a seguir aceita o tipo NUMBER como attribute_value.

BEGIN                                                                
   DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(                                 
      index_name       => 'MY_INDEX',                                   
      attribute_name   => 'match_limit',                
      attribute_value  => 10                           
   );                                                                 
END;                                                                 
/

O exemplo a seguir aceita o tipo VARCHAR2 como attribute_value.

BEGIN                                                                
   DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(                                 
      index_name       => 'MY_INDEX',                                   
      attribute_name   => 'profile_name',                
      attribute_value  => 'AI_PROF2'                           
   );                                                                 
END;                                                                 
/

O exemplo a seguir aceita attributes no formato JSON.

BEGIN
  DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(
    index_name => 'MY_VECTOR_INDEX', 
    attributes => '{"match_limit": 10, 
                    "refresh_rate": 30}'
  );
END;
/

Atributos de Perfil

Os atributos de um perfil do AI ajudam a gerenciar e configurar o comportamento do perfil do AI. Alguns atributos são opcionais e têm um valor padrão.

Atributos

Nome do Atributo Descrição

azure_deployment_name

Nome do modelo implantado do Azure OpenAI Service. O nome só pode incluir caracteres alfanuméricos, sublinhado (_) e hífen (-). O nome não pode terminar com um sublinhado (_) ou um hífen (-). Para saber como obter o azure_deployment_name, consulte Criar e implantar um recurso do Serviço OpenAI do Azure.

azure_resource_name

Nome do recurso do Serviço OpenAI do Azure. O nome do recurso só pode incluir caracteres alfanuméricos e hifens e não pode começar ou terminar com um hífen. Para saber como obter o azure_resource_name, consulte Criar e implantar um recurso do Serviço OpenAI do Azure.

comments

Inclua comentários de coluna nos metadados usados para traduzir prompts de linguagem natural usando o AI. O tipo de dados BOOLEAN é suportado. Os valores válidos são TRUE ou FALSE para uma string com o tipo de dados VARCHAR2.

Observação:

Os valores boolianos não são aplicáveis no procedimento DBMS_CLOUD_AI.SET_ATTRIBUTE ao definir um único atributo porque o parâmetro attribute_value é do tipo de dados CLOB.

conversation

Um atributo VARCHAR2 que indica se o histórico de conversas está ativado para um perfil. Somente o OpenAI e o Azure OpenAI Service suportam o histórico de conversas. Os valores válidos são true ou false. O valor default é false. Os valores não diferenciam maiúsculas de minúsculas.

credential_name

O nome da credencial para acessar as APIs do provedor de IA.

A credencial usando tokens de portador pode ser criada usando o nome do provedor como o nome do usuário e o token de portador como a senha.

É um atributo obrigatório. Consulte CREATE_CREDENTIAL Procedure.

embedding_model

O modelo de incorporação definido no perfil de IA. Veja a seguir os provedores de IA suportados para os modelos de incorporação com seus valores padrão:

  • OCI GenAI: cohere.embed-english-v3.0
  • OpenAI: text-embedding-ada-002
  • Azure OpenAI: text-embedding-ada-002
  • Cohere: embed-english-v2.0
  • Google: text-embedding-004

Observação:

O parâmetro embedding_model não é aplicável para Anthropic e Hugging Face.

max_tokens

Denota o número de tokens a serem previstos por geração. O padrão é 1024. Consulte Tokens e Tokenizers para obter mais detalhes.

model

O nome do modelo de IA que está sendo usado para gerar respostas.

Modelos suportados para:

  • OpenAI: gpt-4, gpt-4-0613, gpt-4-32k, gpt-4-32k-0613, gpt-3.5-turbo (padrão), gpt-3.5-turbo-0613, gpt-3.5-turbo-16k, gpt-3.5-turbo-16k-0613
  • Cohere: comando (padrão), command-nightly (experimental), command-light e command-light-nightly (experimental). Modelos menores e "leves" são mais rápidos, enquanto modelos maiores têm melhor desempenho. Modelos personalizados também podem ser fornecidos com seu ID completo.
  • OCI Generative AI: Para OCI Generative AI: cohere.command (padrão). Os modelos pré-treinados para a OCI Generative AI são todos suportados pela Select AI. Modelos personalizados também podem ser fornecidos com seus OCIDs completos.

    Para saber mais sobre os modelos suportados no OCI Generative AI, consulte Modelos Básicos Pré-treinados no Generative AI.

Observação:

Esse parâmetro não é usado para o Azure, pois o modelo é determinado quando você cria sua implantação no portal do Azure OpenAI Service.

object_list

Array de objetos JSON especificando o proprietário e os nomes de objetos elegíveis para tradução de linguagem natural para SQL. Para incluir todos os objetos de um determinado usuário, omita o "nome" e especifique apenas a chave "proprietário" no objeto JSON.

Para traduzir linguagem natural para SQL, o nome do objeto, o proprietário do objeto, as colunas do objeto e os comentários são enviados ao provedor de IA usando solicitações HTTPS. Evite especificar objetos com nome de objeto confidencial, nomes de coluna ou comentários na lista de objetos.

Os provedores de IA podem ter limite no tamanho dos metadados permitidos nas solicitações de tradução. Considere limitar a lista de objetos adequados aos prompts de linguagem natural pelos usuários do aplicativo.

Formato:
[
  {"owner": "SH", "name": "SALES",
  {"owner": "TEST_USER"}
]

oci_compartment_id

Especifica o OCID do compartimento que você tem permissão para acessar ao chamar o serviço OCI Generative AI. O ID do compartimento pode conter caracteres alfanuméricos, hifens e pontos.

O padrão é o ID do compartimento do Autonomous AI Database.

oci_endpoint_id

Esses atributos indicam o OCID do ponto final do cluster de hospedagem de IA dedicado da Oracle. O ID do ponto final pode conter caracteres alfanuméricos, hifens e pontos. Para localizar o OCID do ponto final, consulte Obtendo Detalhes de um Ponto Final no Serviço Generative AI.

Quando quiser usar o cluster de IA dedicado da Oracle, forneça o OCID do ponto final do cluster de hospedagem.

Por padrão, o ID do ponto final está vazio e o modelo está sob demanda em uma infraestrutura compartilhada.

oci_runtimetype

Este atributo indica o tipo de runtime do modelo fornecido. Esse atributo é obrigatório quando o atributo model é especificado e é aplicável aos Modelos de Geração do OCI.

Todos os valores permitidos podem ser encontrados no OCI Generative AI runtimeType. Consulte LlmInferenceRequest Referência.

Os valores suportados são:
  • COHERE
  • LLAMA

provider

Provedor de IA para o perfil de IA.

Provedores suportados:

  • openai
  • cohere
  • azul-celeste
  • oci
  • google
  • antrópico
  • rosto abraçando

É um atributo obrigatório.

region

Este atributo indica o local do cluster do Generative AI que você deseja usar. A região pode conter caracteres alfanuméricos e hífen.

Observação:

O cluster do Oracle Generative AI está disponível nas regiões de Chicago, Frankfurt e Londres. Consulte Modelos Fundamentais Pré-treinados no Serviço Generative AI.
A região padrão é us-chicago-1.

stop_tokens

O texto gerado será encerrado no início da sequência de parada mais antiga. A sequência será incorporada ao texto. O valor do atributo deve ser um array válido de valores de string no formato JSON. stop_tokens usa um array JSON como entrada. Para saber mais sobre tokens de parada ou sequências de parada, consulte a documentação OpenAI ou Cohere.

temperature

A amostragem dos modelos Gerar Texto incorpora aleatoriedade, de modo que o mesmo prompt pode gerar saídas diferentes toda vez que você clicar em "gerar". A temperatura é um número flutuante não negativo usado para ajustar o grau de aleatoriedade. Temperaturas mais baixas significam gerações menos aleatórias. Consulte Temperatura para obter mais detalhes. Esse parâmetro é aplicável a todos os provedores de serviços suportados.

O exemplo a seguir é usar Cohere como o provedor e exibe atributos de perfil personalizados:
BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
     profile_name => 'COHERE',
     attributes =>
      '{"provider": "cohere",
        "credential_name": "COHERE_CRED",
        "object_list": [{"owner": "ADB_USER"}],
        "max_tokens":512,
        "stop_tokens": [";"],
        "model": "command-nightly",
        "temperature": 0.5,
        "comments": true
       }');
END;
/

O exemplo a seguir mostra atributos de perfil personalizados usando o OCI Generative AI:

BEGIN                                                                        
  DBMS_CLOUD_AI.CREATE_PROFILE(                                              
      profile_name => 'GENAI',                                                             
      attributes => '{"provider": "oci",                                                                   
        "credential_name": "GENAI_CRED",                                     
        "object_list": [{"owner": "SH", "name": "customers"},                
                        {"owner": "SH", "name": "countries"},                
                        {"owner": "SH", "name": "supplementary_demographics"},
                        {"owner": "SH", "name": "profits"},                  
                        {"owner": "SH", "name": "promotions"},               
                        {"owner": "SH", "name": "products"}],
        "oci_compartment_id": "ocid1.compartment.oc1...",
	"oci_endpoint_id": "ocid1.generativeaiendpoint.oc1.us-chicago-1....",
	"region": "us-chicago-1",
	"model": "cohere.command-light",
	"oci_runtimetype": "COHERE"            
       }');                                                                  
END;                                                                         
/