Explore o esquema do Azure OpenAI

Concluído

Ao incorporar o Azure OpenAI em seu banco de dados PostgreSQL, você pode criar aplicativos altamente escaláveis baseados em IA. Essa integração permite que você use a linguagem SQL familiar e a flexibilidade do PostgreSQL para criar soluções inteligentes dentro de sua camada de banco de dados. Quer se trate de processamento de linguagem natural, sistemas de recomendação ou geração de conteúdo, o Azure OpenAI capacita as suas aplicações.

O azure_openai esquema instalado pela azure_ai extensão 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 poderosos aplicativos de IA generativa diretamente do seu banco de dados PostgreSQL.

Criar incorporações

Com o azure_openai esquema, você pode chamar a create_embeddings() função, que gera incorporações vetoriais de dentro da camada de banco de dados. Essas incorporaçõ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 Type Predefinido Description
deployment_name text Nome da implantação do modelo de incorporação no estúdio OpenAI do Azure. Esse nome normalmente se refere a uma implantação do text-embeddings-ada-002 modelo.
input text ou text[] Texto de entrada (ou matriz de texto de entrada) para o qual as incorporações vetoriais são criadas.
batch_size integer 100 Só se aplica 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 que indica se a função deve, em caso de erro, lançar uma exceção, resultando em uma reversão das transações de encapsulamento.
max_attempts integer 1 Número de vezes para repetir a chamada para o serviço Azure OpenAI no caso de uma falha.
retry_delay_ms integer 1000 Quantidade de tempo, em milissegundos, para aguardar antes de tentar chamar novamente o ponto de extremidade do serviço Azure OpenAI.

Configurar uma conexão com o Azure OpenAI

Antes de usar as azure_openai funções, configure a extensão com seu ponto de extremidade e chave do serviço Azure OpenAI. O comando a seguir representa as consultas que você usaria para definir o ponto de extremidade e a chave necessários para se conectar à sua 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 tabela de azure_ai.settings configuração:

SELECT azure_ai.get_setting('azure_openai.endpoint');
SELECT azure_ai.get_setting('azure_openai.subscription_key');

Habilite o suporte a vetores com a extensão vetorial

A azure_openai.create_embeddings() função na azure_ai extensão permite gerar incorporaçõ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 em habilitar suporte a vetores na documentação do 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 Margie's Travel, você deve adicionar uma nova coluna à tabela de destino usando o vector tipo de dados para armazenar incorporações nessa tabela depois de adicionar suporte a vetores ao banco de dados. Os vetores são habilitados listings na 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);

A listings mesa está agora pronta para armazenar incorporações. Usando a azure_openai.create_embeddings() função, você cria vetores para o description campo e os insere na coluna recém-criada description_vector na listings tabela.

UPDATE listings
SET description_vector = azure_openai.create_embeddings('{your-deployment-name}', description);

Cada incorporação é um vetor de números de vírgula flutuante, de modo que a distância entre duas incorporações no espaço vetorial está correlacionada com a semelhança semântica entre duas entradas no formato original.