DBMS_CLOUD_AI - Pacote
O pacote DBMS_CLOUD_AI
, com o 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.
- DBMS_CLOUD_AI Visão Geral
Descreve o uso do pacoteDBMS_CLOUD_AI
. - Resumo de Subprogramas DBMS_CLOUD_AI
Esta seção abrange os subprogramasDBMS_CLOUD_AI
fornecidos com o Autonomous Database.
Tópico principal: Referência de Pacote Fornecido pelo Autonomous Database
DBMS_CLOUD_AI Visão Geral
Descreve o uso do pacote DBMS_CLOUD_AI
.
Use o pacote DBMS_CLOUD_AI
para criar perfis do AI e configurá-los para acesso a um LLM (Large Language Model). Defina o perfil do AI na sessão de usuário do banco de dados atual para executar tarefas como gerar, executar e explicar SQL. Além disso, habilite a geração aumentada de recuperação e interações baseadas em linguagem natural, incluindo bate-papo com LLMs.
Para saber mais sobre plataformas e LLMs suportados, consulte Sobre a Select AI.
Tópico principal: Pacote DBMS_CLOUD_AI
Resumo dos Subprogramas DBMS_CLOUD_AI
Esta seção abrange os subprogramas DBMS_CLOUD_AI
fornecidos com o Autonomous Database.
Subprograma | Descrição |
---|---|
Este procedimento cria um novo perfil do AI para traduzir prompts de linguagem natural para instruções SQL. |
|
Fornece atributos de perfil de IA que você pode configurar. |
|
Este procedimento limpa um perfil de AI ativo na sessão atual. |
|
Este procedimento desativa um perfil do AI no banco de dados atual. |
|
Este procedimento elimina um perfil AI existente. |
|
Este procedimento permite que um perfil do AI seja usado no banco de dados atual. |
|
Essa função permite que você use Selecionar IA de maneira sem monitoramento de estado com seu perfil existente. | |
Esta função gera dados sintéticos. |
|
Esta função retorna o nome do perfil usado na sessão atual. |
|
Este procedimento define atributos de perfil de IA. |
|
Este procedimento define o perfil do AI para o banco de dados atual. |
|
Use este procedimento para permitir o envio de dados ao seu LLM. |
|
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_PROFILE Procedimento
O procedimento cria um novo perfil do AI para traduzir prompts de linguagem natural para a instrução SQL. - 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. - DROP_PROFILE Procedimento
O procedimento elimina um perfil do AI existente. Se o perfil não existir, o procedimento gerará um erro. - ENABLE_PROFILE Procedimento
Esse procedimento ativa o perfil do AI que o usuário especifica. O procedimento altera o status do perfil do AI paraENABLED
. - CLEAR_PROFILE Procedimento
Esse procedimento limpa qualquer perfil de IA ativo definido na sessão atual. Depois de limpar um perfil ativo, você não poderá mais usarSELECT AI
na linha de comando SQL ou usar o perfil definido do AI ao chamarDBMS_CLOUD_AI.GENERATE
. Este procedimento não elimina o perfil. - DISABLE_PROFILE Procedimento
Esse procedimento desativa o perfil do AI no banco de dados atual. O status do perfil do AI é alterado paraDISABLED
por este procedimento. - GET_PROFILE Função
Esta função retorna o nome do perfil do AI definido na sessão atual. - SET_ATTRIBUTE Procedimento
Este procedimento permite definir atributos de perfil do AI. É sobrecarregado para aceitar valores de atributo de vários tipos. - Função GERAR
Essa função fornece tradução do AI de maneira sem monitoramento de estado. Com seu perfil de IA existente, você pode usar essa função para executar as ações suportadas, comoshowsql
,runsql
,explainsql
,narrate
echat
. A ação padrão éshowsql
. - SET_PROFILE Procedimento
Este procedimento define o perfil do AI para a sessão atual. - Função GENERATE_SYNTHETIC_DATA
Use este procedimento para gerar dados sintéticos para uma única tabela, várias tabelas ou um esquema completo. - ENABLE_DATA_ACCESS Procedimento
Esse 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. - DISABLE_DATA_ACCESS Procedimento
Esse procedimento desativa o envio de dados para o LLM para os recursos Select AI aplicáveis. Somente um administrador pode executar este procedimento. - CREATE_VECTOR_INDEX Procedimento
Esse 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. - DROP_VECTOR_INDEX Procedimento
Esse 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 comoFALSE
, o argumentoinclude_data
garantirá que o procedimento só remova o objeto de índice do armazenamento de vetores enquanto mantém o armazenamento de vetores. - DISABLE_VECTOR_INDEX Procedimento
Esse 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. - ENABLE_VECTOR_INDEX Procedimento
Esse procedimento ativa ou ativa um objeto de índice vetorial 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. - Procedimento UPDATE_VECTOR_INDEX
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 Vetor
Os atributos de um índice de vetor ajudam a gerenciar e configurar o comportamento do índice de vetor. Você pode adicionar atributos de índice personalizados conforme necessário. Alguns atributos são opcionais e têm um valor padrão.
Tópico principal: Pacote DBMS_CLOUD_AI
CREATE_PROFILE Procedimento
O procedimento cria um novo perfil do AI para traduzir prompts de linguagem natural para a 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 do AI. O nome do perfil deve seguir as regras de nomenclatura do identificador Oracle SQL. O tamanho máximo do nome do perfil é 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 é ativado. |
|
Descrição do perfil de IA. 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'),
status => 'enabled',
description => 'AI profile to use OpenAI for SQL translation'
);
END;
/
Atributos de Perfil
Atributos
Nome do Atributo | Descrição |
---|---|
|
Fornece metadados adicionais sobre suas tabelas e colunas de banco de dados usando o recurso de anotações 23ai. Os valores inválidos são
|
|
Nome do modelo implantado do Azure OpenAI Service. O nome só pode incluir caracteres alfanuméricos, caractere de sublinhado (_) e um hífen (-). O nome não pode terminar com um sublinhado (_) ou um hífen (-). Para saber como obter o |
|
Nome do modelo de incorporação implantado do Azure OpenAI. O nome só pode incluir caracteres alfanuméricos, sublinhado e hífen. O nome não pode começar nem terminar com um hífen ou sublinhado. |
|
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 |
|
Especifica se Selecionar IA deve instruir o LLM a gerar SQL sem distinção entre maiúsculas e minúsculas para colunas que contenham string ou valores de texto. Os valores compatíveis são:
O valor padrão é |
|
Inclui comentários de tabela e coluna nos metadados usados para traduzir prompts de linguagem natural usando o AI. O tipo de dados
|
|
Gerencia se deseja incluir restrições de integridade referencial, como chaves primárias e estrangeiras, nos metadados enviados ao LLM. Os valores inválidos são
|
|
Um atributo |
|
O nome da credencial para acessar as APIs do provedor de IA. A credencial que usa tokens do portador pode ser criada usando o nome do provedor como o nome do usuário e o token do portador como a senha. As credenciais do Segredo do Vault também são suportadas. A autenticação principal, por exemplo, principal de serviço do Azure, também é suportada. Para obter mais informações sobre como configurá-lo, consulte Usar o Principal de Serviço do Azure para Acessar Recursos do Azure. É 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
|
|
Especifica se o LLM deve ser restrito para gerar SQL que use apenas tabelas cobertas pela lista de objetos. Os valores compatíveis são:
Os Valores não diferenciam maiúsculas e minúsculas. O valor padrão é |
|
Indica o número de tokens a serem previstos por geração. O padrão é 1024. Consulte Tokens e Tokenizadores para obter mais detalhes. |
|
O nome do modelo de IA que está sendo usado para gerar respostas. Consulte Selecionar seu Provedor de IA e LLMs e especifique o nome do modelo. Observação
|
|
Array de objetos JSON que especificam 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. Os seguintes tipos de objetos podem ser usados:
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. Formatar:
As tabelas externas criadas usando a sincronização do OCI Data Catalog ou AWS Glue também podem ser usadas na lista de objetos. Isso ajuda a gerenciar metadados em Catálogos de Dados centrais e usar os metadados diretamente para traduzir prompts de linguagem natural usando IA. |
|
Especifica se os metadados das tabelas mais relevantes ou de todas as tabelas devem ser enviados para o LLM. Os valores suportados são:
Quando |
|
Especifica o formato no qual a API espera que os dados sejam enviados e recebidos. Use este atributo para gerar respostas de texto. Este atributo se aplica aos Modelos de Chat do OCI Generative AI em um cluster de IA dedicado. Especifique esse atributo quando você especificar um OCID de modelo no atributo Os valores suportados são:
|
|
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 PDB. |
|
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 é sob demanda em uma infraestrutura compartilhada. |
|
Este atributo indica o tipo de runtime do modelo fornecido. Esse atributo é aplicável aos modelos do OCI Generate Text em um cluster de IA dedicado. Especifique esse atributo quando você especificar um OCID de modelo no atributo Todos os valores permitidos podem ser encontrados no OCI Generative AI runtimeType. Consulte a Referência LlmInferenceRequest. Os valores compatíveis são:
Observação
Este atributo está obsoleto. Use oci_apiformat .
|
|
Provedor de IA para o perfil de IA. Provedores suportados:
É um atributo obrigatório. |
|
Especifica o ponto final da API para provedores compatíveis com o OpenAI. Este atributo é específico apenas para provedores compatíveis com OpenAI. Especifique Exemplo: |
|
Este atributo indica o local do cluster de IA Generativa 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 em Chicago, Frankfurt, Londres e outras regiões selecionadas. Consulte Regiões com IA Generativa para saber mais. A região padrão da AWS é A região padrão é |
|
O texto gerado será encerrado no início da primeira sequência de interrupção. 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 a partir de modelos Gerar Texto incorpora aleatoriedade, de modo que o mesmo prompt pode gerar saídas diferentes cada vez que você clicar em "gerar". 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. Este parâmetro é aplicável a todos os prestadores de serviço suportados. |
|
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. |
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_apiformat": "COHERE"
}');
END;
/
Tópico principal: Resumo de Subprogramas DBMS_CLOUD_AI
DROP_PROFILE Procedimento
O procedimento elimina um perfil 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 |
---|---|
|
Nome do perfil de IA |
|
Se O valor padrão para este parâmetro é |
Exemplo
BEGIN
DBMS_CLOUD_AI.DROP_PROFILE
(profile_name => 'OPENAI');
END;
/
Observações de Uso
Use force
para eliminar um perfil e ignorar erros se o perfil do AI não existir.
Tópico principal: Resumo de Subprogramas DBMS_CLOUD_AI
ENABLE_PROFILE Procedimento
Este 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 do AI a ser ativado Este parâmetro é obrigatório. |
Exemplo para Ativar Perfil de IA
BEGIN
DBMS_CLOUD_AI.ENABLE_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
Tópico principal: Resumo de Subprogramas DBMS_CLOUD_AI
CLEAR_PROFILE Procedimento
Este procedimento limpa todos os perfis ativos do AI definidos na sessão atual. Depois de limpar um perfil ativo, você não poderá mais usar SELECT AI
na linha de comando SQL ou usar o perfil definido do AI ao chamar DBMS_CLOUD_AI.GENERATE
. Este procedimento não elimina o perfil.
Sintaxe
DBMS_CLOUD_AI.CLEAR_PROFILE
;
Exemplo
BEGIN
DBMS_CLOUD_AI.CLEAR_PROFILE
;
END;
/
Tópico principal: Resumo de Subprogramas DBMS_CLOUD_AI
DISABLE_PROFILE Procedimento
Este procedimento desativa o perfil do 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 do AI. Este parâmetro é obrigatório. |
Exemplo
BEGIN
DBMS_CLOUD_AI.DISABLE_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
Tópico principal: Resumo de Subprogramas DBMS_CLOUD_AI
Função GET_PROFILE
Esta função retorna o nome do perfil do AI definido na sessão atual.
Sintaxe
DBMS_CLOUD_AI.GET_PROFILE
;
Exemplo
Este exemplo mostra como você pode exibir o nome do perfil na sessão atual.
SELECT DBMS_CLOUD_AI.GET_PROFILE
from DUAL;
Tópico principal: Resumo de Subprogramas DBMS_CLOUD_AI
SET_ATTRIBUTE Procedimento
Este procedimento permite definir atributos de perfil do AI. É sobrecarregado para aceitar valores de atributo de vários tipos.
Sintaxe
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name IN VARCHAR2,
attribute_name IN VARCHAR2,
attribute_value IN {BOOLEAN|VARCHAR2}
);
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name IN VARCHAR2,
attribute_name IN VARCHAR2,
attribute_value IN CLOB DEFAULT NULL
);
Parâmetros
Somente o proprietário pode definir ou modificar os atributos do perfil do AI. Para obter uma lista de atributos suportados, consulte Atributos de Perfil.
Parâmetro | Descrição |
---|---|
|
Nome do perfil do AI para o qual você deseja definir os atributos. Este parâmetro é obrigatório. |
|
Nome do atributo de perfil do AI Este parâmetro é obrigatório. |
|
Valor do atributo de perfil. O valor pode ser do tipo O valor default é NULL. |
Exemplos
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name => 'OPENAI',
attribute_name => 'credential_name',
attribute_value => 'OPENAI_CRED_NEW'
);
END;
/
O exemplo a seguir aceita o tipo NUMBER
como attribute_value
.
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE(
profile_name => 'OCI_PROFILE',
attribute_name => 'temperature',
attribute_value => 0.5
);
END;
/
O exemplo a seguir aceita o tipo BOOLEAN
como attribute_value
.
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name => 'OCI_PROFILE',
attribute_name => 'comments',
attribute_value => 'true'
);
END;
/
O exemplo a seguir aceita o tipo VARCHAR2
como attribute_value
.
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name => 'OCI_PROFILE',
attribute_name => 'model',
attribute_value => 'meta.llama-3.3-70b-instruct'
);
END;
/
Tópico principal: Resumo de Subprogramas DBMS_CLOUD_AI
Função GERAR
showsql
, runsql
, explainsql
, narrate
e chat
. A ação padrão é showsql
.
A substituição de alguns ou de todos os atributos do 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 Este parâmetro é obrigatório. |
|
Nome do perfil de IA. Esse parâmetro será opcional se um perfil do AI já estiver definido na sessão usando O valor default é NULL. As condições a seguir se aplicam:
Observação
Para o Database Actions, você pode especificar o argumento profile_name em DBMS_CLOUD_AI.GENERATE ou 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 |
attributes |
Substitua atributos específicos de perfil do AI fornecendo atributos no formato JSON. Consulte Atributos de Perfil para obter mais detalhes. |
Exemplos
Os exemplos a seguir ilustram as ações runsql
, showsql
, explainsql
, narrate
e chat
que podem ser usadas com a função DBMS_CLOUD_AI.GENERATE
. Consulte também Usar Palavra-chave AI para Inserir Prompts para obter mais detalhes.
Um exemplo com a ação runsql
é o seguinte:
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'runsql)
FROM dual;
Um exemplo com a ação showsql
é o seguinte:
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'showsql')
FROM dual;
Um exemplo com a ação explainsql
é o seguinte:
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'explainsql)
FROM dual;
Um exemplo com a ação narrate
é o seguinte:
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'narrate')
FROM dual;
Um exemplo com a ação chat
é o seguinte:
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'what is oracle autonomous database',
profile_name => 'OPENAI',
action => 'chat')
FROM dual;
Você pode usar DBMS_CLOUD_AI.GENERATE
em um procedimento e executar a função. O exemplo a seguir usa uma ai_prompt
, profile_name
e action
como parâmetros de entrada e chama DBMS_CLOUD_AI.GENERATE
create or replace FUNCTION call_select_ai (ai_prompt IN VARCHAR2,
ai_profile IN VARCHAR2,
ai_action IN VARCHAR2) -- valid for 'chat', 'narrate', 'showsql'
RETURN CLOB AS sai_resp clob;
BEGIN
sai_resp := DBMS_CLOUD_AI.GENERATE(prompt => ai_prompt,
profile_name => ai_profile,
action => ai_action);
return(sai_resp);
END call_select_ai;
Tópico principal: Resumo de Subprogramas DBMS_CLOUD_AI
SET_PROFILE Procedimento
Este procedimento define o perfil de IA para a sessão atual.
Depois de definir um perfil do 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 será gerada usando o AI. Para usar o prefixo AI
, consulte Exemplos de Uso do Select AI e Usar Palavra-chave AI para Inserir Prompts. Opcionalmente, é possível substituir os atributos de perfil ou modificar os atributos especificando-os no formato JSON. Consulte SET_ATTRIBUTE Procedures para definir os atributos.
O perfil do AI só poderá ser definido para a sessão atual se o proprietário do perfil do 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 CRIAR TRIGGER 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 do AI na sessão atual. Este parâmetro é obrigatório. |
Exemplo
BEGIN
DBMS_CLOUD_AI.SET_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
Tópico principal: Resumo de Subprogramas DBMS_CLOUD_AI
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ório | 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 |
Não |
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 |
Não |
O número de registros a serem gerados sinteticamente. |
|
Não | 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 |
|
Não |
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ório | 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 |
Não |
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 |
Não |
O número de registros a serem gerados sinteticamente. Forneça um número maior que 0. Forneça |
|
Número |
Não |
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 | Não | 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 Exemplo: Gerar Dados Sintéticos.
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.
Tópico principal: Resumo de Subprogramas DBMS_CLOUD_AI
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;
/
Tópico principal: Resumo de Subprogramas DBMS_CLOUD_AI
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;
/
Tópico principal: Resumo de Subprogramas DBMS_CLOUD_AI
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:
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:
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;
/
Tópico principal: Resumo de Subprogramas DBMS_CLOUD_AI
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;
/
Tópico principal: Resumo de Subprogramas DBMS_CLOUD_AI
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;
/
Tópico principal: Resumo de Subprogramas DBMS_CLOUD_AI
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.
Sintaxe
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. |
|
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. |
Exemplo
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;
/
Tópico principal: Resumo de Subprogramas DBMS_CLOUD_AI
Atributos de Índice de Vetor
Atributos
Nome do Atributo | Valor | Obrigatório | Descrição |
---|---|---|---|
chunk_size |
1024 (padrão)
|
Não |
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)
|
Não |
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. |
|
Não Aplicável | Sim |
Local do armazenamento de objetos. Os arquivos neste local podem ser documentos em formatos como PDF, DOC, JSON, XML ou HTML. Consulte Formatos de Documento Suportados. |
|
5 (padrão)
|
Não |
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. |
|
Não Aplicável | Sim |
Especifica o nome das credenciais para acessar um armazenamento de objetos. |
|
<vector_index_name>$VECPIPELINE |
Não |
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. |
|
Não Aplicável | Sim |
Nome do perfil do AI que é usado para incorporar dados de origem e prompts do usuário. |
|
1440 minutos (padrão)
|
Não |
Intervalo de atualização de dados no armazenamento de vetores. A unidade é de minutos. |
|
0 (padrão)
|
Não |
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. |
Não |
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. |
|
Não Aplicável | Não |
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. |
|
|
Não |
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;
/
/
Tópico principal: Resumo de Subprogramas DBMS_CLOUD_AI