Explorar o esquema do OpenAI do Azure
Ao incorporar o Azure OpenAI ao banco de dados PostgreSQL, você pode criar aplicativos altamente escalonáveis alimentados por IA. 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 processamento de linguagem natural, sistemas de recomendação ou geração de conteúdo, o Azure OpenAI capacita seus aplicativos.
O azure_openai esquema instalado pela extensão permite que você se conecte e interaja com uma instância do Azure OpenAI Service. Esse esquema permite uma integração perfeita com o serviço Azure OpenAI, permitindo que você crie aplicativos avançados de IA generativos diretamente do banco de dados PostgreSQL.
Criar inserções
Com o azure_openai esquema, você pode chamar a create_embeddings() função, que gera inserções de vetor de dentro da camada de banco de dados. Essas inserções permitem armazenamento, indexação e 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 OpenAI do Azure. Esse nome normalmente se refere a uma implantação do text-embeddings-ada-002 modelo. |
|
| entrada | text ou text[] |
Texto de entrada (ou matriz de texto de entrada) para o qual as inserções de vetor são criadas. | |
| tamanho_do_lote | integer |
100 |
Aplica-se somente quando o input argumento é uma matriz de text valores. 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, em caso de erro, gerar uma exceção, resultando em uma reversão das transações de encapsulamento. |
| tentativas_máximas | integer |
1 |
Número de novas tentativas de chamar o serviço Azure OpenAI em caso de falha. |
| retry_delay_ms | integer |
1000 |
Tempo, em milissegundos, para aguardar antes de tentar chamar novamente o ponto de extremidade de serviço do Azure OpenAI. |
Configurar uma conexão com o Azure OpenAI
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 Azure OpenAI:
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 get_setting() função para verificar as configurações escritas na azure_ai.settings tabela de configuração:
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 vector extensão, seguindo as orientações na documentação habilitar suporte a vetores no seu banco de dados.
Você pode instalar a vector extensão usando o comando CREATE EXTENSION .
CREATE EXTENSION IF NOT EXISTS vector;
Gerar e armazenar vetores
No aplicativo de recomendação de propriedade de aluguel alimentado por IA que você está desenvolvendo para o Margie's Travel, você deve adicionar uma nova coluna à tabela de destino usando o vector tipo de dados para armazenar inserções nessa tabela depois de adicionar suporte de vetor ao banco de dados. Os vetores são habilitados na listings tabela para permitir recursos de pesquisa semântica ao executar consultas para pesquisar propriedades disponíveis. O text-embedding-ada-002 modelo 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);
Agora, a tabela listings está pronta para armazenar inserções. Ao usar 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 vetor é correlacionada com a similaridade semântica entre duas entradas no formato original.