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 la generación aumentada de recuperación y las interacciones basadas en lenguaje natural, incluido el chat con LLM.
Consulte además:
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 AI en la sesión de usuario de la base de datos actual para realizar tareas como la generación, ejecución y explicación de SQL. Además, permite la generación aumentada de recuperación y las interacciones basadas en lenguaje natural, incluido el chat con LLM.
Para obtener más información sobre las plataformas y los LLM admitidos, consulte About Select AI.
Resumen de Subprogramas DBMS_CLOUD_AI
En esta sección se tratan los subprogramas DBMS_CLOUD_AI y las referencias de parámetros o atributos de soporte proporcionadas con Autonomous AI Database.
| Subprograma | Descripción |
|---|---|
| Procedimiento CREATE_PROFILE | Este procedimiento crea un nuevo perfil de AI para traducir peticiones de datos en lenguaje natural a sentencias SQL. |
| Atributos de Perfil | Proporciona atributos de perfil de AI que puede configurar. |
| Procedimiento CLEAR_PROFILE | Este procedimiento borra un perfil de AI activo en la sesión actual. |
| Procedimiento DISABLE_PROFILE | Este procedimiento desactiva un perfil de AI en la base de datos actual. |
| Procedimiento DROP_PROFILE | Este procedimiento borra un perfil de AI existente. |
| Procedimiento ENABLE_PROFILE | Este procedimiento permite que un perfil AI se utilice en la base de datos actual. |
| Función GENERATE | Esta función le permite utilizar Select AI sin estado con su perfil existente. |
| Función GENERATE_MONOETIC_DATA | Esta función genera datos sintéticos. |
| Función GET_PROFILE | Esta función devuelve el nombre de perfil utilizado en la sesión actual. |
| Procedimiento SET_ATTRIBUTE | Este procedimiento establece los atributos de perfil de AI. |
| Procedimiento SET_ATTRIBUTES | Este procedimiento le permite definir uno o más atributos de perfil AI mediante la aceptación de pares de nombre y valor de atributo en formato JSON. |
| Procedimiento SET_PROFILE | Este procedimiento define el perfil AI para la base de datos actual. |
| Procedimiento ENABLE_DATA_ACCESS | Utilice este procedimiento para activar el envío de datos al LLM. |
| Procedimiento DISABLE_DATA_ACCESS | Use este procedimiento para desactivar el envío de datos a su LLM. |
| Procedimiento FEEDBACK | Use este procedimiento para mejorar potencialmente la precisión de la generación de consultas al proporcionar comentarios a Select AI. |
| Índice vectorial para FEEDBACK | Se trata de un índice vectorial por defecto creado cuando se utiliza por primera vez feedback. |
| Procedimiento CREATE_CONVERSATION | Este procedimiento le ayuda a crear una conversación. |
| Función CREATE_CONVERSATION | Esta función ayuda a crear una conversación y a utilizar la ID. de conversación en otros procedimientos. |
| Atributos CREATE_CONVERSATION | Utilice los atributos de conversación para personalizar las conversaciones. |
| Procedimiento UPDATE_CONVERSATION | Este procedimiento actualiza un procedimiento existente con parámetros especificados por el usuario. |
| Procedimiento SET_CONVERSATION_ID | Este procedimiento establece el soporte de conversación en la sesión actual. |
| Función GET_CONVERSATION_ID | Este procedimiento le ayuda a obtener el parámetro conversation_id. |
| Procedimiento CLEAR_CONVERSATION_ID | Este procedimiento le ayuda a borrar cualquier conversation_id definido en la sesión actual. |
| Procedimiento DELETE_CONVERSATION_PROMPT | Este procedimiento suprime una petición de datos concreta. |
| Procedimiento DROP_CONVERSATION | Este procedimiento suprime una conversación completa y sus metadatos. |
| Función SUMMARIZE | Esta función resume el contenido en función de los parámetros. |
| Parámetros SUMMARIZE | Utilice los atributos de resumen para personalizar la generación de resumen. |
| 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 vectorial y suprime la base de datos vectorial. |
| Procedimiento DISABLE_VECTOR_INDEX | Este procedimiento desactiva un objeto de índice vectorial en la base de datos actual. Cuando se desactiva, un perfil AI no puede utilizar el índice vectorial y el sistema no carga datos en el almacén de vectores. |
| Procedimiento ENABLE_VECTOR_INDEX | Este procedimiento activa o activa un objeto de índice vectorial previamente desactivado. |
| 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. |
| Atributos de índice de vector | Proporciona atributos de perfil de índice vectorial que puede configurar. |
CREATE_PROFILE Procedimiento
El procedimiento crea un nuevo perfil de AI para traducir peticiones de datos de lenguaje natural a una sentencia 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 |
|---|---|
profile_name |
Nombre del perfil de AI. El nombre de perfil debe seguir las reglas de nomenclatura del identificador de Oracle SQL. La longitud máxima del nombre de perfil es de 125 caracteres. Este parámetro es obligatorio. |
attributes |
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. |
description |
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;
/Para ver los atributos de perfil, consulte
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.
Atributos
| Nombre de atributo | Descripción |
|---|---|
additional_instructions |
Especifica la orientación persistente que Select AI aplica a las solicitudes que utilizan el perfil de AI. Utilice este atributo para definir un contexto reutilizable, como el contexto de fecha, las reglas de negocio, los requisitos de formato o las restricciones de respuesta. Cuando se define, Select AI incluye estas instrucciones en el contexto de la petición de datos antes de procesar la solicitud del usuario, por lo que no es necesario repetir la misma orientación en cada consulta. Puede verificar las instrucciones configuradas ejecutando una petición de datos con cualquiera de las acciones Seleccionar AI, como `runsql`, `chat`, `explainsql`, etc. Por ejemplo, si el perfil incluye orientación para utilizar la fecha actual de la base de datos al responder preguntas relacionadas con la fecha, puede ejecutar: |
annotations |
Proporciona metadatos adicionales sobre las tablas y columnas de la base de datos mediante la función de anotaciones de 26ai. Los valores correctos son
|
azure_deployment_name |
Nombre del modelo desplegado de Azure OpenAI Service. El nombre solo puede incluir caracteres alfanuméricos, caracteres de subrayado () y un guión (-). El nombre no puede terminar con un guion bajo () o un guión (-). Para saber cómo obtener azure_deployment_name, consulte Creación y despliegue de un recurso de servicio de Azure OpenAI. |
azure_embedding_deployment_name |
Nombre del modelo de incrustación desplegado de Azure OpenAI. El nombre solo puede incluir caracteres alfanuméricos, guiones bajos y guiones. El nombre no puede empezar ni terminar con un guion o un guion bajo. |
azure_resource_name |
Nombre del recurso de Azure OpenAI Service. El nombre del recurso solo puede incluir caracteres alfanuméricos y guiones, y no puede empezar ni terminar con un guion. Para saber cómo obtener azure_resource_name, consulte Creación y despliegue de un recurso de servicio de Azure OpenAI. |
case_sensitive_values |
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 admitidos son:
El valor por defecto es |
comments |
Incluye comentarios de tabla y columna en los metadatos utilizados para traducir peticiones de datos en lenguaje natural mediante AI. El tipo de dato
|
constraints |
Gestiona si se deben incluir restricciones de integridad referencial, como claves primarias y ajenas, en los metadatos enviados al LLM. Los valores correctos son
|
conversation |
Atributo VARCHAR2 que indica si el historial de conversaciones está activado para un perfil. Los valores válidos son true o false. El valor por defecto es false. Los datos no distinguen entre mayúsculas y minúsculas. |
conversation_length |
Puede especificar conversation_length. Puede cambiar el valor existente a un valor adecuado para su caso de uso. No es un parámetro obligatorio. Consulte Atributos de CREATE_CONVERSATION para obtener más información. |
credential_name |
Nombre de la credencial para acceder a las API del proveedor de AI. Las credenciales que utilizan tokens portadores se pueden crear utilizando el nombre del proveedor como nombre de usuario y el token portador como contraseña. Las credenciales de secreto de almacén también están soportadas. También se admite la autenticación de principal, por ejemplo, el principal de servicio de Azure. Para obtener más información sobre cómo configurarlo, consulte Uso del principal de servicio de Azure para acceder a los recursos de Azure. Es un atributo obligatorio. Consulte Procedimiento CREATE_CREDENTIAL. |
embedding_model |
Modelo de incrustación definido en el perfil de IA. A continuación se muestran los proveedores de IA admitidos para incrustar modelos con sus valores predeterminados:
Nota:
|
enable_custom_source_uri |
Especifica si Select AI utiliza una URL de origen personalizada de los metadatos de Object Storage al mostrar citas en las respuestas de Select AI RAG. Valores posibles:
|
enforce_object_list |
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 |
max_tokens |
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. |
model |
El nombre del modelo de IA que se utiliza para generar respuestas. Consulte Seleccionar su proveedor de IA y LLM y especifique el nombre del modelo. Nota:
|
object_list |
Matriz de objetos JSON que especifica los nombres de propietario y objeto 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 traducir el 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 IA pueden tener un límite en el tamaño de los metadatos permitidos en las solicitudes de traducción. Considere la posibilidad de limitar la lista de objetos adecuados para las peticiones de datos en lenguaje natural por parte 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 en lenguaje natural mediante IA. |
object_list_mode |
Especifica si Select AI envía metadatos para todos los objetos de Los valores soportados son:
Cuando
Cuando
Cuando |
oci_apiformat |
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 OCI Generative AI en un cluster de IA dedicado. Especifique este atributo cuando especifique un OCID de modelo en el atributo Los valores soportados son:
|
oci_compartment_id |
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. |
oci_endpoint_id |
Estos atributos indican 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á a demanda en una infraestructura compartida. |
oci_runtimetype |
Este atributo indica el tipo de tiempo de ejecución del modelo proporcionado. Este atributo se aplica a los modelos de OCI Generate Text en un cluster de IA dedicado. Especifique este atributo cuando especifique un OCID de modelo en el atributo Todos los valores permitidos se pueden encontrar en OCI Generative AI RuntimeType. Consulte Referencia de LlmInferenceRequest. Los valores admitidos son:
Nota Este atributo está en desuso. Utilice oci_apiformat. |
provider |
Proveedor de IA para el perfil de IA. Proveedores soportados:
Es un atributo obligatorio. |
provider_endpoint |
Especifica el punto final de API para proveedores compatibles con OpenAI. Este atributo es específico solo para proveedores compatibles con OpenAI. Especifique Ejemplo: |
region |
Este atributo indica la ubicación del cluster de IA generativa que desea utilizar. La región puede contener caracteres alfanuméricos y guiones. Nota El cluster de Oracle Generative AI está disponible en Chicago, Fráncfort, Londres y otras regiones seleccionadas. Consulte Regiones con IA generativa para obtener más información. La región por defecto para AWS es La región por defecto es |
role |
Especifica el tipo de asistente o el comportamiento que Select AI aplica a las solicitudes que utilizan el perfil de AI. Utilice este atributo para configurar un asistente específico del dominio, como finanzas, análisis de aerolíneas o informes de RR. HH. Cuando se define, Seleccionar IA incluye el rol en el contexto de petición de datos del sistema durante la generación de petición de datos. Puede verificar el rol configurado mediante cualquiera de las acciones Seleccionar AI, como la acción |
seed |
Opcionalmente, proporcione un valor inicial numérico para mejorar los resultados reproducibles o los resultados con menos variabilidad del LLM. El parámetro semilla hace un mejor esfuerzo para muestrear los tokens de forma determinista y el modelo tiene como objetivo devolver el mismo resultado para las solicitudes repetidas cuando asigna el mismo valor inicial y los mismos parámetros para las solicitudes. Este parámetro está disponible para todos los modelos de IA admitidos por Select AI. Valores posibles: Un entero de 64 bits firmado (que varía entre -9223372036854775808 y 9 223 372 036 854 775 807) Mientras que los números negativos se aceptan, los enteros positivos se utilizan normalmente. Puede usar este parámetro con todos los proveedores de IA que admite Select AI. Para ver la lista de modelos admitidos, consulte Seleccionar su proveedor de IA y LLM. |
stop_tokens |
El texto generado finalizará al principio de la primera secuencia de parada. La secuencia se incorporará al texto. El valor de atributo debe ser una matriz válida de valores de cadena en formato JSON. stop_tokens toma una matriz JSON como entrada. Para obtener más información sobre los tokens de parada o las secuencias de parada, consulte la documentación de OpenAI o Cohere. |
temperature |
El muestreo de los modelos Generar texto incorpora aleatoriedad, de modo que la misma petición de datos puede producir diferentes salidas cada vez que pulse "generar". La temperatura es un número flotante no negativo que se utiliza para ajustar el grado de aleatoriedad. Las temperaturas más bajas significan menos generaciones aleatorias. Consulte Temperatura para obtener más información. Este parámetro se aplica a todos los proveedores de servicios admitidos. |
vector_index_name |
Nombre del índice vectorial. El nombre del índice vectorial debe seguir las reglas de nomenclatura del identificador de Oracle SQL. La longitud máxima del nombre del almacén de vectores es de 125 caracteres. |
source_language |
Idioma del texto de entrada enviado al proveedor para su traducción. Acepta el nombre de idioma completo o el código de idioma (language_code) soportado por los proveedores. Los datos no distinguen entre mayúsculas y minúsculas. |
target_language |
Idioma en el que el proveedor traduce el texto. Acepta el nombre de idioma completo o el código de idioma (language_code) soportado por los proveedores. Los datos no distinguen entre mayúsculas y minúsculas. |
En el siguiente ejemplo, se utiliza Cohere como proveedor y se muestran los atributos de perfil personalizados:
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE(
profile_name => 'COHERE',
attributes =>
'{"provider": "cohere",
"credential_name": "COHERE_CRED",
"object_list": [{"owner": "ADB_USER"}],
"max_tokens":512,
"stop_tokens": [";"],
"model": "command-nightly",
"temperature": 0.5,
"comments": true,
"seed": 42,
"role": "You are an Oracle airline analytics SQL assistant",
"additional_instructions": "provide date as date-time format",
"source_language": "en",
"target_language": "french"
}');
END;
/En el siguiente ejemplo se muestran los atributos de perfil personalizados que utilizan 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",
"seed": 42,
"role": "You are an Oracle airline analytics SQL assistant",
"additional_instructions": "provide date as date-time format",
"oci_apiformat": "COHERE"
}');
END;
/CLEAR_PROFILE Procedimiento
Este procedimiento borra cualquier perfil de AI activo definido en la sesión actual. Una vez que borre un perfil activo, ya no podrá utilizar SELECT AI en la línea de comandos SQL ni utilizar el perfil AI definido al llamar a DBMS_CLOUD_AI.GENERATE. Este procedimiento no borra el perfil.
Sintaxis
DBMS_CLOUD_AI.CLEAR_PROFILE;Ejemplo
BEGIN
DBMS_CLOUD_AI.CLEAR_PROFILE;
END;
/DROP_PROFILE Procedimiento
El procedimiento elimina un perfil de 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 |
|---|---|
profile_name |
Nombre del perfil de AI |
force |
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.
ENABLE_PROFILE Procedimiento
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 |
|---|---|
profile_name |
Nombre del perfil AI que se activará Este parámetro es obligatorio. |
Ejemplo para activar el perfil AI
BEGIN
DBMS_CLOUD_AI.ENABLE_PROFILE(
profile_name => 'OPENAI'
);
END;
/DISABLE_PROFILE Procedimiento
Este procedimiento desactiva el perfil de AI en la base de datos actual. Este procedimiento cambia el estado del perfil de AI a DISABLED.
Sintaxis
DBMS_CLOUD_AI.DISABLE_PROFILE(
profile_name IN VARCHAR2
);Parámetros
| Parámetro | Descripción |
|---|---|
profile_name |
Nombre del perfil de AI. Este parámetro es obligatorio. |
Ejemplo
BEGIN
DBMS_CLOUD_AI.DISABLE_PROFILE(
profile_name => 'OPENAI'
);
END;
/Procedimiento FEEDBACK
Este procedimiento le permite proporcionar comentarios a Select AI para mejorar potencialmente la precisión de la generación de consultas. Tiene la opción de proporcionar comentarios positivos o negativos, así como comentarios textuales o consultas SQL revisadas.
Sintaxis
DBMS_CLOUD_AI.FEEDBACK(
profile_name IN VARCHAR2,
sql_id IN DBMS_ID,
feedback_type IN VARCHAR2 DEFAULT NULL,
response IN CLOB DEFAULT NULL,
feedback_content IN CLOB DEFAULT NULL,
operation IN VARCHAR2 DEFAULT 'ADD'
);
DBMS_CLOUD_AI.FEEDBACK(
profile_name IN VARCHAR2,
sql_text IN CLOB,
feedback_type IN VARCHAR2 DEFAULT NULL,
response IN CLOB DEFAULT NULL,
feedback_content IN CLOB DEFAULT NULL,
operation IN VARCHAR2 DEFAULT 'ADD'
);Parámetros
| Parámetro | Descripción |
|---|---|
profile_name |
Especifica el perfil AI que se va a utilizar. Si no proporciona Este parámetro es obligatorio. |
sql_id |
Identifica la consulta SQL. Un Este parámetro es obligatorio. |
sql_text |
Contiene el texto completo de la consulta SQL. Este parámetro es obligatorio. |
feedback_type |
Permite especificar el tipo de comentario. Los valores disponibles son:
Nota El procedimiento DBMS_CLOUD_AI.FEEDBACK permite especificar sql_id o sql_text, por lo tanto, feedback_type es necesario, mientras que si utiliza la acción feedback, el LLM determina o interpreta dinámicamente el tipo de comentarios. Este es un parámetro obligatorio cuando se agrega |
response |
Representa el resultado de consulta SQL correcto que espera el usuario. Éste es un parámetro obligatorio cuando se agrega |
feedback_content |
Captura los comentarios de lenguaje natural del usuario. Tiene la opción de utilizar este parámetro junto con response. |
operation |
Especifica la operación que se debe realizar. Los valores aceptados son:
|
Ejemplo
Ejemplo: proporcionar comentarios para el SQL generado mediante operaciones de adición o eliminación
En el siguiente ejemplo se muestra el uso del procedimiento DBMS_CLOUD_AI.FEEDBACK para aceptar o mejorar el SQL generado mediante la especificación de los parámetros del procedimiento.
EXEC DBMS_CLOUD_AI.FEEDBACK(profile_name=>'OCI_FEEDBACK1',
sql_id=> '852w8u83gktc1',
feedback_type=>'positive',
operation=>'add');
EXEC DBMS_CLOUD_AI.FEEDBACK(profile_name=>'OCI_FEEDBACK1',
sql_text=> 'select ai showsql how many movies',
feedback_type=> 'negative',
response=>'SELECT SUM(1) FROM "ADB_USER"."MOVIES"',
feedback_content=>'Use SUM instead of COUNT');
EXEC DBMS_CLOUD_AI.FEEDBACK(profile_name=>'OCI_FEEDBACK1',
sql_id=> '852w8u83gktc1',
operation=>'delete');Índice vectorial para FEEDBACK
Al seleccionar AI, se crea un índice vectorial por defecto denominado <*profile_name*>_FEEDBACK_VECINDEX con atributos por defecto al utilizar la función de comentarios por primera vez.
Puede modificar sus atributos, como similarity_threshold y match_limit, mediante el procedimiento DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX. Este índice ayuda a acotar el SQL generado en el futuro en función de los comentarios proporcionados. Esta tabla se borra cuando se borra el perfil AI asociado. También puede borrar <profile_name>_FEEDBACK_VECINDEX. Cuando lo hace, Select AI ya no utiliza comentarios como indicaciones para las acciones runsql, showsql y explainsql. Sin embargo, si envía nuevos comentarios mediante la función Seleccionar comentarios de IA, Seleccionar IA crea automáticamente un nuevo vector de comentarios.
Nota
Nota: El valor por defecto de match_limit para feedback es 3.
Nombre de tabla de vector
La tabla <profile_name>_FEEDBACK_VECINDEX$VECTAB contiene representaciones vectoriales (embeddings) de los comentarios del usuario junto con otros parámetros, que Select AI utiliza para mejorar la generación de SQL a lo largo del tiempo.
Parámetros
| Columna | Descripción |
|---|---|
attributes |
Incluye atributos de objeto JSON según el procedimiento FEEDBACK. |
content |
Contiene la petición del usuario. |
embedding |
Contiene representaciones vectoriales (embeddings) de la petición de datos del usuario. |
Ejemplo
En el siguiente ejemplo se muestra el uso de la tabla de índice vectorial generada automáticamente para consultar y proporcionar comentarios.
SQL> select content, attributes from OCI_FEEDBACK1_FEEDBACK_VECINDEX$VECTAB where JSON_VALUE(attributes, '$.sql_text') = 'select ai showsql how many movies';
CONTENT
----------------------------------------------------------------------------------------------------
how many movies
ATTRIBUTES
----------------------------------------------------------------------------------------------------
{"response":"SELECT SUM(1) FROM "ADB_USER"."MOVIES"","feedback_type":"negative","sql_id":null,"sql_text":"select ai showsql how many movies","feedback_content":null}
DBMS_CLOUD_AI.feedback Procedure(Positive Feedback)Función GET_PROFILE
Esta función devuelve el nombre de perfil AI definido en la sesión actual.
Sintaxis
DBMS_CLOUD_AI.GET_PROFILE
;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;SET_ATTRIBUTE Procedimiento
Este procedimiento le permite definir atributos de perfil de AI. Se sobrecarga para 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 obtener una lista de los atributos admitidos, consulte Atributos de perfil.
| Parámetro | Descripción |
|---|---|
profile_name |
Nombre del perfil de AI para el que desea definir los atributos. Este parámetro es obligatorio. |
attribute_name |
Nombre del atributo de perfil AI Este parámetro es obligatorio. |
attribute_value |
El valor del atributo de 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;
/El siguiente ejemplo 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;
/El siguiente ejemplo acepta el tipo BOOLEAN como attribute_value.
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE(
profile_name => 'OCI_PROFILE',
attribute_name => 'comments',
attribute_value => 'true'
);
END;
/El siguiente ejemplo 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;
/SET_ATTRIBUTES Procedimiento
Este procedimiento le permite configurar uno o más atributos de perfil AI. Los pares de nombre y valor de atributo se proporcionan como un documento JSON.
Sintaxis
DBMS_CLOUD_AI.SET_ATTRIBUTES(
profile_name IN VARCHAR2,
attributes IN CLOB
);Parámetros
Solo el propietario puede definir o modificar los atributos del perfil AI. Para obtener una lista de los atributos admitidos, consulte Atributos de perfil.
| Parámetro | Descripción |
|---|---|
profile_name |
Nombre del perfil de AI para el que desea definir los atributos. Este parámetro es obligatorio. |
attributes |
Atributos de perfil de IA en formato JSON. Este parámetro es obligatorio. |
Ejemplo
El siguiente ejemplo acepta atributos en formato JSON.
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTES(
profile_name => 'OCI_PROFILE',
attributes => '{"temperature": 0.2,
"max_tokens": 3000}'
);
END;
/Función GENERATE
Esta función proporciona generación SQL al utilizar una conexión a base de datos sin estado. Con su perfil de AI existente, puede utilizar esta función para realizar las acciones soportadas, como showsql, runsql, explainsql, narrate, summarize, translate, chat y embedding. La acción por defecto es showsql.
La sustitución de algunos o todos los atributos de perfil también es posible 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,
params IN CLOB
) RETURN CLOB;Parámetros
| Parámetro | Descripción |
|---|---|
prompt |
Petición de datos de lenguaje natural para traducir mediante IA. El indicador puede incluir Este parámetro es obligatorio. |
profile_name |
Nombre del perfil AI. Este parámetro es opcional si un perfil AI ya está definido en la sesión mediante El valor por defecto es NULL. Se aplican las siguientes condiciones:
Nota: Para Database Actions, puede especificar el argumento
Consulte Ejecución de sentencias SQL en el editor de códigos para obtener más información. |
action |
Acción para traducir una petición de datos natural mediante IA. Las acciones soportadas incluyen:
Las descripciones de las acciones se incluyen en Use AI Keyword to Enter Prompts. |
attributes |
Sustituya atributos de perfil de IA específicos proporcionando atributos en formato JSON. Consulte Atributos de perfil para obtener más información. |
params |
Especifique el parámetro de conversación. Consulte Atributos de CREATE_CONVERSATION. Solo puede especificar el siguiente parámetro:
|
Notas de uso
-
DBMS_CLOUD_AI.GENERATEpermite la interacción sin estado con Select AI mediante un perfil de AI existente en entornos sin estado, como Oracle Application Express (APEX) y Database Actions, donde Select AI basado en sesión no está disponible. -
La función admite acciones de interacción en lenguaje natural, incluidas la generación de consultas, explicaciones, narraciones, resúmenes, traducciones y respuestas conversacionales entre los proveedores de IA compatibles.
Las acciones soportadas incluyen
runsql,showsql,explainsql,narrate,chat,summarize,translateyembedding. La acción por defecto esshowsql. -
La función utiliza el perfil de AI activo o el nombre de perfil proporcionado para determinar el proveedor, el modelo, las credenciales y los objetos de base de datos accesibles para el procesamiento de peticiones de datos.
-
Traducir comportamiento de acción:
-
Puede especificar la acción
TRANSLATEal llamar aDBMS_CLOUD_AI.GENERATEo incluir la petición de datosSelect AI TRANSLATE <text>para traducir el texto de entrada. -
Puede transferir
target_languageysource_languageen el parámetroattributes. -
Cada proveedor aplica un tamaño de entrada máximo para la traducción:
Proveedor Tamaño máximo de entrada (caracteres) OCI 5.000 Google 5.000 Amazon Web Services (AWS) 100.000 Azure 50.000
-
Ejemplos
Ejemplo: uso de la función GENERATE para seleccionar acciones de AI
Los siguientes ejemplos ilustran las acciones runsql, showsql, explainsql, narrate, summarize, translate y chaty embedding que se pueden utilizar con la función DBMS_CLOUD_AI.GENERATE.
Consulte también Uso de palabra clave AI para introducir peticiones de datos 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;Un ejemplo con la acción summarize es el siguiente:
SELECT DBMS_CLOUD_AI.GENERATE(
prompt => TO_CLOB(
DBMS_CLOUD.GET_OBJECT(
credential_name => 'STORE_CRED',
object_uri => 'https://objectstorage.ca-toronto-1.oraclecloud.com' ||
'/n/namespace-string/b/bucketname/o/data_folder/' ||
'summary/test_4000_words.txt')),
profile_name => 'GENAI_LLAMA',
action => 'SUMMARIZE')
from DUAL;Resultado:
The music streaming industry, led by Spotify, has revolutionized the way
people consume music, with streaming accounting for 80% of the American
recording industry's revenue. However, this shift has also complicated the
lives of artists trying to survive in an on-demand, hyper-abundant present.
Spotify's business model, which pays royalties based on an artist's
popularity, has led to concerns about the fairness of the system, with some
artists earning little to no royalties. The company's dominance has also
changed the way people listen to music, with a focus on convenience and
personalized playlists. Liz Pelly's book, "Mood Machine: The Rise of Spotify
and the Costs of the Perfect Playlist," explores the impact of Spotify's rise
on the music industry and listeners, arguing that the platform's emphasis on
affect and mood has led to a homogenization of music and a loss of autonomy
for listeners. As the music industry continues to evolve, questions remain
about the future of music creation and consumption, and whether artists will
be able to thrive in a system that prioritizes convenience and profit over
artistic expression.En estos ejemplos se muestra la acción translate:
En los siguientes ejemplos se muestra el uso de la acción translate en la petición de datos.
Nota
Nota: El perfil de AI debe especificar el idioma de destino.
SELECT DBMS_CLOUD_AI.GENERATE('select ai translate text to be translated')
FROM dual;En el siguiente ejemplo se muestra la acción translate proporcionada en la función DBMS_CLOUD_AI.GENERATE junto con target_language y source_language. En este ejemplo, se utiliza la traducción de IA generativa. El texto de entrada this is a document en inglés (source_language: "en") se traduce al francés (target_language: "fr").
DECLARE
l_attributes clob := '{"target_language": "fr", "source_language": "en"}';
output clob;
BEGIN
output := DBMS_CLOUD_AI.GENERATE(
prompt => 'this is a document',
profile_name => 'oci_translate',
action => 'translate',
attributes => l_attributes
);El siguiente ejemplo genera un vector de embebido para el texto especificado. La sentencia devuelve una representación vectorial del texto de entrada generado por el modelo de embebido asociado al perfil Select AI especificado.
SELECT TO_VECTOR(
DBMS_CLOUD_AI.GENERATE( profile_name => 'SALES_AGENT_RAG_PROFILE',
prompt => 'Describe the advantages of vector search',
action => 'EMBEDDING'))
FROM dual;
RESPONSE:
--------------------------------------------------------------------
[-0.02641495,0.014755737,0.009434949,-0.010975942,-0.0009126932,...,-0.020643495]Uso de la Función GENERATE en un Procedimiento
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;Ejemplo: Uso de la Función GENERATE para Conversaciones
En el siguiente ejemplo se muestra cómo utilizar la función DBMS_CLOUD_AI.GENERATE en una configuración de conversación. En este ejemplo se supone que ya se ha creado una conversación.
SELECT DBMS_CLOUD_AI.GENERATE(
prompt => 'What is the difference in weather between Seattle and San Francisco?',
profile_name => 'GENAI',
action => 'CHAT',
params => '{"conversation_id":"30C9DB6E-EA4D-AFBA-E063-9C6D46644B92"}') AS RESPONSE;Resultado:
RESPONSE
--------------------------------------------------------------------------------
Seattle and San Francisco, both located in the Pacific Northwest and Northern
California respectively, experience a mild oceanic climate. However, there are
some notable differences in their weather patterns:
1. Temperature: San Francisco tends to be slightly warmer than Seattle,
especially during the summer months. San Francisco's average temperature ranges
from 45?F (7?C) in winter to 67?F (19?C) in summer, while Seattle's average
temperature ranges from 38?F (3?C) in winter to 64?F (18?C) in summer.
2. Rainfall: Seattle is known for its rainy reputation, with an average
annual rainfall of around 37 inches (94 cm). San Francisco receives less rainfall,
with an average of around 20 inches (51 cm) per year. However, San Francisco's
rainfall is more concentrated during the winter months, while Seattle's rainfall
is more evenly distributed throughout the year.
......SET_PROFILE Procedimiento
Este procedimiento define el perfil AI para la sesión actual.
Después de definir un perfil AI para la sesión de base de datos, cualquier sentencia SQL con el prefijo SELECT AI se considera una petición de datos en 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 Ejemplos de uso de Select AI y Uso de AI Keyword para introducir peticiones de datos Opcionalmente, es posible sustituir los atributos de perfil o modificar los atributos especificándolos en formato JSON. Consulte Procedimiento SET_ATTRIBUTE para configurar los atributos.
El perfil AI solo se puede definir para la sesión actual si el propietario del perfil AI es el usuario de la sesión.
Para definir un perfil AI para todas las sesiones de un usuario de base de datos específico o para 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 |
|---|---|
profile_name |
Nombre del perfil de AI en la sesión actual. Este parámetro es obligatorio. |
Ejemplo
BEGIN
DBMS_CLOUD_AI.SET_PROFILE(
profile_name => 'OPENAI'
);
END;
/CREATE_CONVERSATION Procedimiento
Este procedimiento permite crear una conversación y definir automáticamente conversation_id en el procedimiento.
Nota
Nota: Si utiliza el procedimiento DBMS_CLOUD_AI.CREATE_CONVERSATION, puede omitir la configuración de conversation_id ya que el procedimiento la define automáticamente.
Sintaxis
DBMS_CLOUD_AI.CREATE_CONVERSATION(
attributes IN CLOB DEFAULT NULL
);Parámetros
| Parámetro | Descripción |
|---|---|
attributes |
Atributos para la conversación en formato JSON. Consulte Atributos de CREATE_CONVERSATION para obtener más información. El valor por defecto es NULL. |
Ejemplo
Ejemplo: Crear conversación
El siguiente ejemplo muestra cómo crear una conversación sin ninguna personalización.
EXEC DBMS_CLOUD_AI.CREATE_CONVERSATION;Resultado:
PL/SQL procedure successfully completed.Ejemplo: creación de conversaciones con atributos personalizados
En el siguiente ejemplo se muestra la creación de una conversación con parámetros personalizados como title, description, retention_days y conversation_length.
-- Create conversation with custom attributes
SELECT DBMS_CLOUD_AI.CREATE_CONVERSATION(
attributes => '{"title":"Conversation 1",
"description":"this is a description",
"retention_days":5,
"conversation_length":5}')
AS conversation_id FROM dual;Función CREATE_CONVERSATION
Esta función crea una conversación y devuelve su valor conversation_id que se puede utilizar en otros procedimientos o funciones como DBMS_CLOUD_AI.SET_CONVERSATION_ID y DBMS_CLOUD_AI.GENERATE.
Oracle recomienda definir conversation_id para activar la conversación. Como alternativa, puede definir conversation_id en la función DBMS_CLOUD_AI.GENERATE.
Nota
Nota: Si utiliza el procedimiento DBMS_CLOUD_AI.CREATE_CONVERSATION, puede omitir la configuración de conversation_id ya que el procedimiento la define automáticamente.
Sintaxis
DBMS_CLOUD_AI.CREATE_CONVERSATION(
attributes IN CLOB DEFAULT NULL
) RETURN VARCHAR2;Parámetros
| Parámetro | Descripción |
|---|---|
attributes |
Atributos para la conversación en formato JSON. Consulte Atributos de CREATE_CONVERSATION para obtener más información. El valor por defecto es NULL. |
Ejemplo
Ejemplo: Crear conversación
En el siguiente ejemplo se muestra el uso de la función DBMS_CLOUD_AI.CREATE_CONVERSATION para crear una conversación sin ninguna personalización.
SELECT DBMS_CLOUD_AI.CREATE_CONVERSATION FROM DUAL;Resultado:
CREATE_CONVERSATION
------------------------------------
30C9DB6E-EA4D-AFBA-E063-9C6D46644B92Ejemplo: creación de conversaciones con atributos personalizados
En el siguiente ejemplo se muestra el uso de la función DBMS_CLOUD_AI.CREATE_CONVERSATION para especificar atributos como title, retention_days y conversation_length.
SELECT DBMS_CLOUD_AI.CREATE_CONVERSATION(
attributes => '{"title":"This is a test conversation",
"retention_days":7,
"conversation_length":20}')
FROM DUAL;Atributos CREATE_CONVERSATION
Estos atributos gestionan el contexto de la conversación, incluido el tiempo que se debe conservar, el número de peticiones de datos con respuestas para almacenar o mostrar, y metadatos como el título y la descripción como referencia. Algunos atributos son opcionales y tienen un valor por defecto.
Atributos
| Nombre de atributo | Valor por defecto | Descripción |
|---|---|---|
title |
Nueva conversación | Nombre asignado por el usuario para la conversación. Si no se proporciona, Select AI hará que el LLM genere uno cuando la conversación se utilice por primera vez con un mensaje. |
description |
NULO | Proporciona una descripción definida por el usuario que resume la finalidad o el contexto de la conversación. Si no se proporciona, el LLM genera uno cuando la conversación se utiliza por primera vez con un mensaje y lo actualiza de nuevo en el 5º uso para incluir información más precisa y relevante. |
retention_days |
7 | Especifique el número de días que desea conservar el historial de conversaciones. Se almacena en la base de datos desde su fecha de creación. Si omite el valor, el sistema lo establece en el valor predeterminado 7. Si lo define en 0, el sistema retiene la conversación hasta que la suprima manualmente mediante el procedimiento DBMS_CLOUD_AI.DROP_CONVERSATION o DBMS_CLOUD.DELETE_ALL_OPERATIONS('CONVERSATION'). |
conversation_length |
NULO | Especifique el número de peticiones de datos y respuestas recientes que se van a incluir con la petición de datos actual. El valor máximo permitido es 999. Puede sustituir este valor especificando el parámetro
Si ninguno de ellos especifica |
En el siguiente ejemplo, se muestra cómo personalizar los atributos de conversación en el procedimiento DBMS_CLOUD_AI.CREATE_CONVERSATION.
-- Create conversation with custom attributes
SELECT DBMS_CLOUD_AI.CREATE_CONVERSATION(
attributes => '{"title":"Conversation 1",
"description":"this is a description",
"retention_days":5,
"conversation_length":5}')
AS conversation_id FROM dual;UPDATE_CONVERSATION Procedimiento
Este procedimiento actualiza una conversación existente con un valor especificado de los atributos de conversación.
Sintaxis
DBMS_CLOUD_AI.UPDATE_CONVERSATION(
conversation_id IN VARCHAR2,
attributes IN CLOB
);Parámetros
| Parámetro | Descripción |
|---|---|
conversation_id |
Número único asignado a una conversación. Este parámetro es obligatorio. |
attributes |
Atributos para la conversación en formato JSON. Consulte Atributos de CREATE_CONVERSATION para obtener más información. |
Ejemplo
EXEC DBMS_CLOUD_AI.UPDATE_CONVERSATION(
conversation_id => '30C9DB6E-EA4E-AFBA-E063-9C6D46644B92',
attributes => '{"retention_days":20,
"description":"This a sample description",
"title":"Sample title",
"conversation_length":20}');Resultado:
PL/SQL procedure successfully completed.SET_CONVERSATION_ID Procedimiento
Este procedimiento establece la conversación actual en la ID. especificada. Los campos posteriores incluyen campos de conversación existentes basados en los atributos configurados de la conversación.
Sintaxis
DBMS_CLOUD_AI.SET_CONVERSATION_ID(
conversation_id IN VARCHAR2
);Parámetros
| Parámetro | Descripción |
|---|---|
conversation_id |
Número único asignado a una conversación en la sesión actual. Este parámetro es obligatorio. |
Ejemplo
EXEC DBMS_CLOUD_AI.SET_CONVERSATION_ID('30C9DB6E-EA4D-AFBA-E063-9C6D46644B92');Resultado:
PL/SQL procedure successfully completed.Función GET_CONVERSATION_ID
Esta función devuelve el identificador de conversación definido actualmente en la sesión mediante el procedimiento DBMS_CLOUD_AI.SET_CONVERSATION_ID o DBMS_CLOUS_AI.CREATE_CONVERSATION. Si no ha definido una conversación, la función devuelve NULL. Si borra la conversación, el sistema también la borra en la sesión. Consulte Procedimiento CLAR_CONVERSATION_ID.
Sintaxis
DBMS_CLOUD_AI.GET_CONVERSATION_ID
RETURN VARCHAR2;Ejemplo
En este ejemplo se muestra el ID de conversación definido en la sesión actual.
SELECT DBMS_CLOUD_AI.GET_CONVERSATION_ID;Resultado:
--------------------------------------------------------------------------------
30C9DB6E-EA4F-AFBA-E063-9C6D46644B92CLEAR_CONVERSATION_ID Procedimiento
Este procedimiento borra un ID de conversación definido en la sesión para desactivar la función de conversación para SELECT AI <ACTION> <PROMPT>. Si no ha establecido una conversación, el sistema no emite ningún error.
Sintaxis
DBMS_CLOUD_AI.CLEAR_CONVERSATION_ID;Ejemplo
En este ejemplo, se muestra la visualización del ID de conversación actual en la sesión, la eliminación del ID y la verificación del cambio.
-- A conversation id is set in the session
SELECT DBMS_CLOUD_AI.GET_CONVERSATION_ID FROM dual;
GET_CONVERSATION_ID
--------------------------------------------------------------------------------
3A88BFF0-1D7E-B3B8-E063-9C6D46640ECD
-- Clear the conversation id
EXEC DBMS_CLOUD_AI.CLEAR_CONVERSATION_ID;
PL/SQL procedure successfully completed.
-- The conversation id is removed from the session
SELECT DBMS_CLOUD_AI.GET_CONVERSATION_ID FROM dual;
GET_CONVERSATION_ID
--------------------------------------------------------------------------------DELETE_CONVERSATION_PROMPT Procedimiento
El procedimiento quita un campo determinado de la conversación.
Sintaxis
DBMS_CLOUD_AI.DELETE_CONVERSATION_PROMPT(
conversation_prompt_id IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE
);Parámetros
| Parámetro | Descripción |
|---|---|
conversation_prompt_id |
Número único asignado a un campo en una conversación. Puede encontrar el identificador de petición de datos consultando la vista Este parámetro es obligatorio. |
force |
Si es El valor por defecto de este parámetro es |
Ejemplo
EXEC DBMS_CLOUD_AI.DELETE_CONVERSATION_PROMPT('30C9DB6E-EA61-AFBA-E063-9C6D46644B92');Resultado:
PL/SQL procedure successfully completed.DROP_CONVERSATION Procedimiento
El procedimiento quita la conversación y todos sus campos asociados y las respuestas asociadas. Una vez borrado, conversation_id deja de ser válido. Si se borra una conversación mientras está definida en la sesión, se borra automáticamente.
Sintaxis
DBMS_CLOUD_AI.DROP_CONVERSATION(
conversation_id IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE
);Parámetros
| Parámetro | Descripción |
|---|---|
conversation_id |
Número único asignado a una conversación. Este parámetro es obligatorio. |
force |
Si es El valor por defecto de este parámetro es |
Ejemplo
EXEC DBMS_CLOUD_AI.DROP_CONVERSATION('30C9DB6E-EA4D-AFBA-E063-9C6D46644B92');Resultado:
PL/SQL procedure successfully completed.Función SUMMARIZE
Esta función resume el contenido en función de las opciones de personalización que proporcione como parámetros.
Sintaxis
DBMS_CLOUD_AI.SUMMARIZE(
content IN CLOB DEFAULT NULL,
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2 DEFAULT NULL,
profile_name IN VARCHAR2 DEFAULT NULL,
user_prompt IN CLOB DEFAULT NULL,
params IN CLOB DEFAULT NULL
) RETURN CLOB;Parámetros
| Parámetro | Descripción |
|---|---|
content |
Especifica el texto que desea resumir. Se debe especificar No es un parámetro obligatorio. |
credential_name |
Identifica el objeto de credencial utilizado para autenticarse con el almacén de objetos. Debe crear esta credencial con DBMS_CLOUD.CREATE_CREDENTIAL. Nota Utilice este parámetro solo cuando proporcione `location_uri`. |
location_uri |
Proporciona el URI donde se almacena el texto o la ruta de acceso a un archivo local. Se debe especificar Por ejemplo: Almacenamiento de objetos: Archivo local: |
profile_name |
Especifica el perfil AI que se va a utilizar. Si no proporciona El valor por defecto es NULL. |
user_prompt |
Proporciona una petición de datos en lenguaje natural para guiar o personalizar el resumen. Puede incluir instrucciones adicionales más allá de los parámetros de resumen. Por ejemplo, el resumen debe comenzar con ''El resumen del artículo es: ''' Este parámetro no es obligatorio. |
params |
Define los parámetros de resumen. Consulte Parámetros SUMMARIZE. |
Ejemplo
Consulte Ejemplo: Seleccionar resumen de IA para explorar.
Parámetros SUMMARIZE
Estos atributos gestionan la generación de resumen con parámetros personalizados. Algunos atributos son opcionales y tienen un valor por defecto.
Atributos
| Nombre de atributo | Valor por defecto | Descripción |
|---|---|---|
min_words |
0 | Especifica el número mínimo aproximado de palabras que se espera que contenga el resumen generado. Nota Este parámetro actúa como directriz en lugar de como un límite estricto: la longitud real del resumen puede variar según el contenido proporcionado y la interpretación del modelo. |
max_words |
200 | Especifica el número máximo aproximado de palabras que se espera que contenga el resumen generado. Nota Este parámetro actúa como directriz en lugar de como un límite estricto; la longitud real del resumen puede variar según el contenido proporcionado y la interpretación del modelo. |
summary_style |
Párrafo | Especifica el estilo de formato del resumen. A continuación se muestran las opciones de formato de resumen disponibles:
|
chunk_processing_method |
map_reduce |
Cuando el texto supera el límite de tokens que puede procesar el LLM, se debe dividir en fragmentos gestionables. Este parámetro permite seleccionar el método para procesar estos fragmentos. Se proporcionan las siguientes opciones:
|
extractiveness_level |
low |
Determina en qué medida el resumen sigue la redacción original de la entrada. Controla el grado en que el modelo lo extrae frente a lo que lo vuelve a expresar. Estas son las opciones:
Nota Esta configuración sirve de orientación para el comportamiento de resumen del modelo, no aplica una regla estricta. El estilo y la redacción reales del resumen pueden variar según el contenido de entrada y las decisiones del modelo. |
Función TRANSLATE
Esta función permite traducir el texto al target_language especificado.
Puede proporcionar los parámetros source_language y target_language en la función o se pueden tomar del perfil AI del usuario. Si el perfil de IA no incluye un atributo source_language, el proveedor de IA generativa detecta automáticamente el idioma de entrada. Si falta el atributo target_language, Seleccionar AI devuelve un error.
Sintaxis
DBMS_CLOUD_AI.TRANSLATE(
profile_name IN VARCHAR2,
text IN CLOB,
source_language IN VARCHAR2 DEFAULT NULL,
target_language IN VARCHAR2 DEFAULT NULL
) RETURN CLOB;Parámetros
| Parámetro | Descripción |
|---|---|
profile_name |
Especifica el perfil AI que se va a utilizar. No es un parámetro obligatorio. |
text |
Especifica el texto que desea traducir. Este parámetro es obligatorio. |
source_language |
Idioma del texto introducido. Este parámetro acepta el nombre del idioma o language_code para un idioma utilizado por los proveedores. Los datos no distinguen entre mayúsculas y minúsculas. |
target_language |
Lengua a la que se traduce el texto. Esto acepta el nombre del idioma o el language_code para un idioma utilizado por los proveedores. Los datos no distinguen entre mayúsculas y minúsculas. |
Notas de uso
-
Puede crear un perfil de AI y, opcionalmente, puede incluir los atributos
target_languageysource_language. Estos valores se pueden especificar mediante un nombre de idioma o un código de idioma soportado por el proveedor. -
Puede llamar a
DBMS_CLOUD_AI.TRANSLATEy transferir el texto de entrada que desea traducir. -
Comportamiento del idioma de destino:
-
Si el parámetro
target_languagese transfiere a la función, sustituye el atributotarget_languagedefinido en el perfil AI. -
Si el parámetro
target_languageno se transfiere y el perfil AI incluye un atributotarget_language, la función utiliza el valor de perfil. -
Si ni el parámetro ni el perfil AI definen
target_language, la función devuelve un error.
-
-
Comportamiento del idioma de origen:
-
Si el parámetro
source_languagese transfiere a la función, sustituye el atributosource_languagedefinido en el perfil AI. -
Si el parámetro
source_languageno se transfiere y el perfil AI incluye un atributosource_language, la función utiliza el valor de perfil AI. -
Si ni el parámetro ni el perfil AI definen
source_languageo el parámetrosource_languageproporcionado es incorrecto, el proveedor detecta el idioma de origen automáticamente.
-
-
La función devuelve el texto traducido.
-
Cada proveedor aplica un tamaño de entrada máximo para la traducción:
Proveedor Tamaño máximo de entrada (caracteres) OCI 5.000 Google 5.000 Amazon Web Services (AWS) 100.000 Azure 50.000
Ejemplo
Consulte Ejemplo: Seleccionar traducción de IA para explorar.
Función GENERATE_SYNTHETIC_DATA
Utilice este procedimiento para generar datos sintéticos para una sola tabla, varias tablas o un esquema completo.
A continuación, se muestra la sintaxis para generar datos sintéticos para una sola 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 proporcionada. Esto, de hecho, desactiva la acción narrate.
Parámetros
| Parámetro | Obligatorio | Descripción |
|---|---|---|
profile_name |
Sí | El perfil de AI que contiene la información de servicio del LLM necesaria. Esto se puede crear mediante el procedimiento CREATE_PROFILE. |
object_name |
Sí | Especifique un nombre de tabla para rellenar los datos sintéticos.
|
owner_name |
No | Especifique el usuario de la 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 | El número de registros que se van a generar sintéticamente. |
user_prompt |
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 lanzamiento de las películas debe ser en 2019 |
params |
No | Atributos opcionales proporcionados en formato de cadena de objeto JSON para modificar el comportamiento de una API. Consulte Optional Parameters. |
object_list |
Sí | Utilice este parámetro para generar datos sintéticos en varias tablas. Este parámetro incluye información de objeto de tabla junto con sus argumentos y contiene los mismos argumentos proporcionados en la tabla única. Consulte object_list Parameters. |
Parámetros opcionales
| Parámetro | Tipo de dato de valor | Valor | Descripción |
|---|---|---|---|
sample_rows |
Número | 0 <= sample_rows <= 100 |
Especifique el número de filas de la tabla que desea utilizar como ejemplo para guiar el LLM en la generación de datos. Un valor de 0 significa que no se utilizarán filas de ejemplo. El valor por defecto es |
table_statistics |
Booleano |
|
Active o desactive el uso de la información de estadísticas de tabla. El valor por defecto es |
priority |
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 la 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. |
comments |
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 object_list
| Parámetro | Tipo de dato de valor | Obligatorio | Descripción |
|---|---|---|---|
owner |
Cadena | Sí | Especifica el usuario de la 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. |
name |
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 los utilice. La tabla está vacía o tiene registros en ella. |
record_count |
Número | No | El número de registros que se van a generar sintéticamente. Proporcione un número mayor que 0. Proporcione |
record_count_percentage |
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 la tabla, incluidas las estadísticas, se soporta el parámetro Proporcione Al utilizar el parámetro |
user_prompt |
Cadena | No | Igual que user_prompt en Parámetros. user_prompt está asociado a un objeto de tabla específico. |
Ejemplos
Los siguientes ejemplos muestran la función DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA para generar datos sintéticos para una sola 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.ENABLE_DATA_ACCESS Procedimiento
Este procedimiento permite enviar datos al LLM para las funciones de selección de IA aplicables, que es el comportamiento predeterminado. Sólo un administrador puede ejecutar este procedimiento.
Este procedimiento controla el acceso a los datos para las siguientes capacidades de selección de IA:
-
acción
narrate -
Generación aumentada de recuperación (RAG)
-
Generación de datos sintéticos
Sintaxis
DBMS_CLOUD_AI.ENABLE_DATA_ACCESS();Parámetros
Este procedimiento no requiere ningún parámetro.
Ejemplo para activar el acceso a datos
BEGIN
DBMS_CLOUD_AI.ENABLE_DATA_ACCESS();
END;
/DISABLE_DATA_ACCESS Procedimiento
Este procedimiento desactiva el envío de datos al LLM para las funciones de selección de IA aplicables. Sólo un administrador puede ejecutar este procedimiento.
Este procedimiento limita las siguientes capacidades de selección de IA:
-
acción
narrate -
Generación aumentada de recuperación (RAG)
-
Generación de datos sintéticos
Sintaxis
DBMS_CLOUD_AI.DISABLE_DATA_ACCESS();Parámetros
Este procedimiento no requiere ningún parámetro.
Ejemplo para desactivar el acceso a datos:
BEGIN
DBMS_CLOUD_AI.DISABLE_DATA_ACCESS();
END;
/CREATE_VECTOR_INDEX Procedimiento
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,
wait_for_completion IN BOOLEAN DEFAULT FALSE
);Parámetros
| Parámetro | Descripción |
|---|---|
index_name |
Nombre del índice vectorial. El nombre del índice vectorial debe seguir las reglas de nomenclatura del identificador de Oracle SQL. La longitud máxima del nombre del almacén de vectores es de 125 caracteres. Este parámetro es obligatorio. |
attributes |
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. |
description |
Descripción del índice vectorial. El valor por defecto es NULL. |
wait_for_completion |
Controla si el procedimiento Valores posibles:
|
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',
wait_for_completion => true,
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_storage_credential_name' value 'OS_CRED',
'chunk_size' value 2048,
'chunk_overlap' value 256,
'refresh_rate' value 720)
);
END;
/Vista_INDEXES_DBA_CLOUD_VECTOR Vista _INDEXES_USER_CLOUD_VECTOR
DROP_VECTOR_INDEX Procedimiento
Este procedimiento elimina un índice de almacén de vectores. Normalmente elimina el objeto de índice de 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 de almacén de vectores al conservar 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ámetros
| Parámetro | Descripción |
|---|---|
index_name |
Nombre del índice vectorial. El nombre del índice vectorial debe seguir las reglas de nomenclatura del identificador de Oracle SQL. La longitud máxima del nombre del almacén de vectores es de 125 caracteres. Este parámetro es obligatorio. |
include_data |
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. Valores posibles:
El valor por defecto es |
force |
Indica si se deben ignorar los errores que se producen si el índice vectorial no existe. Valores posibles:
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;
/DISABLE_VECTOR_INDEX Procedimiento
Este procedimiento desactiva un objeto de índice vectorial en la base de datos actual. Cuando se desactiva, un perfil AI no puede utilizar el índice vectorial y el sistema no carga datos en el almacén de vectores a medida que se agregan nuevos datos al almacén de objetos y no realiza indexación, búsqueda o consulta en función del índice.
Sintaxis
DBMS_CLOUD_AI.DISABLE_VECTOR_INDEX(
index_name IN VARCHAR2
);Parámetros
| Parámetro | Descripción |
|---|---|
index_name |
Nombre del índice vectorial. El nombre del índice vectorial debe seguir las reglas de nomenclatura del identificador de Oracle SQL. 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;
/ENABLE_VECTOR_INDEX Procedimiento
Este procedimiento activa o activa un objeto de índice vectorial previamente desactivado. Por lo general, cuando se crea un índice vectorial, por defecto se activa de modo que el perfil AI pueda utilizarlo para realizar la indexación y la búsqueda.
Cuando se activa, un índice vectorial permite que un perfil AI lo utilice para cargar nuevos datos de un almacén de objetos en un almacén de vectores a 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 JSON, consulte Atributos de índice de vector.
Sintaxis
DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX(
index_name IN VARCHAR2
);Parámetros
| Parámetro | Descripción |
|---|---|
index_name |
Nombre del índice vectorial. El nombre del índice vectorial debe seguir las reglas de nomenclatura del identificador de Oracle SQL. 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 forma:
BEGIN
DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX(index_name => 'MY_INDEX');
END;
/UPDATE_VECTOR_INDEX Procedimiento
Este procedimiento actualiza un índice de almacén de vectores existente con un valor especificado del atributo de índice de vectores.
Se sobrecarga para aceptar:
-
valores de atributos de varios tipos.
-
atributos de índice vectorial como documento JSON y actualiza uno o más atributos de un índice de almacén de vectores existente con el par de nombre y valor de atributo especificado.
Sintaxis
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(
index_name IN VARCHAR2,
attributes IN CLOB
);
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(
index_name IN VARCHAR2,
attribute_name IN VARCHAR2,
attribute_value IN VARCHAR2
);
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(
index_name IN VARCHAR2,
attribute_name IN VARCHAR2,
attribute_value IN CLOB DEFAULT NULL
);Parámetros
| Parámetro | Descripción |
|---|---|
index_name |
Nombre del índice vectorial. El nombre del índice vectorial debe seguir las reglas de nomenclatura del identificador de Oracle SQL. La longitud máxima del nombre del almacén de vectores es de 125 caracteres. Este parámetro es obligatorio. |
attributes |
Especifica los atributos de índice vectorial en formato JSON. Este parámetro es obligatorio. |
attribute_name |
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. |
Nota
Nota: Utilice el parámetro attributes para especificar pares de valores y attribute_name en formato JSON o los parámetros attribute_name y attribute_value juntos.
Ejemplos
BEGIN
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(
index_name => 'MY_INDEX',
attribute_name => 'object_storage_credential_name',
attribute_value => 'NEW_CRED'
);
END;
/El siguiente ejemplo 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;
/El siguiente ejemplo 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;
/En el siguiente ejemplo se acepta attributes en formato JSON.
BEGIN
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(
index_name => 'MY_VECTOR_INDEX',
attributes => '{"match_limit": 10,
"refresh_rate": 30}'
);
END;
/Atributos de índice de vector
Los atributos de un índice vectorial ayudan a gestionar y configurar el comportamiento del índice vectorial. Puede agregar atributos de índice personalizados según sea necesario. Algunos atributos son opcionales y tienen un valor por defecto.
Atributos
| Nombre de atributo | Valor | Obligatorio | Descripción |
|---|---|---|---|
chunk_size |
1024 (valor 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 (valor 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 solapamientos entre segmentos, lo que ayuda a evitar la pérdida de información contextual en los límites de fragmentos. |
enable_sources |
Valores posibles:
|
No | Proporciona enlaces de origen de documento y nombres de archivo en la salida de RAG, lo que permite identificar qué documentos contribuyeron a cada resultado. Los valores posibles son los siguientes:
|
location |
N/D | Sí | Este parámetro especifica el URI o los directorios del archivo de origen y los archivos de origen. Los patrones comodín están soportados tanto para URI de archivo de origen como para directorios. URI de archivo de origen de nube: Puede especificar un URI de archivo de origen para el cubo o la subcarpeta. Puede utilizar comodines para especificar subcarpetas o nombres de archivo. Se puede usar el carácter " Ejemplo de uso de comodines: location_uri => 'https://objectstorage.my$region.oraclecloud.com/n/namespace-string/b/bucketname/o/year=????/month=??/*.csv El formato de los URI depende del servicio Cloud Object Storage que utilice; para obtener información, consulte formatos de URI de DBMS_CLOUD. Directorio: Puede especificar un directorio y un nombre de archivo. El formato para especificar un directorio es: Solo puede utilizar comodines para especificar nombres de archivo en un directorio. Se puede usar el carácter Utilice comillas dobles para especificar un nombre de directorio sensible a mayúsculas/minúsculas. Por ejemplo: Para incluir un carácter de comillas, utilice dos comillas. Por ejemplo: Los archivos de esta ubicación pueden ser documentos en formatos como PDF, DOC, JSON, XML o HTML. Consulte Formatos de documento soportados. |
match_limit |
5 (valor 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. |
object_storage_credential_name |
N/D | Sí | Especifica el nombre de las credenciales para acceder a un almacenamiento de objetos. |
pipeline_name |
<vector_index_name>$VECPIPELINE |
No | Especifica el nombre del pipeline de carga de datos del índice de vector. Este atributo se define automáticamente para el índice vectorial, no se puede especificar ni modificar. El nombre del pipeline se puede utilizar para supervisar la carga de datos del índice vectorial mediante Supervisión y Solución de Problemas de Pipelines. |
profile_name |
N/D | Sí | Nombre del perfil AI que se utiliza para incrustar datos de origen y peticiones de datos de usuario. |
refresh_rate |
1440 minutos (valor por defecto) |
No | Intervalo de actualización de datos en el almacén de vectores. La unidad es de minutos. |
similarity_threshold |
0 (valor por defecto) |
No | Define el nivel mínimo de similitud necesario para que dos elementos se consideren coincidentes, útil para filtrar los resultados en algoritmos de coincidencia para garantizar la relevancia. |
vector_distance_metric |
Cadena que corresponde 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 26ai:
|
vector_db_provider |
oracle |
Sí | Especifica el nombre del proveedor que gestiona y sirve como almacén de vectores. |
vector_dimension |
N/D | No | Especifica el número de elementos en cada vector dentro del almacén de vectores, definiendo el tamaño y la estructura de la representación de datos. |
vector_table_name |
<vector_index_name>$VECTAB (por defecto) |
No | Especifica el nombre de la tabla o recopilación para almacenar incrustaciones de vectores y datos fragmentados. |
Ejemplo: Especificar Ubicación de URI de Object Storage
En el siguiente ejemplo se muestra la creación de un índice vectorial con el almacén de vectores de OCI Generative AI.
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;
/
/Ejemplo: especificación de ubicación de URI de almacenamiento de objetos con patrón de comodín**
En este ejemplo, se especifica un patrón de comodín (*) en el URI de almacenamiento de objetos como parámetro location. Carga todos los archivos CSV desde el URI de Object Storage.
BEGIN
DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(
index_name => 'MY_INDEX',
attributes => JSON_OBJECT(
'vector_db_provider' value 'oracle',
'vector_table_name' value 'oracle_mycollection',
'profile_name' value 'OCIGENAI',
'location' value 'https://objectstorage.myregion.oraclecloud.com/n/my$namespace/b/bucketname/o/year=????/month=??/file*.csv)',
'object_storage_credential_name' value 'OS_CRED',
'chunk_size' value 2048,
'chunk_overlap' value 256,
'refresh_rate' value 720)
);
END;
/Ejemplo: Especificación de Ubicación de Objeto de Directorio con Patrón de Comodín
En este ejemplo, se especifican objetos de directorio en el parámetro location mediante un patrón de comodín. Carga todos los archivos CSV en el directorio MY_DIR.
BEGIN
DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(
index_name => 'MY_INDEX',
attributes => JSON_OBJECT(
'vector_db_provider' value 'oracle',
'vector_table_name' value 'oracle_mycollection',
'profile_name' value 'OCIGENAI',
'location' value 'MY_DIR:*.csv',
'object_storage_credential_name' value 'OS_CRED',
'chunk_size' value 2048,
'chunk_overlap' value 256,
'refresh_rate' value 720)
);
END;
/Ejemplo: Especificación de Ubicación de Objeto de Directorio Sensible a Mayúsculas/Minúsculas con Patrón de Comodín
En este ejemplo se especifica un objeto de directorio sensible a mayúsculas/minúsculas en el parámetro location mediante un patrón de comodín. Carga todos los archivos CSV en el directorio My_Dir.
BEGIN
DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(
index_name => 'MY_INDEX',
attributes => JSON_OBJECT(
'vector_db_provider' value 'oracle',
'vector_table_name' value 'oracle_mycollection',
'profile_name' value 'OCIGENAI',
'location' value '"My_Dir":*.csv',
'object_storage_credential_name' value 'OS_CRED',
'chunk_size' value 2048,
'chunk_overlap' value 256,
'refresh_rate' value 720)
);
END;
/Ejemplo: Especificación de Objeto de Directorio Sensible a Mayúsculas/Minúsculas con Todos los Archivos como Patrón de Comodín
En este ejemplo, se especifica un objeto de directorio sensible a mayúsculas/minúsculas en el parámetro location mediante un patrón de comodín (*). Carga todos los archivos ubicados en el directorio My_Dir.
BEGIN
DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(
index_name => 'MY_INDEX',
attributes => JSON_OBJECT(
'vector_db_provider' value 'oracle',
'vector_table_name' value 'oracle_mycollection',
'profile_name' value 'OCIGENAI',
'location' value '"My_Dir":*',
'object_storage_credential_name' value 'OS_CRED',
'chunk_size' value 2048,
'chunk_overlap' value 256,
'refresh_rate' value 720)
);
END;
/Ejemplo: especificación de una coincidencia de nombre de archivo en el objeto de directorio
En este ejemplo, se especifica un objeto de directorio y se utiliza un prefijo de nombre de archivo, como test, en el parámetro location. Carga todos los archivos en el directorio MY_DIR cuyos nombres comienzan con test.
BEGIN
DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(
index_name => 'MY_INDEX',
attributes => JSON_OBJECT(
'vector_db_provider' value 'oracle',
'vector_table_name' value 'oracle_mycollection',
'profile_name' value 'OCIGENAI',
'location' value 'MY_DIR:test*',
'object_storage_credential_name' value 'OS_CRED',
'chunk_size' value 2048,
'chunk_overlap' value 256,
'refresh_rate' value 720)
);
END;
/