Selecionar IA para Python
Use a biblioteca de clientes select_ai para acessar os recursos DBMS_CLOUD_AI no Autonomous AI Database de aplicativos Python.
O Select AI for Python gera SQL a partir de prompts de linguagem natural, executa e explica o SQL gerado, mantém conversas contextuais, resume e traduz conteúdo, gera dados sintéticos e cria workflows de Geração Aumentada de Recuperação (RAG).
O Select AI for Python também suporta respostas de texto em fluxo, programação síncrona e assíncrona, gerenciamento de acesso à rede de host externo, pool de conexões e uma interface de linha de comando opcional.
Plataformas com Suporte
O Select AI for Python é certificado para o Autonomous AI Database 26ai e 19c. Outras plataformas podem funcionar com a biblioteca, mas não são certificadas.
Relate problemas de produtos no repositório python-select-ai GitHub.
Instalar Selecionar IA para Python
Instale o pacote Select AI for Python com pip:
python3 -m pip install select_aiPara instalar as dependências opcionais da interface de linha de comando, use:
python3 -m pip install 'select_ai[cli]'O Select AI for Python suporta Python 3.11, 3.12, 3.13 e 3.14.
Gerenciar Privilégios do Banco de Dados e Acesso à Rede
Selecione AI for Python para separar privilégios de pacote de banco de dados, acesso HTTP e acesso de rede de host externo.
Privilégios do Pacote de Banco de Dados
Use as seguintes APIs para conceder ou revogar privilégios de pacote de banco de dados:
select_ai.grant_privileges(...)
select_ai.revoke_privileges(...)Essas APIs suportam os seguintes privilégios de pacote de banco de dados:
DBMS_CLOUDDBMS_CLOUD_AIDBMS_CLOUD_AI_AGENTDBMS_CLOUD_PIPELINE
Acesso HTTP
Use as seguintes APIs para gerenciar o acesso HTTP:
select_ai.grant_http_access(...)
select_ai.revoke_http_access(...)Acesso à Rede do Host Externo
Use as APIs de acesso à rede para gerenciar entradas da lista de controle de acesso do host para hosts externos. Especifique o host, os privilégios necessários e um intervalo de portas opcional.
APIs síncronas:
select_ai.grant_network_access(...)
select_ai.revoke_network_access(...)APIs Assíncronas:
await select_ai.async_grant_network_access(...)
await select_ai.async_revoke_network_access(...)O Que Você Pode Fazer
A tabela a seguir resume os principais recursos Select AI for Python:
| Capacidade | Descrição |
|---|---|
| Linguagem natural para SQL | Gerar SQL com base em prompts de linguagem natural, executar SQL gerada, explicar SQL e descrever os resultados da consulta em linguagem natural. |
| Geração de Recuperações Aumentadas | Crie e gerencie índices vetoriais que recuperam conteúdo relevante para respostas de IA generativa. |
| Conversas | Mantenha o histórico de prompts e o contexto de conversação entre as solicitações relacionadas. |
| Perfis de IA | Configure provedores de IA, credenciais, parâmetros de modelo, objetos de banco de dados e índices vetoriais. |
| Dados sintéticos | Gere dados sintéticos com base em atributos especificados. |
| Sumarização | Resume o texto ou os resultados da consulta do banco de dados. |
| Tradução | Traduzir texto de um idioma de origem para um idioma de destino. |
| Feedback | Registre feedback positivo ou negativo para SQL gerado e remova o feedback existente. |
| APIs síncronas e assíncronas | Use APIs síncronas ou construções async e await do Python com base nos requisitos do aplicativo. |
| Pooling de conexões | Crie pools de conexões síncronos ou assíncronos compartilhados para aplicativos simultâneos. |
| Respostas de streaming | Receba texto CLOB gerado em partes configuráveis de métodos de perfil suportados. |
| Interface de linha de comando | Trabalhe com chats, operações SQL, perfis, resumos e traduções de um terminal. |
| Acesso à rede do host externo | Conceda ou revogue o acesso a hosts externos com APIs síncronas ou assíncronas. |
| AI Agents | Consulte Selecionar Agente AI para Python para classes e operações específicas do agente. |
Classes Suportadas
A tabela a seguir resume as classes Select AI para Python principais:
| Classe ou grupo de aulas | Finalidade |
|---|---|
| Classes Provedor | Defina o provedor de IA associado a um perfil. |
Profile e AsyncProfile |
Crie e gerencie perfis de IA e prompts de processo. |
ProfileAttributes |
Defina configurações de perfil, como provedor, credencial, tokens máximos, temperatura, lista de objetos e índice de vetores. |
Conversation e AsyncConversation |
Crie e gerencie conversas contextuais. |
ConversationAttributes |
Definir configurações e contexto da conversa. |
VectorIndex e AsyncVectorIndex |
Crie e gerencie índices vetoriais para RAG. |
VectorIndexAttributes |
Definir configurações de índice vetorial. Para um índice de vetor com uma atualização programada, use vector_index.get_next_refresh_timestamp() para recuperar o timestamp UTC da próxima atualização. |
SyntheticDataAttributes |
Definir definições de geração de dados sintéticos. |
Classes Provedor
O Select AI for Python inclui as seguintes classes de provedor:
OpenAIProviderAzureProviderOCIGenAIProviderAWSProviderGoogleProviderAnthropicProviderCohereProviderHuggingFaceProvider
Para atributos específicos do provedor e parâmetros suportados, consulte a Referência Selecionar AI para API Python.
Trabalhar com perfis de IA
Um perfil de IA conecta um aplicativo Python a um provedor de IA e define como o Select AI processa prompts. Um perfil pode incluir informações do provedor, credenciais, definições de modelo, objetos de banco de dados e índices vetoriais.
O Select AI for Python fornece classes de perfil síncronas e assíncronas:
| Processamento | Classe |
|---|---|
| Síncrono | Profile |
| Assíncrono | AsyncProfile |
Use um perfil síncrono em aplicativos que processam uma operação por vez. Use um perfil assíncrono em aplicativos que processam solicitações concorrentes ou usam um loop de evento.
A tabela a seguir descreve as funções de perfil comumente usadas:
| Função | Descrição |
|---|---|
create() |
Cria um perfil do AI no banco de dados ou substitui um perfil existente. Consulte a documentação do GitHubcreate(). |
delete() |
Remove um perfil AI. Consulte a documentação do GitHub delete(). |
fetch() |
Recupera um perfil existente do banco de dados. |
get_attributes() |
Retorna os atributos de perfil atuais. Consulte a documentação do GitHub get_attributes(). |
set_attribute() |
Atualiza um atributo de perfil. |
set_attributes() |
Atualiza vários atributos do perfil. |
generate() |
Processa um prompt com base na ação especificada. Consulte a documentaçãogenerate() do GitHub. |
run_sql() |
Gera e executa SQL. Esta é a ação padrão. Consulte a documentação run_sql() do GitHub. |
show_sql() |
Gera SQL sem executá-lo. Consulte a documentação do GitHub SHOW_Sql(). |
explain_sql() |
Explica o SQL gerado. Consulte a documentação do GitHubexplain_sql(). |
narrate() |
Descreve os resultados de consultas em linguagem natural. Consulte a documentação do GitHub narrate(). |
chat() |
Envia um prompt de formato livre para o modelo de IA generativa. Consulte a documentação do GitHubchat(). |
show_prompt() |
Retorna o prompt construído enviado ao modelo de IA generativa. Consulte a documentação do GitHub SHOW_prompt(). |
summarize() |
Resume o conteúdo fornecido. Consulte a documentação do GitHub summarize(). |
translate() |
Traduz o texto de um idioma de origem para um idioma de destino. Consulte a documentação do GitHub transparlate(). |
generate_synthetic_data() |
Gera dados sintéticos com base nos atributos fornecidos. Consulte a documentação do GitHubgenerate_synthetic_data(). |
add_positive_feedback() |
Registra o feedback positivo para SQL gerado. Consulte a documentação do GitHub add_positive_feedback(). |
add_negative_feedback() |
Registra feedback negativo para SQL gerado. Consulte a documentação do GitHub add_negative_feedback(). |
delete_feedback() |
Remove o feedback registrado anteriormente. Consulte a documentação do GitHub delete_feedback(). |
Para obter a lista completa de métodos e parâmetros, consulte a Referência Selecionar AI para API Python.
Consulte também Usar Palavra-chave AI para Inserir Prompts para obter informações sobre ações Selecionar IA.
Respostas do Perfil de Fluxo
Use o streaming quando um aplicativo precisar processar o texto gerado à medida que ele se torna disponível, em vez de aguardar a resposta CLOB completa.
As classes Profile e AsyncProfile suportam streaming por meio dos seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
stream=True |
Retorna o texto gerado como um fluxo. |
chunk_size |
Define a quantidade de texto gerado retornada em cada bloco. |
O streaming é suportado para os seguintes métodos de perfil:
| Método | Suporte a streaming |
|---|---|
chat() |
Sim |
narrate() |
Sim |
explain_sql() |
Sim |
show_sql() |
Sim |
show_prompt() |
Sim |
run_sql() |
Não |
O método run_sql() retorna um resultado de banco de dados e não suporta streaming.
Trabalhando com Conversas
Use conversas para manter o contexto entre prompts relacionados. Uma conversa armazena o histórico de prompts para que solicitações posteriores possam fazer referência a informações de solicitações anteriores.
O Select AI for Python fornece classes de conversa síncronas e assíncronas:
| Processamento | Classe |
|---|---|
| Síncrono | Conversation |
| Assíncrono | AsyncConversation |
Use ConversationAttributes para definir as configurações da conversa.
Use uma conversa quando um aplicativo exigir chat contextual ou uma sequência de solicitações de idioma natural relacionadas. Use um perfil diretamente quando cada requisição for independente.
Trabalhar com Índices Vetores
Use um índice de vetor para suportar a Geração Aumentada de Recuperação. Um índice vetorial recupera conteúdo relevante e adiciona esse conteúdo a um prompt antes que o modelo de IA generativa produza uma resposta.
O Select AI for Python fornece as seguintes classes de índice vetorial:
| Processamento | Classe |
|---|---|
| Síncrono | VectorIndex |
| Assíncrono | AsyncVectorIndex |
Use VectorIndexAttributes para definir a configuração do índice do vetor.
O método VectorIndex.create() suporta o parâmetro wait_for_completion. Defina esse parâmetro para controlar se o método aguarda a conclusão da criação do índice do vetor antes de retornar.
Use vector_index.get_next_refresh_timestamp() para recuperar o timestamp UTC da próxima atualização programada.
Para obter detalhes do banco de dados, consulte Procedimento CREATE_VECTOR_INDEX.
Gerar Dados Sintéticos
Use generate_synthetic_data() para gerar dados sintéticos com base nos atributos fornecidos.
Use SyntheticDataAttributes para definir definições de dados sintéticos. Essas definições descrevem os dados a serem gerados e os parâmetros usados pelo modelo de IA generativa.
Os dados sintéticos podem suportar desenvolvimento, demonstrações e outros cenários que exigem dados representativos sem usar registros de produção.
Recuperar e Atualizar Objetos Existentes
O Select AI for Python fornece métodos consistentes para recuperar e atualizar objetos de proxy suportados pelo banco de dados:
| Método | Finalidade |
|---|---|
fetch() |
Recupera um objeto de banco de dados existente e retorna seu objeto proxy correspondente. |
set_attribute() |
Atualiza um atributo em um objeto de proxy. |
set_attributes() |
Atualiza vários atributos em um objeto de proxy. |
Esses métodos fornecem uma maneira consistente de trabalhar com perfis, conversas, índices vetoriais e outros objetos de proxy suportados.
Excluir Objetos com Métodos de Classe
Use métodos de exclusão em nível de classe quando um aplicativo precisar excluir um objeto sem primeiro criar ou extrair um objeto de proxy.
Profile.delete_profile(profile_name)
VectorIndex.delete_index(index_name)Usar APIs Síncronas e Assíncronas
O Select AI for Python fornece APIs síncronas e assíncronas para suas operações principais.
A tabela a seguir mapeia classes e operações síncronas para seus equivalentes assíncronos:
| Classe ou operação síncrona | Equivalente assí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() |
Use APIs assíncronas em aplicativos que:
- Processe vários prompts simultaneamente.
- Use um loop de eventos.
- Integre com frameworks Python assíncronos.
- Deve evitar o bloqueio enquanto aguarda as operações do banco de dados.
Use select_ai.create_pool_async() para criar um pool de conexões compartilhado para workflows assíncronos.
O AsyncProfile suporta streaming dos mesmos métodos de texto suportados que o Profile. Defina stream=True e especifique chunk_size quando necessário.
Para obter a referência de API assíncrona completa, consulte a Referência de API Select AI for Python.
Gerenciar Pools de Conexões
Use um pool de conexões quando um aplicativo processar solicitações de banco de dados repetidas ou simultâneas.
O Select AI for Python fornece as seguintes funções de criação de pool:
| Processamento | Função |
|---|---|
| Síncrono | select_ai.create_pool() |
| Assíncrono | select_ai.create_pool_async() |
Um shared pool reduz a necessidade de criar uma nova conexão de banco de dados para cada solicitação e suporta cargas de trabalho simultâneas de aplicativos.
Usar a Interface de Linha de Comando
A interface de linha de comando select-ai opcional fornece acesso de terminal a operações comuns do Select AI.
Instale as dependências da CLI:
python3 -m pip install 'select_ai[cli]'Execute a interface de linha-comando:
select-aiA tabela a seguir resume os comandos suportados:
| Comando | Finalidade |
|---|---|
select-ai chat |
Inicia uma sessão de chat interativa e sensível ao contexto. |
select-ai sql show |
Gera e exibe SQL sem executá-lo. |
select-ai sql run |
Gera e executa SQL. |
select-ai sql explain |
Explica o SQL gerado. |
select-ai sql narrate |
Descreve os resultados de consultas em linguagem natural. |
select-ai profile list |
Lista perfis de IA. |
select-ai profile summarize |
Resume o conteúdo com um perfil de IA. |
select-ai profile translate |
Traduz conteúdo com um perfil de IA. |
Forneça valores de conexão do banco de dados como opções de comando ou defina as seguintes variáveis de ambiente:
| Variável de ambiente | Descrição |
|---|---|
SELECT_AI_USER |
Especifica o nome do usuário do banco de dados. |
SELECT_AI_PASSWORD |
Especifica a senha do banco de dados. |
SELECT_AI_DB_CONNECT_STRING |
Especifica a string da conexão do banco de Dados. |
Selecionar Agente de IA para Python
Para classes específicas do Select AI Agent, operações de ferramenta, parâmetros instruction e métodos de exclusão no nível da classe, consulte Select AI Agent for Python.