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
- 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
- Vá para a página Detalhes da Sub-rede da sub-rede.
- 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.
- 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.
- Retorne à página Detalhes da Sub-rede da sub-rede.
- 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.
- No menu lateral, em Recursos, clique em Regras de Saída.
- 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.
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.
Tópicos Relacionados
Resumo de Subprogramas DBMS_CLOUD_AI
Esta seção abrange os subprogramas DBMS_CLOUD_AI fornecidos com o Autonomous AI Database.
| Subprograma | Descrição |
|---|---|
|
Esse procedimento cria um novo perfil AI para traduzir prompts de linguagem natural para instruções SQL. |
|
|
Fornece atributos de perfil de IA que você pode configurar. |
|
|
Este procedimento elimina um perfil do AI existente. |
|
|
Esse procedimento permite que um perfil do AI seja usado no banco de dados atual. |
|
|
Este procedimento desativa um perfil do AI no banco de dados atual. |
|
|
Este procedimento define atributos de perfil do AI. |
|
|
Este procedimento define o perfil do AI para o banco de dados atual. |
|
| Esta função gera uma instrução SQL usando AI para traduzir. | |
|
Esta função gera dados sintéticos. |
|
| ENABLE_DATA_ACCESS Procedimento |
Use este procedimento para permitir o envio de dados ao seu LLM. |
| DISABLE_DATA_ACCESS Procedimento |
Use este procedimento para desativar o envio de dados para seu LLM. |
|
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. |
|
|
Este procedimento remove um índice de armazenamento de vetores. Normalmente, ele remove o objeto de índice de armazenamento de vetores e exclui o banco de dados vetorial. |
|
|
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. |
|
|
Este procedimento ativa ou ativa um objeto de índice de vetor desativado anteriormente. |
|
|
Este procedimento atualiza um índice de armazenamento de vetores existente com um valor especificado do atributo de índice de vetores. |
|
|
Fornece atributos de perfil de índice vetorial que você pode configurar. |
|
| CREATE_CONVERSATION Procedimento |
Este procedimento ajuda a criar uma conversa. |
| Função CREATE_CONVERSATION |
Essa função ajuda a criar uma conversa e usar o ID da conversa em outros procedimentos. |
| CREATE_CONVERSATION Atributos |
Use os atributos da conversa para personalizar suas conversas. |
| UPDATE_CONVERSATION Procedimento |
Este procedimento atualiza um procedimento existente com parâmetros especificados pelo usuário. |
| SET_CONVERSATION_ID Procedimento |
Este procedimento define o suporte à conversa na sessão atual. |
| Função GET_CONVERSATION_ID |
Este procedimento ajuda a obter o parâmetro |
| CLEAR_CONVERSATION_ID Procedimento |
Este procedimento ajuda a limpar qualquer |
| DELETE_CONVERSATION_PROMPT Procedimento |
Este procedimento exclui um prompt específico. |
| DROP_CONVERSATION Procedimento |
Este procedimento exclui uma conversa inteira e seus metadados. |
| Procedimento FEEDBACK |
Use este procedimento para melhorar potencialmente a precisão da geração de consultas, fornecendo um feedback para Selecionar IA. |
| Índice de vetores para FEEDBACK |
Esse é um índice de vetor padrão criado quando você usa |
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 |
|---|---|
|
|
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. |
|
|
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. |
|
|
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;
/
Atributos de Perfil
Atributos
| Nome do Atributo | Descrição |
|---|---|
|
|
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 |
|
|
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 |
|
|
Inclua comentários de coluna nos metadados usados para traduzir prompts de linguagem natural usando o AI. O tipo de dados Observação: Os valores boolianos não são aplicáveis no procedimentoDBMS_CLOUD_AI.SET_ATTRIBUTE ao definir um único atributo porque o parâmetro attribute_value é do tipo de dados CLOB.
|
|
|
Um atributo |
|
|
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. |
|
|
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:
Observação: O parâmetroembedding_model não é aplicável para Anthropic e Hugging Face.
|
|
|
Denota o número de tokens a serem previstos por geração. O padrão é 1024. Consulte Tokens e Tokenizers para obter mais detalhes. |
|
|
O nome do modelo de IA que está sendo usado para gerar respostas. Modelos suportados para:
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. |
|
|
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:
|
|
|
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. |
|
|
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. |
|
|
Este atributo indica o tipo de runtime do modelo fornecido. Esse atributo é obrigatório quando o atributo Todos os valores permitidos podem ser encontrados no OCI Generative AI runtimeType. Consulte LlmInferenceRequest Referência. Os valores suportados são:
|
|
|
Provedor de IA para o perfil de IA. Provedores suportados:
É um atributo obrigatório. |
|
|
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.us-chicago-1.
A região padrão para AWS é us-east-1. |
|
|
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. |
|
|
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. |
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;
/ 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 |
|---|---|
|
|
O nome do perfil AI |
|
|
Se O valor padrão desse parâmetro é |
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 |
|---|---|
|
|
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 |
|---|---|
|
|
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 |
|---|---|
|
|
Nome do perfil AI para o qual você deseja definir os atributos. Esse parâmetro é obrigatório. |
|
|
Nome do atributo de perfil AI Esse parâmetro é obrigatório. |
|
|
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 |
|---|---|
|
|
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
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 de linguagem natural para traduzir usando IA. O prompt pode incluir Esse parâmetro é obrigatório. |
|
|
O nome do perfil AI. Esse parâmetro será opcional se um perfil do AI já estiver definido na sessão usando O valor default é NULL. As seguintes condições se aplicam:
Observação: Para o Database Actions, você pode especificar o argumentoprofile_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.
|
action |
Ação para traduzir prompt natural usando IA. As ações suportadas incluem Observação: Esta função não suporta a açãorunsql. Se você fornecer a ação runsql, ela retornará o seguinte erro: |
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
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 |
|---|---|---|
|
|
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. |
|
|
Sim | Especifique um nome de tabela para preencher dados sintéticos.
|
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. |
|
|
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 |
|
|
No |
Atributos opcionais fornecidos no formato de string do objeto JSON para modificar o comportamento de uma API. Consulte Parâmetros Opcionais. |
|
|
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 |
|---|---|---|---|
|
|
Número |
|
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 é |
|
|
Booliano |
|
Ative ou desative o uso de informações de estatísticas de tabela. O valor padrão é |
|
|
String |
Valores válidos:
|
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 é
O número máximo de processos paralelos simultâneos usados para geração de dados sintéticos é limitado a 64. |
|
|
Booliano |
|
Ative ou desative o envio de comentários ao LLM para orientar a geração de dados. O valor padrão é |
object_list Parâmetros
| Parâmetro | Tipo de Dados do Valor | Obrigatória | Descrição |
|---|---|---|---|
|
|
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. |
|
|
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.
|
|
|
Número |
No |
O número de registros a serem gerados sinteticamente. Forneça um número maior que 0. Forneça |
|
|
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 Forneça Ao usar o parâmetro
record_count_percentage, a contagem final de registros na tabela é calculada da seguinte forma:
|
|
|
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 |
|---|---|
|
|
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. |
|
|
Atributos personalizados para o índice vetorial no JSON. Para ver uma lista de parâmetros configuráveis, consulte Atributos de Índice de Vetor. O valor default é NULL. |
status |
Status do índice do vetor. Os valores possíveis são:
O valor padrão é Desabilitado. |
|
|
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 |
|---|---|
|
|
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. |
|
|
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:
O valor-padrão é |
force |
Indica se devem ser ignorados os erros que ocorrerem se o índice do vetor não existir. Os valores possíveis são:
Se definido como O valor padrão é |
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 |
|---|---|
|
|
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 Atributos de Índice de Vetor.
Sintaxe
DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX(
index_name IN VARCHAR2
);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
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
- 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 |
|---|---|
|
|
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. |
|
|
Especifica atributos de índice vetorial no formato JSON. Este é um parâmetro obrigatório. |
|
|
Nome dos atributos personalizados especificados como parâmetros JSON no procedimento Você não pode modificar os seguintes atributos:
Este é um parâmetro obrigatório. |
attribute_value |
Valor especificado pelo usuário para o O valor default é NULL. |
Observação:
Use o parâmetroattributes 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 Índice de Vetor
Atributos
| Nome do Atributo | Valor | Obrigatória | Descrição |
|---|---|---|---|
chunk_size |
1024 (padrão)
|
No |
Tamanho do texto da divisão em blocos dos dados de entrada. Para dados de texto, isso significa o número de caracteres. |
chunk_overlap |
128 (padrão)
|
No |
Especifica a quantidade de caracteres sobrepostos entre partes adjacentes do texto. Esse atributo é útil para garantir a continuidade contextual e a precisão no processamento de texto, permitindo sobreposições entre segmentos, o que ajuda a evitar a perda de informações contextuais nos limites do bloco. |
|
|
NA | Sim |
Este parâmetro especifica URI ou diretórios de arquivo de origem e arquivos de origem. Padrões curinga são suportados para URIs e diretórios de arquivo de origem. URIs do arquivo de origem em nuvem: Você pode especificar um URI de arquivo de origem para bucket ou subpasta. É possível usar curingas para especificar subpastas ou nomes de arquivo. O caractere " Exemplo usando curingas: location_uri => 'https://objectstorage.my$region.oraclecloud.com/n/namespace-string/b/bucketname/o/year=????/month=??/*.csv O formato dos URIs depende do serviço do Cloud Object Storage que você estiver usando. Para obter detalhes, consulte Formatos do Cloud Object Storage URI. Diretório: Você pode especificar um diretório e um nome de arquivo. O formato para especificar um diretório é: Você só pode usar curingas para especificar nomes de arquivo em um diretório. O caractere Use aspas duplas para especificar um nome de diretório com distinção entre maiúsculas e minúsculas. Por exemplo: Para incluir um caractere de aspas, use duas aspas. Por exemplo: Os arquivos neste local podem ser documentos em formatos como PDF, DOC, JSON, XML ou HTML. Consulte Formatos de Documento Suportados. |
|
|
5 (padrão)
|
No |
Especifica o número máximo de resultados a serem retornados em uma consulta de pesquisa vetorial, controlando o tamanho da saída e melhorando a eficiência das operações de recuperação de dados. |
|
|
NA | Sim |
Especifica o nome das credenciais para acessar um armazenamento de objetos. |
|
|
<vector_index_name>$VECPIPELINE |
No |
Especifica o nome do pipeline de carregamento de dados do índice do vetor. Este atributo é definido automaticamente para o índice do vetor, não é possível especificar ou modificar. O nome do pipeline pode ser usado para monitorar a carga de dados do índice vetorial usando o serviço Monitor and Troubleshoot Pipelines. |
|
|
NA | Sim |
Nome do perfil de IA usado para incorporar dados de origem e prompts do usuário. |
|
|
1440 minutos (padrão)
|
No |
Intervalo de atualização de dados no armazenamento de vetores. A unidade é de minutos. |
|
|
0 (padrão)
|
No |
Define o nível mínimo de similaridade necessário para que dois itens sejam considerados uma correspondência; útil para filtrar resultados em algoritmos de correspondência para garantir a relevância. |
|
|
Uma string correspondente a um dos valores especificados na descrição. |
No |
Especifica o tipo de cálculo de distância usado para comparar vetores em um banco de dados, determinando como a similaridade entre itens é quantificada. Valores válidos para o Oracle 23ai:
|
|
|
|
Sim |
Especifica o nome do provedor que gerencia e serve como armazenamento de vetores. |
|
|
NA | No |
Especifica o número de elementos em cada vetor dentro do armazenamento de vetores, definindo o tamanho e a estrutura da representação de dados. |
|
|
|
No |
Especifica o nome da tabela ou coleção para armazenar incorporações de vetor e dados em blocos. |
BEGIN
DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(
index_name => 'MY_INDEX',
attributes => '{"vector_db_provider": "oracle",
"location": "https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/my_namespace/my_bucket/my_data_folder",
"object_storage_credential_name": "OCI_CRED",
"profile_name": "OPENAI_ORACLE",
"vector_dimension": 1024,
"vector_distance_metric": "cosine",
"chunk_overlap":128,
"chunk_size":1024
}');
END;
/
/
Este exemplo especifica um padrão de curinga (*) no URI do Object Storage como o parâmetro location. Ele carrega todos os arquivos CSV do URI do Object Storage.
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.myregion.oraclecloud.com/n/my$namespace/b/bucketname/o/year=????/month=??/file*.csv)',
'object_storage_credential_name' value 'OS_CRED',
'chunk_size' value 2048,
'chunk_overlap' value 256,
'refresh_rate' value 720)
);
END;
/Este exemplo especifica objetos de diretório no parâmetro location usando um padrão curinga. Ele carrega todos os arquivos CSV no diretório MY_DIR.
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 'MY_DIR:*.csv',
'object_storage_credential_name' value 'OS_CRED',
'chunk_size' value 2048,
'chunk_overlap' value 256,
'refresh_rate' value 720)
);
END;
/Este exemplo especifica objetos de diretório com distinção entre maiúsculas e minúsculas no parâmetro location usando um padrão de curinga. Ele carrega todos os arquivos CSV no diretório My_Dir.
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 '"My_Dir":*.csv',
'object_storage_credential_name' value 'OS_CRED',
'chunk_size' value 2048,
'chunk_overlap' value 256,
'refresh_rate' value 720)
);
END;
/Este exemplo especifica um objeto de diretório com distinção entre maiúsculas e minúsculas no parâmetro location usando um padrão curinga (*). Ele carrega todos os arquivos localizados no diretório My_Dir.
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 '"My_Dir":*',
'object_storage_credential_name' value 'OS_CRED',
'chunk_size' value 2048,
'chunk_overlap' value 256,
'refresh_rate' value 720)
);
END;
/Este exemplo especifica um objeto de diretório e usa um prefixo de nome de arquivo, como test, no parâmetro location. Ele carrega todos os arquivos no diretório MY_DIR cujos nomes começam com test.
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 'MY_DIR:test*',
'object_storage_credential_name' value 'OS_CRED',
'chunk_size' value 2048,
'chunk_overlap' value 256,
'refresh_rate' value 720)
);
END;
/CREATE_CONVERSATION Procedimento
Este procedimento permite criar uma conversa e definir automaticamente o conversation_id dentro do procedimento.
Observação:
Se você estiver usando o procedimentoDBMS_CLOUD_AI.CREATE_CONVERSATION, poderá ignorar a definição do conversation_id, pois o procedimento o define automaticamente.
Sintaxe
DBMS_CLOUD_AI.CREATE_CONVERSATION(
attributes IN CLOB DEFAULT NULL
);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
Atributos para conversa no formato JSON. Consulte CREATE_CONVERSATION Atributos para obter mais detalhes. O valor default é NULL. |
Exemplo
O exemplo a seguir mostra como criar uma conversa sem qualquer personalização.
EXEC DBMS_CLOUD_AI.CREATE_CONVERSATION;Resultado:
PL/SQL procedure successfully completed.O exemplo a seguir mostra como criar uma conversa com parâmetros personalizados, como title, description, retention_days e conversation_length.
-- Create conversation with custom attributes
SELECT DBMS_CLOUD_AI.CREATE_CONVERSATION(
attributes => '{"title":"Conversation 1",
"description":"this is a description",
"retention_days":5,
"conversation_length":5}')
AS conversation_id FROM dual;Função CREATE_CONVERSATION
Essa função cria uma conversa e retorna seu conversation_id que pode ser usado em outros procedimentos ou funções, como DBMS_CLOUD_AI.SET_CONVERSATION_ID e DBMS_CLOUD_AI.GENERATE.
A Oracle recomenda definir conversation_id para ativar a conversa. Como alternativa, você pode definir conversation_id na função DBMS_CLOUD_AI.GENERATE.
Observação:
Se você estiver usando o procedimentoDBMS_CLOUD_AI.CREATE_CONVERSATION, poderá ignorar a definição do conversation_id, pois o procedimento o define automaticamente.
Sintaxe
DBMS_CLOUD_AI.CREATE_CONVERSATION(
attributes IN CLOB DEFAULT NULL
) RETURN VARCHAR2;Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
Atributos para conversa no formato JSON. Consulte CREATE_CONVERSATION Atributos para obter mais detalhes. O valor default é NULL. |
Exemplo
O exemplo a seguir mostra como usar a função DBMS_CLOUD_AI.CREATE_CONVERSATION para criar uma conversa sem qualquer personalização.
SELECT DBMS_CLOUD_AI.CREATE_CONVERSATION FROM DUAL;Resultado:
CREATE_CONVERSATION
------------------------------------
30C9DB6E-EA4D-AFBA-E063-9C6D46644B92O exemplo a seguir mostra como usar a função DBMS_CLOUD_AI.CREATE_CONVERSATION para especificar atributos como title, retention_days e conversation_length.
SELECT DBMS_CLOUD_AI.CREATE_CONVERSATION(
attributes => '{"title":"This is a test conversation",
"retention_days":7,
"conversation_length":20}')
FROM DUAL;CREATE_CONVERSATION Atributos
Atributos
| Nome do Atributo | Valor padrão | Descrição |
|---|---|---|
|
|
Nova Conversa |
O nome atribuído pelo usuário para a conversa. Se não for fornecido, o Select AI fará com que o LLM gere um quando a conversa for usada pela primeira vez com um prompt. |
|
|
NULL |
Fornece uma descrição definida pelo usuário que resume a finalidade ou o contexto da conversa. Se não for fornecido, o LLM gerará um quando a conversa for usada pela primeira vez com um prompt e o atualizará novamente no 5º uso para incluir informações mais precisas e relevantes. |
|
|
7 |
Especifique a quantidade de dias para manter o histórico de conversas. Isso é armazenado no banco de dados a partir de sua data de criação. Se o valor for omitido, o sistema o define como o valor padrão 7. Se você defini-la como 0, o sistema manterá a conversa até que você a exclua manualmente usando o procedimento |
|
|
NULL |
Especifique o número de prompts e respostas recentes a serem incluídos com o prompt atual. O valor máximo permitido é 999. Você pode substituir esse valor especificando o parâmetro
conversation_length na função DBMS_CLOUD_AI.GENERATE ou definindo-o no perfil do AI usando SELECT AI <ACTION> <PROMPT>. Aplique as seguintes regras de precedência para conversation_length:
Se nenhum deles especificar o |
DBMS_CLOUD_AI.CREATE_CONVERSATION.-- Create conversation with custom attributes
SELECT DBMS_CLOUD_AI.CREATE_CONVERSATION(
attributes => '{"title":"Conversation 1",
"description":"this is a description",
"retention_days":5,
"conversation_length":5}')
AS conversation_id FROM dual;UPDATE_CONVERSATION Procedimento
Este procedimento atualiza uma conversa existente com um valor especificado dos atributos da conversa.
Sintaxe
DBMS_CLOUD_AI.UPDATE_CONVERSATION(
conversation_id IN VARCHAR2,
attributes IN CLOB
);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
Número exclusivo atribuído a uma conversa. Este é um parâmetro obrigatório. |
|
|
Atributos para conversa no formato JSON. Consulte CREATE_CONVERSATION Atributos para obter mais detalhes. |
Exemplo
EXEC DBMS_CLOUD_AI.UPDATE_CONVERSATION(
conversation_id => '30C9DB6E-EA4E-AFBA-E063-9C6D46644B92',
attributes => '{"retention_days":20,
"description":"This a sample description",
"title":"Sample title",
"conversation_length":20}');
Resultado:
PL/SQL procedure successfully completed.
SET_CONVERSATION_ID Procedimento
Este procedimento define a conversa atual para o ID especificado. Os prompts subsequentes incluem prompts de conversa existentes com base nos atributos configurados da conversa.
Sintaxe
DBMS_CLOUD_AI.SET_CONVERSATION_ID(
conversation_id IN VARCHAR2
);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
Número exclusivo atribuído a uma conversa na sessão atual. Este parâmetro é obrigatório. |
Exemplo
EXEC DBMS_CLOUD_AI.SET_CONVERSATION_ID('30C9DB6E-EA4D-AFBA-E063-9C6D46644B92');
Resultado:
PL/SQL procedure successfully completed.
Função GET_CONVERSATION_ID
DBMS_CLOUD_AI.SET_CONVERSATION_ID ou DBMS_CLOUS_AI.CREATE_CONVERSATION. Se você não definiu uma conversa, a função retorna NULL. Se você soltar a conversa, o sistema também a limpará na sessão. Consulte CLEAR_CONVERSATION_ID Procedimento.
Sintaxe
DBMS_CLOUD_AI.GET_CONVERSATION_ID
RETURN VARCHAR2;
Exemplo
Este exemplo exibe o ID da conversa definido na sessão atual.
SELECT DBMS_CLOUD_AI.GET_CONVERSATION_ID;
Resultado:
--------------------------------------------------------------------------------
30C9DB6E-EA4F-AFBA-E063-9C6D46644B92
CLEAR_CONVERSATION_ID Procedimento
Este procedimento limpa um ID de conversa definido na sessão para desativar o recurso de conversa para SELECT AI <ACTION> <PROMPT>. Se você não definiu uma conversa, o sistema não gera nenhum erro.
Sintaxe
DBMS_CLOUD_AI.CLEAR_CONVERSATION_ID;
Exemplo
Este exemplo demonstra a exibição do ID da conversa atual na sessão, a limpeza do ID e a verificação da alteração.
-- A conversation id is set in the session
SELECT DBMS_CLOUD_AI.GET_CONVERSATION_ID FROM dual;
GET_CONVERSATION_ID
--------------------------------------------------------------------------------
3A88BFF0-1D7E-B3B8-E063-9C6D46640ECD
-- Clear the conversation id
EXEC DBMS_CLOUD_AI.CLEAR_CONVERSATION_ID;
PL/SQL procedure successfully completed.
-- The conversation id is removed from the session
SELECT DBMS_CLOUD_AI.GET_CONVERSATION_ID FROM dual;
GET_CONVERSATION_ID
--------------------------------------------------------------------------------
DELETE_CONVERSATION_PROMPT Procedimento
O procedimento remove um determinado prompt da conversa.
Sintaxe
DBMS_CLOUD_AI.DELETE_CONVERSATION_PROMPT(
conversation_prompt_id IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE
);Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
Número exclusivo atribuído a um prompt em uma conversa. Você pode localizar o ID do prompt consultando a view Este é um parâmetro obrigatório. |
|
|
Se O valor padrão para esse parâmetro é |
Exemplo
EXEC DBMS_CLOUD_AI.DELETE_CONVERSATION_PROMPT('30C9DB6E-EA61-AFBA-E063-9C6D46644B92');
Resultado:
PL/SQL procedure successfully completed.DROP_CONVERSATION Procedimento
O procedimento remove a conversa e todos os prompts associados e as respostas associadas. Uma vez eliminado, o conversation_id se torna inválido. Se uma conversa for eliminada enquanto estiver definida na sessão, ela será limpa automaticamente.
Sintaxe
DBMS_CLOUD_AI.DROP_CONVERSATION(
conversation_id IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE
);Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
Número exclusivo atribuído a uma conversa. Este é um parâmetro obrigatório. |
|
|
Se O valor padrão para esse parâmetro é |
Exemplo
EXEC DBMS_CLOUD_AI.DROP_CONVERSATION('30C9DB6E-EA4D-AFBA-E063-9C6D46644B92');
Resultado:
PL/SQL procedure successfully completed.Procedimento FEEDBACK
Sintaxe
DBMS_CLOUD_AI.FEEDBACK(
profile_name IN VARCHAR2,
sql_id IN DBMS_ID,
feedback_type IN VARCHAR2 DEFAULT NULL,
response IN CLOB DEFAULT NULL,
feedback_content IN CLOB DEFAULT NULL,
operation IN VARCHAR2 DEFAULT 'ADD'
);
DBMS_CLOUD_AI.FEEDBACK(
profile_name IN VARCHAR2,
sql_text IN CLOB,
feedback_type IN VARCHAR2 DEFAULT NULL,
response IN CLOB DEFAULT NULL,
feedback_content IN CLOB DEFAULT NULL,
operation IN VARCHAR2 DEFAULT 'ADD'
);
Parâmetros
| Parâmetro | Descrição |
|---|---|
|
|
Especifica o perfil AI a ser usado. Se você não fornecer um Este é um parâmetro obrigatório. |
|
|
Identifica a consulta SQL. Um Este é um parâmetro obrigatório. |
|
|
Contém o texto completo da consulta SQL. Este é um parâmetro obrigatório. |
|
|
Especifica o tipo de feedback. Os valores disponíveis são:
Observação: O procedimentoDBMS_CLOUD_AI.FEEDBACK permite que você especifique sql_id ou sql_text, portanto, o feedback_type é necessário, enquanto se você estiver usando a ação feedback, o LLM determinará ou interpretará dinamicamente o tipo de feedback.
Esse é um parâmetro obrigatório quando |
|
|
Representa o resultado correto da consulta SQL que o usuário espera. Esse é um parâmetro obrigatório quando |
|
|
Captura o feedback de linguagem natural do usuário. Você tem a opção de usar esse parâmetro junto com |
|
|
Especifica a operação a ser executada. Os valores aceitos são:
|
Exemplo
O exemplo a seguir demonstra como usar o procedimento DBMS_CLOUD_AI.FEEDBACK para aceitar ou melhorar a SQL gerada especificando os parâmetros do procedimento.
EXEC DBMS_CLOUD_AI.FEEDBACK(profile_name=>'OCI_FEEDBACK1',
sql_id=> '852w8u83gktc1',
feedback_type=>'positive',
operation=>'add');
EXEC DBMS_CLOUD_AI.FEEDBACK(profile_name=>'OCI_FEEDBACK1',
sql_text=> 'select ai showsql how many movies',
feedback_type=> 'negative',
response=>'SELECT SUM(1) FROM "ADB_USER"."MOVIES"',
feedback_content=>'Use SUM instead of COUNT');
EXEC DBMS_CLOUD_AI.FEEDBACK(profile_name=>'OCI_FEEDBACK1',
sql_id=> '852w8u83gktc1',
operation=>'delete');Índice de vetores para FEEDBACK
<profile_name>_FEEDBACK_VECINDEX com atributos padrão quando você usa o recurso de feedback pela primeira vez.
Você pode modificar seus atributos como similarity_threshold e match_limit usando o procedimento DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX. Esse índice ajuda a refinar o SQL gerado no futuro com base no feedback fornecido. Esta tabela é eliminada quando o perfil do AI associado é eliminado. Você também pode soltar <profile_name>_FEEDBACK_VECINDEX. Quando você faz isso, Selecionar AI não usa mais feedback como dicas para as ações runsql, showsql e explainsql. No entanto, se você enviar um novo feedback usando o recurso Selecionar feedback de IA, o Select AI criará automaticamente um novo índice de vetor de feedback
Observação:
O valor padrão dematch_limit para feedback é 3.
Nome da Tabela de Vetores
A tabela <profile_name>_FEEDBACK_VECINDEX$VECTAB contém representações vetoriais (incorporações) de feedback do usuário junto com outros parâmetros, que o Select AI usa para melhorar a geração de SQL ao longo do tempo.
Parâmetros
| Coluna | Descrição |
|---|---|
|
|
Inclui atributos de objeto JSON de acordo com o Procedimento FEEDBACK. |
|
|
Contém o prompt do usuário. |
|
|
Contém representações vetoriais (incorporações) do prompt do usuário. |
Exemplo
O exemplo a seguir demonstra como usar a tabela de índice vetorial gerada automaticamente para consultar e fornecer feedback.
SQL> select content, attributes from OCI_FEEDBACK1_FEEDBACK_VECINDEX$VECTAB where JSON_VALUE(attributes, '$.sql_text') = 'select ai showsql how many movies';
CONTENT
----------------------------------------------------------------------------------------------------
how many movies
ATTRIBUTES
----------------------------------------------------------------------------------------------------
{"response":"SELECT SUM(1) FROM \"ADB_USER\".\"MOVIES\"","feedback_type":"negative","sql_id":null,"sql_text":"select ai showsql how many movies","feedback_content":null}
DBMS_CLOUD_AI.feedback Procedure(Positive Feedback)