Seleccionar IA para Python
Utilice la biblioteca de cliente select_ai para acceder a las capacidades DBMS_CLOUD_AI en Autonomous AI Database desde aplicaciones Python.
Select AI for Python genera SQL a partir de peticiones de datos en lenguaje natural, ejecuta y explica SQL generado, mantiene conversaciones contextuales, resume y traduce contenido, genera datos sintéticos y crea flujos de trabajo de generación con recuperación aumentada (RAG).
Select AI for Python también admite respuestas de texto optimizadas, programación síncrona y asíncrona, gestión de acceso de red de host externo, agrupación de conexiones y una interfaz de línea de comandos opcional.
Plataformas soportadas
Select AI for Python está certificado para Autonomous AI Database 26ai y 19c. Otras plataformas pueden funcionar con la biblioteca, pero no están certificadas.
Informe los problemas del producto en el repositorio GitHub de python-select-ai.
Instalación de Select AI para Python
Instale el paquete Select AI for Python con pip:
python3 -m pip install select_aiPara instalar las dependencias opcionales de la interfaz de línea de comandos, utilice:
python3 -m pip install 'select_ai[cli]'Seleccionar AI para Python admite Python 3.11, 3.12, 3.13 y 3.14.
Gestión de Privilegios de Base de Datos y Acceso de Red
Seleccione AI para Python para separar privilegios de paquete de base de datos, acceso HTTP y acceso de red de host externo.
Privilegios del Paquete de Base de Datos
Utilice las siguientes API para otorgar o revocar privilegios de paquetes de base de datos:
select_ai.grant_privileges(...)
select_ai.revoke_privileges(...)Estas API soportan los siguientes privilegios de paquetes de base de datos:
DBMS_CLOUDDBMS_CLOUD_AIDBMS_CLOUD_AI_AGENTDBMS_CLOUD_PIPELINE
Acceso HTTP
Utilice las siguientes API para gestionar el acceso HTTP:
select_ai.grant_http_access(...)
select_ai.revoke_http_access(...)Acceso de red de host externo
Utilice las API de acceso de red para gestionar las entradas de la lista de control de acceso de host para hosts externos. Especifique el host, los privilegios necesarios y un rango de puertos opcional.
API síncronas:
select_ai.grant_network_access(...)
select_ai.revoke_network_access(...)API asíncronas:
await select_ai.async_grant_network_access(...)
await select_ai.async_revoke_network_access(...)Acciones que Puede Realizar
En la siguiente tabla, se resumen las capacidades principales de Select AI for Python:
| Capacidad | Descripción |
|---|---|
| De lenguaje natural a SQL | Genere SQL a partir de peticiones de datos en lenguaje natural, ejecute SQL generado, explique SQL y describa los resultados de las consultas en lenguaje natural. |
| Generación con recuperación aumentada | Crea y gestiona índices vectoriales que recuperen contenido relevante para las respuestas de IA generativa. |
| Conversaciones | Mantenga el historial de peticiones de datos y el contexto conversacional en las solicitudes relacionadas. |
| Perfiles de IA | Configure proveedores de IA, credenciales, parámetros de modelo, objetos de base de datos e índices vectoriales. |
| Datos sintéticos | Generar datos sintéticos basados en atributos especificados. |
| Resumen | Resume los resultados de las consultas de texto o de base de datos. |
| Conversión | Traduce el texto de un idioma de origen a uno de destino. |
| Comentarios | Registro de comentarios positivos o negativos para SQL generado y eliminación de comentarios existentes. |
| API síncronas y asíncronas | Utilice API síncronas o construcciones async y await de Python según los requisitos de la aplicación. |
| Pool de conexiones | Cree pools de conexiones síncronas o asíncronas compartidas para aplicaciones simultáneas. |
| Respuestas de transmisión | Reciba el texto de CLOB generado en fragmentos configurables de los métodos de perfil soportados. |
| Interfaz de línea de comando | Trabajar con chats, operaciones SQL, perfiles, resúmenes y traducciones desde un terminal. |
| Acceso de red de host externo | Otorgue o revoque el acceso a hosts externos con API síncronas o asíncronas. |
| Agentes de IA | Consulte Seleccionar agente AI para Python para conocer las operaciones y las clases específicas del agente. |
Clases Soportadas
En la siguiente tabla se resumen las clases principales de Select AI for Python:
| Clase o grupo de clases | Finalidad |
|---|---|
| Clases de proveedor | Defina el proveedor de IA asociado a un perfil. |
Profile y AsyncProfile |
Cree y gestione perfiles de IA y peticiones de datos de procesos. |
ProfileAttributes |
Defina la configuración de perfil, como proveedor, credencial, tokens máximos, temperatura, lista de objetos e índice vectorial. |
Conversation y AsyncConversation |
Cree y gestione conversaciones contextuales. |
ConversationAttributes |
Definir contexto y configuración de conversación. |
VectorIndex y AsyncVectorIndex |
Crear y gestionar índices vectoriales para RAG. |
VectorIndexAttributes |
Definición de parámetros de índice vectorial. Para un índice vectorial con un refrescamiento programado, utilice vector_index.get_next_refresh_timestamp() para recuperar el registro de hora UTC del siguiente refrescamiento. |
SyntheticDataAttributes |
Definición de la configuración de generación de datos sintéticos. |
Clases de proveedor
La selección de AI para Python incluye las siguientes clases de proveedor:
OpenAIProviderAzureProviderOCIGenAIProviderAWSProviderGoogleProviderAnthropicProviderCohereProviderHuggingFaceProvider
Para conocer los atributos específicos del proveedor y los parámetros soportados, consulte Referencia de API de Select AI for Python.
Trabajar con perfiles de IA
Un perfil de AI conecta una aplicación de Python a un proveedor de AI y define cómo procesa peticiones de datos Select AI. Un perfil puede incluir información del proveedor, credenciales, configuración del modelo, objetos de base de datos e índices vectoriales.
Seleccionar AI para Python proporciona clases de perfil síncronas y asíncronas:
| Procesando | Class |
|---|---|
| Síncrono | Profile |
| Asíncrono | AsyncProfile |
Utilizar un perfil síncrono en las aplicaciones que procesan una operación a la vez. Utilizar un perfil asíncrono en aplicaciones que procesen solicitudes simultáneas o utilicen un bucle de eventos.
En la siguiente tabla se describen las funciones de perfil más utilizadas:
| Función | Descripción |
|---|---|
create() |
Crea un perfil AI en la base de datos o reemplaza un perfil existente. Consulte la documentación de GitHub decreate(). |
delete() |
Elimina un perfil de AI. Consulte la documentación delete() GitHub. |
fetch() |
Recupera un perfil existente de la base de datos. |
get_attributes() |
Devuelve los atributos de perfil actuales. Consulte la documentación de GitHub deget_attributes(). |
set_attribute() |
Actualiza un atributo de perfil. |
set_attributes() |
Actualiza varios atributos de perfil. |
generate() |
Procesa una petición de datos basada en la acción especificada. Consulte la documentación de GitHub de generate(). |
run_sql() |
Genera y ejecuta SQL. Esta es la acción por defecto. Consulte la documentación de GitHub de run_sql(). |
show_sql() |
Genera SQL sin ejecutarlo. Consulte la documentación de GitHub de show_sql(). |
explain_sql() |
Explica el SQL generado. Consulte la documentación de GitHub de EXPLain_sql(). |
narrate() |
Describe los resultados de la consulta en lenguaje natural. Consulte la documentación de GitHub de Narrate(). |
chat() |
Envía una petición de datos de formato libre al modelo de IA generativa. Consulte la documentación de GitHub de chat(). |
show_prompt() |
Devuelve la petición de datos construida enviada al modelo de IA generativa. Consulte la documentación de GitHub de show_prompt(). |
summarize() |
Resume el contenido proporcionado. Consulte la documentación de GitHub de resumen(). |
translate() |
Traduce el texto de un idioma de origen a un idioma de destino. Consulte la documentación de GitHub de transllate(). |
generate_synthetic_data() |
Genera datos sintéticos basados en los atributos proporcionados. Consulte la documentación de GitHub de generate_synthetic_data(). |
add_positive_feedback() |
Registra los comentarios positivos para el SQL generado. Consulte la documentación de GitHub de add_positive_feedback(). |
add_negative_feedback() |
Registra comentarios negativos para el SQL generado. Consulte la documentación de GitHub de add_negative_feedback(). |
delete_feedback() |
Elimina los comentarios registrados anteriormente. Consulte la documentación delete_feedback() de GitHub. |
Para obtener la lista completa de métodos y parámetros, consulte la referencia de API Select AI for Python.
Consulte también Use AI Keyword to Enter Prompts para obtener información sobre las acciones Seleccionar AI.
Respuestas de perfil de flujo
Utilice la transmisión cuando una aplicación deba procesar el texto generado a medida que esté disponible en lugar de esperar la respuesta CLOB completa.
Las clases Profile y AsyncProfile soportan el flujo a través de los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
stream=True |
Devuelve el texto generado como flujo. |
chunk_size |
Define la cantidad de texto generado devuelto en cada fragmento. |
Streaming está soportado para los siguientes métodos de perfil:
| Método | Soporte de transmisión |
|---|---|
chat() |
Sí |
narrate() |
Sí |
explain_sql() |
Sí |
show_sql() |
Sí |
show_prompt() |
Sí |
run_sql() |
Nº |
El método run_sql() devuelve un resultado de base de datos y no soporta el flujo.
Trabajo con Conversaciones
Utilice conversaciones para mantener el contexto entre peticiones de datos relacionadas. Una conversación almacena el historial de mensajes para que las solicitudes posteriores puedan hacer referencia a información de solicitudes anteriores.
Seleccionar AI para Python proporciona clases de conversación síncronas y asíncronas:
| Procesando | Class |
|---|---|
| Síncrono | Conversation |
| Asíncrono | AsyncConversation |
Utilice ConversationAttributes para definir la configuración de la conversación.
Utilice una conversación cuando una aplicación necesite un chat contextual o una secuencia de solicitudes relacionadas en lenguaje natural. Utilice un perfil directamente cuando cada solicitud sea independiente.
Trabajo con índices vectoriales
Utilice un índice vectorial para soportar la generación con recuperación aumentada. Un índice vectorial recupera contenido relevante y agrega ese contenido a una petición de datos antes de que el modelo de IA generativa produzca una respuesta.
Select AI for Python proporciona las siguientes clases de índice vectorial:
| Procesando | Class |
|---|---|
| Síncrono | VectorIndex |
| Asíncrono | AsyncVectorIndex |
Utilice VectorIndexAttributes para definir la configuración del índice vectorial.
El método VectorIndex.create() soporta el parámetro wait_for_completion. Defina este parámetro para controlar si el método espera a que finalice la creación del índice vectorial antes de volver.
Utilice vector_index.get_next_refresh_timestamp() para recuperar el registro de hora UTC del siguiente refrescamiento programado.
Para obtener información detallada sobre la base de datos, consulte Procedimiento CREATE_VECTOR_INDEX.
Generar datos sintéticos
Utilice generate_synthetic_data() para generar datos sintéticos basados en los atributos proporcionados.
Utilice SyntheticDataAttributes para definir la configuración de datos sintéticos. Esta configuración describe los datos que se van a generar y los parámetros que utiliza el modelo de IA generativa.
Los datos sintéticos pueden soportar el desarrollo, las demostraciones y otros escenarios que requieren datos representativos sin utilizar registros de producción.
Recuperar y actualizar objetos existentes
Select AI for Python proporciona métodos consistentes para recuperar y actualizar objetos de proxy respaldados por base de datos:
| Método | Finalidad |
|---|---|
fetch() |
Recupera un objeto de base de datos existente y devuelve su objeto de proxy correspondiente. |
set_attribute() |
Actualiza un atributo en un objeto de proxy. |
set_attributes() |
Actualiza varios atributos en un objeto de proxy. |
Estos métodos proporcionan una forma consistente de trabajar con perfiles, conversaciones, índices vectoriales y otros objetos proxy soportados.
Suprimir Objetos con Métodos de Clase
Utilice métodos de supresión de nivel de clase cuando una aplicación deba suprimir un objeto sin crear o recuperar primero un objeto de proxy.
Profile.delete_profile(profile_name)
VectorIndex.delete_index(index_name)Uso de API Síncronas y Asíncronas
Select AI for Python proporciona API síncronas y asíncronas para sus operaciones principales.
La siguiente tabla asigna clases y operaciones síncronas a sus equivalentes asíncronos:
| Clase u operación síncrona | equivalente asíncrono |
|---|---|
Profile |
AsyncProfile |
Conversation |
AsyncConversation |
VectorIndex |
AsyncVectorIndex |
select_ai.create_pool() |
select_ai.create_pool_async() |
select_ai.grant_network_access() |
select_ai.async_grant_network_access() |
select_ai.revoke_network_access() |
select_ai.async_revoke_network_access() |
Utilizar API asíncronas en aplicaciones que:
- Procese varias peticiones de datos simultáneamente.
- Utilizar un bucle de evento.
- Integrar con marcos Python asíncronos.
- Debe evitar el bloqueo mientras espera las operaciones de la base de datos.
Utilice select_ai.create_pool_async() para crear un pool de conexiones compartidas para flujos de trabajo asíncronos.
AsyncProfile soporta el flujo desde los mismos métodos de texto soportados que Profile. Defina stream=True y especifique chunk_size cuando sea necesario.
Para obtener una referencia de API asíncrona completa, consulte Referencia de API de Select AI for Python.
Gestionar Pools de Conexiones
Utilizar un pool de conexiones cuando una aplicación procese solicitudes de base de datos repetidas o simultáneas.
Select AI for Python proporciona las siguientes funciones de creación de agrupaciones:
| Procesando | Función |
|---|---|
| Síncrono | select_ai.create_pool() |
| Asíncrono | select_ai.create_pool_async() |
Un pool compartido reduce la necesidad de crear una nueva conexión a la base de datos para cada solicitud y soporta cargas de trabajo de aplicaciones simultáneas.
Uso de la Interfaz de Línea de Comandos
La interfaz de línea de comandos select-ai opcional proporciona acceso de terminal a operaciones comunes de Select AI.
Instale las dependencias de la CLI:
python3 -m pip install 'select_ai[cli]'Ejecute la interfaz de línea de comandos:
select-aiEn la siguiente tabla, se resumen los comandos admitidos:
| Comando | Finalidad |
|---|---|
select-ai chat |
Inicia una sesión de chat interactiva y adaptada al contexto. |
select-ai sql show |
Genera y muestra SQL sin ejecutarlo. |
select-ai sql run |
Genera y ejecuta SQL. |
select-ai sql explain |
Explica el SQL generado. |
select-ai sql narrate |
Describe los resultados de la consulta en lenguaje natural. |
select-ai profile list |
Muestra los perfiles de IA. |
select-ai profile summarize |
Resume el contenido con un perfil de IA. |
select-ai profile translate |
Traduce el contenido con un perfil de IA. |
Proporcione valores de conexión a la base de datos como opciones de comando o defina las siguientes variables de entorno:
| Variable de entorno | Descripción |
|---|---|
SELECT_AI_USER |
Especifica el nombre del usuario de la base de Datos. |
SELECT_AI_PASSWORD |
Especifica la contraseña de la base de datos. |
SELECT_AI_DB_CONNECT_STRING |
Especifica la cadena del enlace a la base de Datos. |
Seleccionar agente de AI para Python
Para seleccionar clases específicas del agente de AI, operaciones de herramientas, parámetros instruction y métodos de supresión de nivel de clase, consulte Seleccionar agente de AI para Python.