Paquete DBMS_CLOUD_AI
El paquete DBMS_CLOUD_AI
, con Select AI, facilita y configura la traducción de peticiones de datos en lenguaje natural para generar, ejecutar y explicar sentencias SQL. Además, permite recuperar la generación aumentada y las interacciones basadas en lenguaje natural, incluido el chat con LLM.
- DBMS_CLOUD_AI Visión general
Describe el uso del paqueteDBMS_CLOUD_AI
. - Resumen de los subprogramas DBMS_CLOUD_AI
En esta sección se tratan los subprogramasDBMS_CLOUD_AI
proporcionados con Autonomous Database.
Tema principal: Referencia de paquete proporcionado por Autonomous Database
Visión general de DBMS_CLOUD_AI
Describe el uso del paquete DBMS_CLOUD_AI
.
Utilice el paquete DBMS_CLOUD_AI
para crear perfiles AI y configurarlos para acceder a un modelo de lenguaje grande (LLM). Defina el perfil de AI en la sesión de usuario de base de datos actual para realizar tareas como generar, ejecutar y explicar SQL. Además, permite la recuperación de generación aumentada e interacciones basadas en lenguaje natural, incluido el chat con LLM.
Para obtener más información sobre las plataformas admitidas y los LLM, consulte About Select AI.
Tema principal: Paquete DBMS_CLOUD_AI
Resumen de los subprogramas DBMS_CLOUD_AI
En esta sección se tratan los subprogramas DBMS_CLOUD_AI
que proporciona Autonomous Database.
Subprograma | Descripción |
---|---|
Este procedimiento crea un nuevo perfil de AI para traducir peticiones de datos de lenguaje natural a sentencias SQL. |
|
Proporciona atributos de perfil de AI que puede configurar. |
|
Este procedimiento desactiva un perfil de AI en la base de datos actual. |
|
Este procedimiento elimina un perfil AI existente. |
|
Este procedimiento permite que un perfil AI se utilice en la base de datos actual. |
|
Esta función le permite utilizar Select AI sin estado con su perfil existente. | |
Esta función genera datos sintéticos. |
|
Esta función devuelve el nombre de perfil utilizado en la sesión actual. |
|
Este procedimiento devuelve el nombre de perfil y el propietario del perfil en la sesión actual. |
|
Este procedimiento establece los atributos de perfil de AI. |
|
Este procedimiento establece el perfil de AI para la base de datos actual. |
|
Utilice este procedimiento para activar el envío de datos al LLM. |
|
Utilice este procedimiento para desactivar el envío de datos al LLM. |
|
Este procedimiento crea un índice vectorial en la base de datos vectorial especificada y lo rellena con datos de un almacén de objetos mediante un trabajo de programador asíncrono. |
|
Este procedimiento elimina un índice de almacén de vectores. Normalmente elimina el objeto de índice del almacén de vectores y suprime la base de datos de vectores. |
|
Este procedimiento desactiva un objeto de índice vectorial en la base de datos actual. Cuando está desactivada, un perfil AI no puede utilizar el índice vectorial y el sistema no carga datos en el almacén de vectores. |
|
Este procedimiento activa o activa un objeto de índice vectorial previamente desactivado. |
|
Este procedimiento actualiza un índice de almacén de vectores existente con un valor especificado del atributo de índice de vectores. |
|
Proporciona atributos de perfil de índice vectorial que puede configurar. |
- Procedimiento CREATE_PROFILE
El procedimiento crea un nuevo perfil de AI para traducir peticiones de datos de lenguaje natural a sentencias SQL. - Procedimiento DROP_PROFILE
El procedimiento elimina un perfil de AI existente. Si el perfil no existe, el procedimiento devuelve un error. - Procedimiento ENABLE_PROFILE
Este procedimiento activa el perfil AI que especifica el usuario. El procedimiento cambia el estado del perfil de AI aENABLED
. - Procedimiento DISABLE_PROFILE
Este procedimiento desactiva el perfil AI en la base de datos actual. El estado del perfil de AI se cambia aDISABLED
mediante este procedimiento. - Función GET_PROFILE
Esta función devuelve el nombre de perfil AI definido en la sesión actual. - Procedimiento GET_PROFILE
Este procedimiento devuelve el nombre de perfil de AI y el juego de propietarios en la sesión actual. - Procedimiento SET_ATTRIBUTE
Este procedimiento permite definir atributos de perfil de AI. Se sobrecarga aceptar valores de atributo de varios tipos. - Procedimiento SET_PROFILE
Este procedimiento establece el perfil de AI para la sesión actual. - Función GENERATE
Esta función proporciona traducción AI sin estado. Con su perfil de AI existente, puede utilizar esta función para realizar las acciones soportadas, comoshowsql
,runsql
,explainsql
,narrate
ychat
. La acción por defecto esshowsql
. - Función GENERATE_SYNTHETIC_DATA
Utilice este procedimiento para generar datos sintéticos para una sola tabla, varias tablas o un esquema completo. - Atributos de perfil
Los atributos de un perfil de AI ayudan a gestionar y configurar el comportamiento del perfil de AI. Algunos atributos son opcionales y tienen un valor por defecto. - Procedimiento ENABLE_DATA_ACCESS
Este procedimiento permite enviar datos al LLM para las funciones de selección de AI aplicables, que es el comportamiento predeterminado. Sólo el administrador puede ejecutar este procedimiento. - Procedimiento DISABLE_DATA_ACCESS
Este procedimiento desactiva el envío de datos al LLM para las funciones de selección de AI aplicables. Sólo el administrador puede ejecutar este procedimiento. - Procedimiento CREATE_VECTOR_INDEX
Este procedimiento crea un índice vectorial en la base de datos vectorial especificada y lo rellena con datos de un almacén de objetos mediante un trabajo de programador asíncrono. - Procedimiento DROP_VECTOR_INDEX
Este procedimiento elimina un índice de almacén de vectores. Normalmente elimina el objeto de índice del almacén de vectores y suprime el almacén de vectores. Si se define enFALSE
, el argumentoinclude_data
garantiza que el procedimiento solo elimina el objeto de índice del almacén de vectores mientras mantiene el almacén de vectores. - Procedimiento DISABLE_VECTOR_INDEX
Este procedimiento desactiva un objeto de índice vectorial en la base de datos actual. Cuando está desactivado, un perfil de AI no puede utilizar el índice vectorial y el sistema no carga datos en el almacén vectorial a medida que se agregan nuevos datos al almacén de objetos y no realiza la indexación, la búsqueda o la consulta en función del índice. - Procedimiento ENABLE_VECTOR_INDEX
Este procedimiento activa o activa un objeto de índice de vector previamente desactivado. Por lo general, al crear un índice vectorial, por defecto se activa de modo que el perfil de AI pueda utilizarlo para realizar la indexación y la búsqueda. - Procedimiento UPDATE_VECTOR_INDEX
Este procedimiento actualiza un índice de almacén de vectores existente con un valor especificado del atributo de índice de vectores. Se sobrecarga aceptar valores de atributo de varios tipos. - Atributos de índice de vector
Los atributos de un índice de vector ayudan a gestionar y configurar el comportamiento del índice de vector. Puede agregar atributos de índice personalizados según sea necesario. Algunos atributos son opcionales y tienen un valor por defecto.
Tema principal: Paquete DBMS_CLOUD_AI
Procedimiento CREATE_PROFILE
El procedimiento crea un nuevo perfil de AI para traducir peticiones de datos de lenguaje natural a sentencias SQL.
Sintaxis
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 | Descripción |
---|---|
|
Un nombre para el perfil de AI. El nombre del perfil debe seguir las reglas de nomenclatura del identificador SQL de Oracle. La longitud máxima del nombre de perfil es de 125 caracteres. Este parámetro es obligatorio. |
|
Atributos de perfil en formato JSON. Consulte Atributos de perfil de AI para obtener más información. El valor por defecto es NULL. |
status |
Estado del perfil. El valor por defecto es activada. |
|
Descripción del perfil de AI. El valor por defecto es NULL. |
Ejemplo
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;
/
Procedimiento DROP_PROFILE
El procedimiento elimina un perfil AI existente. Si el perfil no existe, el procedimiento devuelve un error.
Sintaxis
DBMS_CLOUD_AI.DROP_PROFILE
(
profile_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE
);
Parámetros
parámetro | Descripción |
---|---|
|
Nombre del perfil de AI |
|
Si es El valor por defecto de este parámetro es |
Ejemplo
BEGIN
DBMS_CLOUD_AI.DROP_PROFILE
(profile_name => 'OPENAI');
END;
/
Notas de Uso
Utilice force
para borrar un perfil e ignorar los errores si el perfil AI no existe.
Tema principal: Resumen de los subprogramas DBMS_CLOUD_AI
Procedimiento ENABLE_PROFILE
Este procedimiento activa el perfil AI que especifica el usuario. El procedimiento cambia el estado del perfil de AI a ENABLED
.
Sintaxis
DBMS_CLOUD_AI.ENABLE_PROFILE
(
profile_name IN VARCHAR2
);
Parámetros
parámetro | Descripción |
---|---|
|
Nombre del perfil de AI que activar Este parámetro es obligatorio. |
Ejemplo para activar el perfil de AI
BEGIN
DBMS_CLOUD_AI.ENABLE_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
Tema principal: Resumen de los subprogramas DBMS_CLOUD_AI
Procedimiento DISABLE_PROFILE
Este procedimiento desactiva el perfil AI en la base de datos actual. El estado del perfil de AI se cambia a DISABLED
mediante este procedimiento.
Sintaxis
DBMS_CLOUD_AI.DISABLE_PROFILE
(
profile_name IN VARCHAR2
);
Parámetros
parámetro | Descripción |
---|---|
|
Nombre del perfil de AI. Este parámetro es obligatorio. |
Ejemplo
BEGIN
DBMS_CLOUD_AI.DISABLE_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
Tema principal: Resumen de los subprogramas DBMS_CLOUD_AI
Función GET_PROFILE
Esta función devuelve el nombre de perfil de AI definido en la sesión actual.
Sintaxis
DBMS_CLOUD_AI.GET_PROFILE
(
profile_name IN VARCHAR2
);
Parámetros
parámetro | Descripción |
---|---|
|
Un nombre para el perfil de AI en la sesión actual. Este parámetro es obligatorio. |
Ejemplo
En este ejemplo, se muestra cómo puede mostrar el nombre del perfil en la sesión actual.
SELECT DBMS_CLOUD_AI.GET_PROFILE
from DUAL;
Tema principal: Resumen de los subprogramas DBMS_CLOUD_AI
Procedimiento GET_PROFILE
Este procedimiento devuelve el nombre del perfil AI y el propietario establecido en la sesión actual.
Sintaxis
DBMS_CLOUD_AI.GET_PROFILE
(
profile_name OUT VARCHAR2,
profile_owner OUT VARCHAR2
);
Parámetros
parámetro | Descripción |
---|---|
|
Un nombre para el perfil de AI en la sesión actual. Este parámetro es obligatorio. |
profile_owner |
Identifica al propietario del perfil AI en la sesión actual. |
Ejemplo
En este ejemplo se muestra cómo puede mostrar el nombre y el propietario del perfil en la sesión actual.
DECLARE
l_profile_name DBMS_ID;
l_profile_owner DBMS_ID;
BEGIN
DBMS_CLOUD_AI.GET_PROFILE
(profile_name => l_profile_name,
profile_owner => l_profile_owner);
END;
Procedimiento SET_ATTRIBUTE
Este procedimiento permite definir atributos de perfil de AI. Se sobrecarga aceptar valores de atributo de varios tipos.
Sintaxis
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
Solo el propietario puede definir o modificar los atributos del perfil AI. Para ver una lista de atributos admitidos, consulte Profile Attributes.
parámetro | Descripción |
---|---|
|
Nombre del perfil de AI para el que desea definir los atributos. Este parámetro es obligatorio. |
|
Nombre del atributo de perfil de AI Este parámetro es obligatorio. |
|
Valor del atributo del perfil. El valor puede ser de tipo El valor por defecto es NULL. |
Ejemplos
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name => 'OPENAI',
attribute_name => 'credential_name',
attribute_value => 'OPENAI_CRED_NEW'
);
END;
/
En el siguiente ejemplo se acepta el tipo NUMBER
como attribute_value
.
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE(
profile_name => 'OCI_PROFILE',
attribute_name => 'temperature',
attribute_value => 0.5
);
END;
/
En el siguiente ejemplo se acepta el tipo BOOLEAN
como attribute_value
.
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name => 'OCI_PROFILE',
attribute_name => 'comments',
attribute_value => 'true'
);
END;
/
En el siguiente ejemplo se acepta el 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;
/
Tema principal: Resumen de los subprogramas DBMS_CLOUD_AI
Procedimiento SET_PROFILE
Este procedimiento establece el perfil de AI para la sesión actual.
Después de definir un perfil de AI para la sesión de base de datos, cualquier sentencia SQL con el prefijo SELECT AI
se considera una petición de datos de lenguaje natural. Según la acción que especifique con el prefijo AI
, se genera una respuesta mediante AI. Para utilizar el prefijo AI
, consulte Examples of Using Select AI y Use AI Keyword to Enter Prompts. Opcionalmente, es posible sustituir los atributos de perfil o modificar los atributos especificándolos en formato JSON. Consulte Procedimiento SET_ATTRIBUTE para definir los atributos.
El perfil AI solo se puede configurar para la sesión actual si el propietario del perfil AI es el usuario de la sesión.
Para definir un perfil de AI para todas las sesiones de un usuario de base de datos específico o todas las sesiones de usuario de la base de datos, considere el uso de un disparador de evento de base de datos para el evento AFTER LOGON
en el usuario específico o en toda la base de datos. Consulte Sentencia CREATE TRIGGER para obtener más información.
Sintaxis
DBMS_CLOUD_AI.SET_PROFILE
(
profile_name IN VARCHAR2,
);
Parámetros
parámetro | Descripción |
---|---|
|
Un nombre para el perfil de AI en la sesión actual. Este parámetro es obligatorio. |
Ejemplo
BEGIN
DBMS_CLOUD_AI.SET_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
Tema principal: Resumen de los subprogramas DBMS_CLOUD_AI
GENERAR Función
showsql
, runsql
, explainsql
, narrate
y chat
. La acción por defecto es showsql
.
También es posible sustituir algunos o todos los atributos de perfil mediante esta función.
Sintaxis
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 | Descripción |
---|---|
|
Lenguaje natural para traducir con IA. La petición de datos puede incluir Este parámetro es obligatorio. |
|
Nombre del perfil de AI. Este parámetro es opcional si ya se ha definido un perfil de AI en la sesión mediante El valor por defecto es NULL. Se aplican las siguientes condiciones:
Nota
Para Database Actions, puede especificar el argumento profile_name en DBMS_CLOUD_AI.GENERATE o puede ejecutar dos pasos como script PL/SQL: DBMS_CLOUD_AI.SET_PROFILE y DBMS_CLOUD_AI.GENERATE .
|
action |
Acción para traducir la petición de datos natural mediante IA. Las acciones soportadas incluyen |
attributes |
Sustituya atributos de perfil de AI específicos mediante el suministro de atributos en formato JSON. Consulte Atributos de perfil para obtener más información. |
Ejemplos
En los siguientes ejemplos se muestran las acciones runsql
, showsql
, explainsql
, narrate
y chat
que se pueden utilizar con la función DBMS_CLOUD_AI.GENERATE
. Consulte también Use AI Keyword to Enter Prompts para obtener más información.
Un ejemplo con la acción runsql
es el siguiente:
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'runsql)
FROM dual;
Un ejemplo con la acción showsql
es el siguiente:
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'showsql')
FROM dual;
Un ejemplo con la acción explainsql
es el siguiente:
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'explainsql)
FROM dual;
Un ejemplo con la acción narrate
es el siguiente:
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'narrate')
FROM dual;
Un ejemplo con la acción chat
es el siguiente:
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'what is oracle autonomous database',
profile_name => 'OPENAI',
action => 'chat')
FROM dual;
Puede utilizar DBMS_CLOUD_AI.GENERATE
en un procedimiento y ejecutar la función. En el siguiente ejemplo, se toma ai_prompt
, profile_name
y action
como parámetros de entrada y se llama a 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;
Tema principal: Resumen de los subprogramas DBMS_CLOUD_AI
Función GENERATE_SYNTHETIC_DATA
A continuación se muestra la sintaxis para generar datos sintéticos para una única tabla.
Sintaxis
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
);
A continuación se muestra la sintaxis para generar datos sintéticos para varias tablas.
DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
profile_name IN VARCHAR2,
object_list IN CLOB,
params IN CLOB DEFAULT NULL
);
Si no desea que los datos de tabla o los documentos de búsqueda vectorial se envíen a un LLM, un usuario con privilegios de administrador puede desactivar dicho acceso para todos los usuarios de la base de datos determinada. De hecho, desactiva la acción narrate
.
Parámetro
parámetro | obligatorio | Descripción |
---|---|---|
|
Si |
El perfil AI que contiene la información de servicio de LLM necesaria. Esto se puede crear mediante el procedimiento CREATE_PROFILE. |
|
Si | Especifique un nombre de tabla para rellenar los datos sintéticos.
|
owner_name |
No |
Especifique el usuario de base de datos propietario del objeto al que se hace referencia. Si no se proporciona ningún propietario específico, el procedimiento utiliza por defecto el esquema del usuario que lo ejecuta. |
record_count |
No |
Número de registros que se van a generar sintéticamente. |
|
No | Información adicional que un usuario puede mencionar para generar datos sintéticos. Por ejemplo, para generar un registro para una tabla denominada MOVIE con una columna release_date , user_prompt puede ser:
La fecha de estreno de las películas debería ser en 2019 |
|
No |
Atributos opcionales proporcionados en formato de cadena de objeto JSON para modificar el comportamiento de una API. Consulte Optional Parameters. |
|
Si | Utilice este parámetro para generar datos sintéticos en varias tablas. Este parámetro toma la información del objeto de tabla junto con sus argumentos y contiene los mismos argumentos proporcionados en la tabla única. Consulte object_list Parámetros. |
Parámetros Opcionales
parámetro | Tipo de dato de valor | Valor | Descripción |
---|---|---|---|
|
Número |
|
Especifique el número de filas de la tabla que se utilizará como ejemplo para guiar al LLM en la generación de datos. Un valor de 0 significa que no se utilizará ninguna fila de ejemplo. El valor por defecto es |
|
Booleano |
|
Activar o desactivar el uso de información de estadísticas de tabla. El valor por defecto es |
|
Cadena |
Valores válidos:
|
Asigne un valor de prioridad que defina el número de solicitudes paralelas enviadas al LLM para generar datos sintéticos. Las tareas con mayor prioridad consumirán más recursos de base de datos y se completarán más rápido. El valor por defecto es
El número máximo de procesos paralelos simultáneos utilizados para la generación de datos sintéticos está limitado a 64. |
|
Booleano |
|
Active o desactive el envío de comentarios al LLM para guiar la generación de datos. El valor por defecto es |
Parámetros de object_list
parámetro | Tipo de dato de valor | obligatorio | Descripción |
---|---|---|---|
|
Cadena |
Si |
Especifica el usuario de base de datos propietario del objeto al que se hace referencia. Si no se proporciona ningún propietario específico, el procedimiento utilizará por defecto el esquema del usuario que lo ejecuta. |
|
Cadena |
No |
Especifique un nombre de tabla para rellenar los datos sintéticos. Los privilegios SELECT y INSERT en los objetos de tabla son necesarios para que el usuario que utiliza la tabla it.The esté vacío o tenga registros en él.
|
|
Número |
No |
Número de registros que se van a generar sintéticamente. Proporcione un número mayor que 0. Proporcione |
|
Número |
No |
Porcentaje del número de registros que se van a generar sintéticamente. Proporcione un número mayor que 0. Para una base de datos de clonación de metadatos, donde se conservan los metadatos de tabla, incluidas las estadísticas, está soportado el parámetro Proporcione Al utilizar el parámetro
record_count_percentage , el recuento final de registros de la tabla se calcula de la siguiente forma:
|
|
Cadena | No | Igual que user_prompt en Parámetros. user_prompt está asociado a un objeto de tabla específico.
|
Ejemplos
En los siguientes ejemplos se muestra la función DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA
para generar datos sintéticos para una única tabla y varias tablas. Para ver un ejemplo completo y ver más ejemplos, consulte Ejemplo: Generación de Datos 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.
Tema principal: Resumen de los subprogramas DBMS_CLOUD_AI
Atributos de Perfil
Atributos
Nombre de Atributo | Descripción |
---|---|
|
Proporciona metadatos adicionales sobre las tablas y columnas de la base de datos mediante la función de anotaciones de 23ai. Los valores válidas son
|
|
Nombre del modelo desplegado del servicio OpenAI de Azure. El nombre solo puede incluir caracteres alfanuméricos, caracteres de subrayado (_) y guiones (-). El nombre no puede terminar con un guión bajo (_) o un guión (-). Para obtener información sobre cómo obtener |
|
Nombre del modelo de embebido desplegado de Azure OpenAI. El nombre solo puede incluir caracteres alfanuméricos, guiones bajos y guiones. El nombre no puede comenzar ni terminar con un guion o un guion bajo. |
|
Nombre del recurso de servicio OpenAI de Azure. El nombre del recurso solo puede incluir caracteres alfanuméricos y guiones, y no puede empezar ni terminar con un guion. Para obtener información sobre cómo obtener |
|
Especifica si Select AI debe indicar al LLM que genere SQL no sensible a mayúsculas/minúsculas para las columnas que contienen valores de cadena o texto. Los valores soportados son:
El valor por defecto es |
|
Incluye comentarios de nivel de tabla y comentarios de columna en los metadatos utilizados para traducir peticiones de datos en lenguaje natural mediante AI. El tipo de dato Nota
Para el procedimiento DBMS_CLOUD_AI.SET_ATTRIBUTE , al definir un único atributo, proporcione el parámetro attribute_value como una cadena ('true' o 'false') porque el parámetro attribute_value es del tipo de dato CLOB .
|
|
Gestiona si se deben incluir restricciones de integridad referencial, como claves primarias y ajenas, en los metadatos enviados al LLM. Los valores válidas son
|
|
Atributo |
|
Nombre de la credencial para acceder a las API del proveedor de AI. La credencial que utiliza tokens de portador se puede crear mediante el nombre del proveedor como nombre de usuario y el token de portador como contraseña. También están soportadas las credenciales de secreto de almacén. También está soportada la autenticación de principal, por ejemplo, entidad de servicio de Azure. Para obtener más información sobre cómo configurarlo, consulte Uso de una entidad de servicio de Azure para acceder a los recursos de Azure. Es un atributo obligatorio. Consulte CREATE_CREDENTIAL Procedimiento. |
|
Modelo de incrustación definido en el perfil de IA. A continuación, se muestran los proveedores de IA admitidos para los modelos de embebido con sus valores por defecto:
Nota
|
|
Especifica si se debe restringir el LLM para generar SQL que utilice solo tablas cubiertas por la lista de objetos. Los valores admitidos son:
Los datos no distinguen entre mayúsculas y minúsculas. El valor por defecto es |
|
Indica el número de tokens que se deben predecir por generación. El valor por defecto es 1024. Consulte Tokens and Tokenizers para obtener más información. |
|
Nombre del modelo de IA que se utiliza para generar respuestas. Consulte Select your AI Provider and LLMs y especifique el nombre del modelo. Nota
|
|
Matriz de objetos JSON que especifica el propietario y los nombres de objeto que son elegibles para la traducción de lenguaje natural a SQL. Para incluir todos los objetos de un usuario determinado, omita el "nombre" y especifique solo la clave "propietario" en el objeto JSON. Se pueden utilizar los siguientes tipos de objetos:
Para la traducción del lenguaje natural a SQL, el nombre del objeto, el propietario del objeto, las columnas del objeto y los comentarios se envían al proveedor de AI mediante solicitudes HTTPS. Evite especificar objetos con nombre de objeto confidencial, nombres de columna o comentarios en la lista de objetos. Los proveedores de AI pueden tener un límite en el tamaño de metadatos permitido en las solicitudes de traducción. Considere limitar la lista de objetos adecuados para las peticiones de datos de lenguaje natural de los usuarios de la aplicación. Formato:
Las tablas externas creadas mediante la sincronización de OCI Data Catalog o AWS Glue también se pueden utilizar en la lista de objetos. Esto ayuda a gestionar metadatos en catálogos de datos centrales y a utilizar los metadatos directamente para traducir peticiones de datos de lenguaje natural mediante IA. |
|
Especifica si se deben enviar metadatos para las tablas más relevantes o todas las tablas al LLM. Los valores soportados son:
Cuando |
|
Especifica el formato en el que la API espera que se envíen y reciban los datos. Utilice este atributo para generar respuestas de texto. Este atributo se aplica a los modelos de chat de IA generativa de OCI en un cluster de IA dedicado. Especifique este atributo al especificar un OCID de modelo en el atributo Los valores soportados son:
|
|
Especifica el OCID del compartimento al que tiene permiso para acceder al llamar al servicio OCI Generative AI. El ID de compartimento puede contener caracteres alfanuméricos, guiones y puntos. El valor por defecto es el ID de compartimento de la PDB. |
|
Este atributo indica el OCID de punto final del cluster de alojamiento de AI dedicado de Oracle. El ID de punto final puede contener caracteres alfanuméricos, guiones y puntos. Para buscar el OCID de punto final, consulte Obtención de detalles de un punto final en IA generativa. Cuando desee utilizar el cluster de AI dedicado de Oracle, debe proporcionar el OCID de punto final del cluster de alojamiento. Por defecto, el ID de punto final está vacío y el modelo está bajo demanda en una infraestructura compartida. |
|
Este atributo indica el tipo de tiempo de ejecución del modelo proporcionado. Este atributo se aplica a los modelos Generar texto de OCI en un cluster de IA dedicado. Especifique este atributo al especificar un OCID de modelo en el atributo Todos los valores permitidos se pueden encontrar en OCI Generative AI runtimeType. Consulte LlmInferenceRequest Reference. Los valores admitidos son:
Nota
Este atributo está en desuso. Utilice oci_apiformat .
|
|
Proveedor de AI para el perfil de AI. Proveedores soportados:
Es un atributo obligatorio. |
|
Este atributo indica la ubicación del cluster de AI generativo que desea utilizar. La región puede contener caracteres alfanuméricos y caracteres de guion.
Nota
La región por defecto es El cluster de IA generativa de Oracle está disponible en las regiones de Chicago, Frankfurt y Londres. Consulte Pretrained Foundational Models in Generative AI. us-chicago-1 .
|
|
El texto generado se terminará al principio de la secuencia de parada más temprana. La secuencia se incorporará al texto. El valor de atributo debe ser una matriz válida de valores de cadena en formato JSON. |
|
El muestreo de los modelos Generate Text incorpora aleatoriedad, de modo que la misma petición de datos pueda producir salidas diferentes cada vez que pulse "generate". La temperatura es un número de flotador no negativo utilizado para ajustar el grado de aleatoriedad. Las temperaturas más bajas significan generaciones menos aleatorias. Consulte Temperatura para obtener más información. Este parámetro es aplicable a todos los proveedores de servicios soportados. |
|
Nombre del índice del vector. El nombre del índice vectorial debe seguir las reglas de nomenclatura del identificador SQL de Oracle. La longitud máxima del nombre del almacén de vectores es 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;
/
En el siguiente ejemplo se muestran los atributos de perfil personalizados mediante 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;
/
Tema principal: Resumen de los subprogramas DBMS_CLOUD_AI
Procedimiento ENABLE_DATA_ACCESS
Este procedimiento permite enviar datos al LLM para las funciones Select AI aplicables, que es el comportamiento predeterminado. Sólo el administrador puede ejecutar este procedimiento.
Este procedimiento controla el acceso a los datos para las siguientes capacidades de selección de AI:
- Acción
narrate
- Generación aumentada por recuperación (RAG)
- Generación de datos sintéticos
Sintaxis
DBMS_CLOUD_AI.ENABLE_DATA_ACCESS
();
Parámetro
Este procedimiento no necesita ningún parámetro.
Ejemplo para activar el acceso a datos
BEGIN
DBMS_CLOUD_AI.ENABLE_DATA_ACCESS
();
END;
/
Tema principal: Resumen de los subprogramas DBMS_CLOUD_AI
Procedimiento DISABLE_DATA_ACCESS
Este procedimiento desactiva el envío de datos al LLM para las funciones de Select AI aplicables. Sólo el administrador puede ejecutar este procedimiento.
Este procedimiento limita las siguientes capacidades de selección de AI:
- Acción
narrate
- Generación aumentada por recuperación (RAG)
- Generación de datos sintéticos
Sintaxis
DBMS_CLOUD_AI.DISABLE_DATA_ACCESS
();
Parámetro
Este procedimiento no necesita ningún parámetro.
Ejemplo para desactivar el acceso a datos
BEGIN
DBMS_CLOUD_AI.DISABLE_DATA_ACCESS
();
END;
/
Tema principal: Resumen de los subprogramas DBMS_CLOUD_AI
Procedimiento CREATE_VECTOR_INDEX
Este procedimiento crea un índice vectorial en la base de datos vectorial especificada y lo rellena con datos de un almacén de objetos mediante un trabajo de programador asíncrono.
Sintaxis
PROCEDURE CREATE_VECTOR_INDEX(
index_name IN VARCHAR2,
attributes IN CLOB DEFAULT NULL,
status IN VARCHAR2 DEFAULT NULL,
description IN CLOB DEFAULT NULL
);
Parámetro
parámetro | Descripción |
---|---|
|
Nombre del índice del vector. El nombre del índice vectorial debe seguir las reglas de nomenclatura del identificador SQL de Oracle. La longitud máxima del nombre del almacén de vectores es de 125 caracteres. Este parámetro es obligatorio. |
|
Atributos personalizados para el índice vectorial en JSON. Para ver una lista de parámetros configurables, consulte Vector Index Attributes. El valor por defecto es NULL. |
status |
Estado del índice vectorial. Los valores posibles son los siguientes:
El valor por defecto es Desactivado. |
|
Descripción del índice vectorial. El valor por defecto es NULL. |
Ejemplo
En el siguiente ejemplo se muestra cómo crear un índice vectorial y configurar los 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;
/
Procedimiento DROP_VECTOR_INDEX
Este procedimiento elimina un índice de almacén de vectores. Normalmente elimina el objeto de índice del almacén de vectores y suprime el almacén de vectores. Si se define en FALSE
, el argumento include_data
garantiza que el procedimiento solo elimina el objeto de índice del almacén de vectores mientras mantiene el almacén de vectores.
Sintaxis
PROCEDURE DROP_VECTOR_INDEX(
index_name IN VARCHAR2,
include_data IN BOOLEAN DEFAULT TRUE,
force IN BOOLEAN DEFAULT FALSE
);
Parámetro
parámetro | Descripción |
---|---|
|
Nombre del índice vectorial. El nombre del índice vectorial debe seguir las reglas de nomenclatura del identificador SQL de Oracle. La longitud máxima del nombre del almacén de vectores es de 125 caracteres. Este parámetro es obligatorio. |
|
Indica si se debe suprimir el almacén de vectores y el índice de vectores del cliente junto con el objeto de índice de vectores. Posibles valores:
El valor por defecto es |
force |
Indica si se ignoran los errores que se producen si el índice vectorial no existe. Posibles valores:
Si se define en El valor por defecto es |
Ejemplo
BEGIN
DBMS_CLOUD_AI.DROP_VECTOR_INDEX(
index_name => 'MY_INDEX',
include_data => FALSE,
force => TRUE
);
END;
/
Tema principal: Resumen de los subprogramas DBMS_CLOUD_AI
Procedimiento DISABLE_VECTOR_INDEX
Este procedimiento desactiva un objeto de índice vectorial en la base de datos actual. Cuando está desactivado, un perfil de AI no puede utilizar el índice vectorial y el sistema no carga datos en el almacén vectorial a medida que se agregan nuevos datos al almacén de objetos y no realiza la indexación, la búsqueda o la consulta en función del índice.
Sintaxis
DBMS_CLOUD_AI.DISABLE_VECTOR_INDEX
(
index_name IN VARCHAR2
);
Parámetro
parámetro | Descripción |
---|---|
|
Nombre del índice del vector. El nombre del índice vectorial debe seguir las reglas de nomenclatura del identificador SQL de Oracle. La longitud máxima del nombre del almacén de vectores es de 125 caracteres. Este parámetro es obligatorio. |
Ejemplo
Puede desactivar un índice vectorial proporcionando el nombre del índice vectorial.
BEGIN
DBMS_CLOUD_AI.DISABLE_VECTOR_INDEX
(index_name => 'MY_INDEX');
END;
/
Tema principal: Resumen de los subprogramas DBMS_CLOUD_AI
Procedimiento ENABLE_VECTOR_INDEX
Este procedimiento activa o activa un objeto de índice vectorial previamente desactivado. Por lo general, al crear un índice vectorial, por defecto se activa de modo que el perfil de AI pueda utilizarlo para realizar la indexación y la búsqueda.
Cuando está activado, un índice vectorial permite que un perfil de AI lo utilice para cargar nuevos datos de un almacén de objetos en un almacén vectorial con un ratio de refrescamiento especificado por el usuario. Puede especificar el parámetro refresh_rate
a través de la lista de objetos JSON. Para configurar los atributos de JSON, consulte Atributos de índice de vector.
Sintaxis
DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX
(
index_name IN VARCHAR2
);
Parámetro
parámetro | Descripción |
---|---|
|
Nombre del índice del vector. El nombre del índice vectorial debe seguir las reglas de nomenclatura del identificador SQL de Oracle. La longitud máxima del nombre del almacén de vectores es de 125 caracteres. Este parámetro es obligatorio. |
Ejemplo
Puede activar o activar un índice vectorial especificando el nombre del índice vectorial de la siguiente manera:
BEGIN
DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX
(index_name => 'MY_INDEX');
END;
/
Tema principal: Resumen de los subprogramas DBMS_CLOUD_AI
Procedimiento UPDATE_VECTOR_INDEX
Este procedimiento actualiza un índice de almacén de vectores existente con un valor especificado del atributo de índice de vectores. Se sobrecarga aceptar valores de atributo de varios tipos.
Sintaxis
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ámetro
parámetro | Descripción |
---|---|
|
Nombre del índice del vector. El nombre del índice vectorial debe seguir las reglas de nomenclatura del identificador SQL de Oracle. La longitud máxima del nombre del almacén de vectores es de 125 caracteres. Este parámetro es obligatorio. |
|
Nombre de los atributos personalizados especificados como parámetros JSON en el procedimiento No puede modificar los siguientes atributos:
Este parámetro es obligatorio. |
attribute_value |
Valor especificado por el usuario para el El valor por defecto es NULL. |
Ejemplo
BEGIN
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX
(
index_name => 'MY_INDEX',
attribute_name => 'object_storage_credential_name',
attribute_value => 'NEW_CRED'
);
END;
/
En el siguiente ejemplo se acepta el tipo NUMBER
como attribute_value
.
BEGIN
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX
(
index_name => 'MY_INDEX',
attribute_name => 'match_limit',
attribute_value => 10
);
END;
/
En el siguiente ejemplo se acepta el 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;
/
Tema principal: Resumen de los subprogramas DBMS_CLOUD_AI
Atributos de Índice de Vector
Atributos
Nombre de Atributo | Valor | obligatorio | Descripción |
---|---|---|---|
chunk_size |
1024 (por defecto)
|
No |
Tamaño de texto de fragmentación de los datos de entrada. Para los datos de texto, esto significa el número de caracteres. |
chunk_overlap |
128 (por defecto)
|
No |
Especifica la cantidad de caracteres superpuestos entre fragmentos de texto adyacentes. Este atributo es útil para garantizar la continuidad contextual y la precisión en el procesamiento de texto al permitir superposiciones entre segmentos, lo que ayuda a evitar la pérdida de información contextual en los límites de fragmentos. |
|
N/A | Si |
Ubicación del almacén de objetos. Los archivos de esta ubicación pueden ser documentos en formatos como PDF, DOC, JSON, XML o HTML. Consulte Formatos de Documento Soportados. |
|
5 (por defecto)
|
No |
Especifica el número máximo de resultados que se devolverán en una consulta de búsqueda vectorial, controlando el tamaño de salida y mejorando la eficacia de las operaciones de recuperación de datos. |
|
N/A | Si |
Especifica el nombre de las credenciales para acceder a un almacenamiento de objetos. |
|
<vector_index_name>$VECPIPELINE |
No |
Especifica el nombre del pipeline de carga de datos de índice vectorial. Este atributo se define automáticamente para el índice vectorial; no se puede especificar ni modificar. El nombre de pipeline se puede utilizar para supervisar la carga de datos de índice vectorial mediante Supervisión y solución de problemas de pipelines. |
|
N/A | Si |
Nombre del perfil AI que se utiliza para embeber datos de origen y peticiones de datos de usuario. |
|
1440 minutos (por defecto)
|
No |
Intervalo de actualización de datos en el almacén de vectores. La unidad es de minutos. |
|
0 (por defecto)
|
No |
Define el nivel mínimo de similitud necesario para que dos elementos se consideren una coincidencia, útil para filtrar los resultados en algoritmos de coincidencia para garantizar la relevancia. |
|
Cadena correspondiente a uno de los valores especificados en la descripción. |
No |
Especifica el tipo de cálculo de distancia utilizado para comparar vectores en una base de datos, determinando cómo se cuantifica la similitud entre elementos. Valores válidos para Oracle 23ai:
|
|
|
Si |
Especifica el nombre del proveedor que gestiona y sirve como almacén de vectores. |
|
N/A | No |
Especifica el número de elementos de cada vector dentro del almacén de vectores, definiendo el tamaño y la estructura de la representación de datos. |
|
|
Número |
Especifica el nombre de la tabla o recopilación para almacenar incrustaciones de vectores y datos fragmentados. |
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;
/
/
Tema principal: Resumen de los subprogramas DBMS_CLOUD_AI