Explore o esquema do Azure OpenAI
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.