Generování vektorových vkládání pomocí Azure OpenAI na flexibilním serveru Azure Database for PostgreSQL
PLATÍ PRO: Flexibilní server Azure Database for PostgreSQL
Vyvolejte vkládání Azure OpenAI snadno, abyste získali vektorové znázornění vstupu, které je možné použít při vyhledávání vektorové podobnosti a spotřebovávaných modely strojového učení.
Požadavky
- Povolte a nakonfigurujte
azure_ai
rozšíření. - Vytvořte účet OpenAI a požádejte o přístup ke službě Azure OpenAI.
- V požadovaném předplatném udělte přístup k Azure OpenAI.
- Udělte oprávnění k vytváření prostředků Azure OpenAI a nasazení modelů.
- Vytvořte a nasaďte prostředek služby Azure OpenAI a model, například nasaďte vložení modelu text-embedding-ada-002. Zkopírujte název nasazení, protože je potřeba k vytvoření vkládání.
Konfigurace koncového bodu OpenAI a klíče
V prostředku Azure OpenAI v části Klíče správy>prostředků a koncové body najdete koncový bod a klíče pro prostředek Azure OpenAI. Pokud chcete vyvolat nasazení modelu, povolte azure_ai
rozšíření pomocí koncového bodu a jednoho z klíčů.
select azure_ai.set_setting('azure_openai.endpoint', 'https://<endpoint>.openai.azure.com');
select azure_ai.set_setting('azure_openai.subscription_key', '<API Key>');
azure_openai.create_embeddings
Vyvolá rozhraní API Azure OpenAI, které vytvoří vkládání pomocí zadaného nasazení přes daný vstup.
azure_openai.create_embeddings(deployment_name text, input text, timeout_ms integer DEFAULT 3600000, throw_on_error boolean DEFAULT true, max_attempts integer DEFAULT 1, retry_delay_ms integer DEFAULT 1000)
azure_openai.create_embeddings(deployment_name text, input text[], batch_size integer DEFAULT 100, timeout_ms integer DEFAULT 3600000, throw_on_error boolean DEFAULT true, max_attempts integer DEFAULT 1, retry_delay_ms integer DEFAULT 1000)
Argumenty
deployment_name
text
název nasazení v nástroji Azure OpenAI Studio, který tento model obsahuje.
input
text
nebo text[]
jeden text nebo pole textu v závislosti na přetížení použité funkce, pro kterou se vytvářejí vkládání.
dimensions
integer DEFAULT NULL
Početdimenzích Podporuje se pouze v modelech pro vkládání textu 3 a novějších. Dostupné ve verzích 1.1.0 a novějších rozšířeních azure_ai
batch_size
integer DEFAULT 100
počet záznamů, které se mají zpracovat najednou (k dispozici pouze pro přetížení funkce, pro kterou je parametr input
typu text[]
).
timeout_ms
integer DEFAULT 3600000
časový limit v milisekundách, po kterém je operace zastavena.
throw_on_error
boolean DEFAULT true
při chybě by funkce vyvolala výjimku, která vede k vrácení zpět obtékání transakcí.
max_attempts
integer DEFAULT 1
kolikrát rozšíření opakuje vytváření vkládání Azure OpenAI, pokud selže s jakoukoli chybou opakovatelnou.
retry_delay_ms
integer DEFAULT 1000
doba (milisekundy), po kterou rozšíření čeká před opětovným voláním koncového bodu Azure OpenAI pro vytvoření vložení, když selže s jakoukoli chybou opakovatelnou.
Návratový typ
real[]
nebo TABLE(embedding real[])
jeden prvek nebo jednosloupcovou tabulku v závislosti na přetížení použité funkce s vektorovou reprezentací vstupního textu při zpracování vybraným nasazením.
Použití OpenAI k vytvoření vložených objektů a jejich uložení do datového typu vektoru
-- Create tables and populate data
DROP TABLE IF EXISTS conference_session_embeddings;
DROP TABLE IF EXISTS conference_sessions;
CREATE TABLE conference_sessions(
session_id int PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
title text,
session_abstract text,
duration_minutes integer,
publish_date timestamp
);
-- Create a table to store embeddings with a vector column.
CREATE TABLE conference_session_embeddings(
session_id integer NOT NULL REFERENCES conference_sessions(session_id),
session_embedding vector(1536)
);
-- Insert a row into the sessions table
INSERT INTO conference_sessions
(title,session_abstract,duration_minutes,publish_date)
VALUES
('Gen AI with Azure Database for PostgreSQL flexible server'
,'Learn about building intelligent applications with azure_ai extension and pg_vector'
, 60, current_timestamp)
,('Deep Dive: PostgreSQL database storage engine internals'
,' We will dig deep into storage internals'
, 30, current_timestamp)
;
-- Get an embedding for the Session Abstract
SELECT
pg_typeof(azure_openai.create_embeddings('text-embedding-ada-002', c.session_abstract)) as embedding_data_type
,azure_openai.create_embeddings('text-embedding-ada-002', c.session_abstract)
FROM
conference_sessions c LIMIT 10;
-- Insert embeddings
INSERT INTO conference_session_embeddings
(session_id, session_embedding)
SELECT
c.session_id, (azure_openai.create_embeddings('text-embedding-ada-002', c.session_abstract))
FROM
conference_sessions as c
LEFT OUTER JOIN
conference_session_embeddings e ON e.session_id = c.session_id
WHERE
e.session_id IS NULL;
-- Create a HNSW index
CREATE INDEX ON conference_session_embeddings USING hnsw (session_embedding vector_ip_ops);
-- Retrieve top similarity match
SELECT
c.*
FROM
conference_session_embeddings e
INNER JOIN
conference_sessions c ON c.session_id = e.session_id
ORDER BY
e.session_embedding <#> azure_openai.create_embeddings('text-embedding-ada-002', 'Session to learn about building chatbots')::vector
LIMIT 1;
Související obsah
- Integrace flexibilního serveru Azure Database for PostgreSQL s Azure Cognitive Services
- Generování vektorových vkládání do flexibilního serveru Azure Database for PostgreSQL s místně nasazeným LLM (Preview)
- Integrace Azure Database for PostgreSQL se službami Azure Machine Learning Services
- Rozšíření Azure AI na flexibilním serveru Azure Database for PostgreSQL
- Generování umělé inteligence s flexibilním serverem Azure Database for PostgreSQL
- Systém doporučení s flexibilním serverem Azure Database for PostgreSQL a Azure OpenAI
- Sémantické vyhledávání s využitím flexibilního serveru Azure Database for PostgreSQL a Azure OpenAI
- Povolení a používání nástroje pgvector na flexibilním serveru Azure Database for PostgreSQL