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_ai

Para 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_CLOUD
  • DBMS_CLOUD_AI
  • DBMS_CLOUD_AI_AGENT
  • DBMS_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:

  • OpenAIProvider
  • AzureProvider
  • OCIGenAIProvider
  • AWSProvider
  • GoogleProvider
  • AnthropicProvider
  • CohereProvider
  • HuggingFaceProvider

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-ai

A 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.

Recursos Relacionados