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 Rede Virtual na Nuvem (VCN) em que seus recursos do Autonomous 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 de roteamento e uma regra de segurança de saída a cada sub-rede (na VCN) na qual os recursos do Autonomous Database residem para que esses recursos possam usar o gateway para obter uma chave pública da sua instância do Azure 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 Database.
Subprograma | Descrição |
---|---|
Esse procedimento cria um novo perfil AI para traduzir prompts de linguagem natural para instruções SQL. |
|
Este procedimento desativa um perfil do AI no banco de dados atual. |
|
Este procedimento elimina um perfil do AI existente. |
|
Esse procedimento permite que um perfil do AI seja usado no banco de dados atual. |
|
Esta função gera uma instrução SQL usando AI para traduzir. | |
Este procedimento define atributos de perfil do AI. |
|
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 |
---|---|
|
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;
/
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 de 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 no banco de dados inteiro. Consulte Instrução CREATE TRIGGER em Referência de Linguagem PL/SQL do Banco de Dados Oracle Database 19c ou Referência de Linguagem PL/SQL do Banco de Dados Oracle Database 23ai 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;
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. |
|
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 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 .
|
|
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;
/