Explorar o esquema do OpenAI do Azure
Ao incorporar o Serviço OpenAI do Azure ao banco de dados PostgreSQL, você pode criar aplicativos altamente escalonáveis da plataforma AI. Essa integração permite que você use a linguagem SQL familiar e a flexibilidade do PostgreSQL para criar soluções inteligentes em sua camada de banco de dados. Seja por meio do processamento de linguagem natural, dos sistemas de recomendação ou da geração de conteúdo, o OpenAI do Azure turbina seus aplicativos.
O esquema azure_openai
instalado pela extensão azure_ai
permite que você se conecte e interaja com uma instância do Serviço OpenAI do Azure. Esse esquema permite uma integração perfeita com o serviço OpenAI do Azure, permitindo que você crie aplicativos avançados de IA generativa diretamente do banco de dados PostgreSQL.
Criar inserções
Com o esquema azure_openai
, você pode chamar a função create_embeddings()
, que gera inserções de vetores de dentro da camada de banco de dados. Essas inserções permitem o armazenamento, a indexação e a consulta eficientes de vetores de alta dimensão. A função pode assumir duas formas:
azure_openai.create_embeddings(text,text,integer,boolean,integer,integer)
azure_openai.create_embeddings(text,text[],integer,integer,boolean,integer,integer)
A tabela a seguir descreve os argumentos esperados pela função:
Argumento | Tipo | Padrão | Descrição |
---|---|---|---|
deployment_name | text |
Nome da implantação do modelo de inserção no estúdio do Serviço OpenAI do Azure. Esse nome normalmente se refere a uma implantação do modelo text-embeddings-ada-002 . |
|
input | text ou text[] |
Texto de entrada (ou matriz de texto de entrada) para o qual as inserções de vetores são criadas. | |
batch_size | integer |
100 |
Aplica-se somente quando o argumento input é uma matriz de valores text . batch_size especifica o número de registros da matriz a serem processados simultaneamente. |
timeout_ms | integer |
NULL::integer |
Tempo limite em milissegundos após o qual a operação é interrompida. |
throw_on_error | boolean |
true |
Sinalizador indicando se a função deve, por erro, gerar uma exceção, resultando em uma reversão das transações de encapsulamento. |
max_attempts | integer |
1 |
Número de vezes para tentar novamente a chamada para o serviço OpenAI do Azure em caso de falha. |
retry_delay_ms | integer |
1000 |
Tempo, em milissegundos, para aguardar antes de tentar novamente chamar o ponto de extremidade do serviço OpenAI do Azure. |
Configurar uma conexão com o OpenAI do Azure
Antes de usar as funções azure_openai
, configure a extensão com o ponto de extremidade e a chave do serviço OpenAI do Azure. O comando a seguir representa as consultas que você usaria para definir o ponto de extremidade e a chave necessários para se conectar à instância do seu serviço OpenAI do Azure:
SELECT azure_ai.set_setting('azure_openai.endpoint', '{endpoint}');
SELECT azure_ai.set_setting('azure_openai.subscription_key', '{api-key}');
Em seguida, você pode usar a função get_setting()
para verificar as configurações escritas na tabela da configuração azure_ai.settings
:
SELECT azure_ai.get_setting('azure_openai.endpoint');
SELECT azure_ai.get_setting('azure_openai.subscription_key');
Habilitar o suporte a vetores com a extensão vetorial
A função azure_openai.create_embeddings()
na extensão azure_ai
permite que você gere inserções para texto de entrada. Para permitir que os vetores gerados sejam armazenados junto com o restante dos dados no banco de dados, você também deve instalar a extensão vector
seguindo as diretrizes na documentação habilitar o suporte a vetores no seu banco de dados.
Você pode instalar a extensão vector
usando o comando CREATE EXTENSION.
CREATE EXTENSION IF NOT EXISTS vector;
Gerar e armazenar vetores
No aplicativo de recomendação de propriedade de aluguel da plataforma IA que você está desenvolvendo para a Margie's Travel, você deve adicionar uma nova coluna à tabela de destino usando o tipo de dados vector
para armazenar inserções nessa tabela depois de adicionar o suporte a vetores ao banco de dados. Os vetores são habilitados na tabela listings
para permitir recursos de pesquisa semântica ao executar consultas para pesquisar propriedades disponíveis. O modelo text-embedding-ada-002
produz vetores com 1.536 dimensões, portanto, você deve especificar 1536
como o tamanho do vetor.
ALTER TABLE listings
ADD COLUMN description_vector vector(1536);
A tabela listings
agora está pronta para armazenar inserções. Usando a função azure_openai.create_embeddings()
, você cria vetores para o campo description
e insere-os na coluna description_vector
recém-criada na tabela listings
.
UPDATE listings
SET description_vector = azure_openai.create_embeddings('{your-deployment-name}', description);
Cada inserção é um vetor de números de ponto flutuante, portanto, a distância entre duas inserções no espaço vetorial é correlacionada com a similaridade semântica entre duas entradas no formato original.