Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Rozšíření Azure AI zavádí sémantické operátory, což je základní funkce, která integruje pokročilé funkce Generative AI (GenAI) přímo do PostgreSQL SQL. Tyto operátory, které využívají modely, jako jsou dokončování chatu a další nasazení Azure AI, umožňují vývojářům vytvářet aplikace řízené GenAI přímo v jejich databázích. Tím se zpřístupní nové funkce pro pochopení textu, odůvodnění a generování strukturovaných výstupů.
Klíčové funkce
Sémantické operátory poskytují uživatelům čtyři základní funkce SQL, které používají možnosti generování umělé inteligence:
-
azure_ai.generate(): Generuje text nebo strukturovaný výstup pomocí rozsáhlých jazykových modelů (LLM). -
azure_ai.is_true(): Vyhodnotí pravděpodobnost, že daný příkaz je pravdivý. -
azure_ai.extract(): Extrahuje strukturované funkce nebo entity z textu. -
azure_ai.rank(): Znovu seřadí seznam dokumentů na základě relevance pro daný dotaz.
Každá funkce funguje prostřednictvím koncových bodů AI Foundry registrovaných pomocí azure_ai.set_setting funkce, což zajišťuje bezproblémovou integraci a řízení uživatelů.
Principy sémantických operátorů
Sémantické operátory v rozšíření Azure AI jsou navržené tak, aby zjednodušily složité úlohy řízené AI přímo v databázi PostgreSQL. Tyto operátory umožňují uživatelům bezproblémovou integraci generovacích funkcí umělé inteligence do pracovních postupů SQL, což umožňuje pokročilé generování textu, vyhodnocení pravdy, extrakci entit a řazení dokumentů. Každý operátor je optimalizovaný pro snadné použití a flexibilitu, což vývojářům umožňuje vytvářet inteligentní aplikace s minimálním úsilím.
azure_ai.generate()
Tento operátor používá LLM k vygenerování textu nebo strukturovaného výstupu.
Podporuje následující vstupní parametry:
| Důvod | Typ | Popis |
|---|---|---|
prompt |
text |
Uživateli se zobrazí výzva k odeslání do LLM. |
json_schema (volitelné) |
JsonB
DEFAULT ''
|
Schéma JSON strukturovaného výstupu, který má odpověď LLM dodržovat. Pro strukturovaný výstup je nutné postupovat podle notace Open AI. |
model (volitelné) |
text
DEFAULT "gpt-4.1"
|
Název nasazení modelu v Azure AI Foundry |
system_prompt (volitelné) |
text
DEFAULT "You are a helpful assistant."
|
Výzva k odeslání systému do LLM |
Ve výchozím nastavení vrátí text operátor hodnotu obsahující vygenerovanou odpověď.
json_schema Pokud je argument zadán, vrátí se výstup jako strukturovaný JsonB objekt, který odpovídá zadanému schématu.
Příklad použití:
SELECT azure_ai.generate(
'Rewrite the following comment to be more polite: ' comment_text
) AS polite_comment
FROM user_comments;
SELECT review, azure_ai.generate(
prompt => 'Rewrite the following comment to be more polite and return the number of products mentioned:' || review,
json_schema => '{
"name": "generate_response",
"description": "Generate a response to the user",
"strict": true,
"schema": {
"type": "object",
"properties": {
"comment": { "type": "string" },
"num_products": { "type": "integer" }
},
"required": ["comment", "num_products"],
"additionalProperties": false
}
}',
model => 'gpt-4.1-mini'
) as polite_comment_with_count
FROM
Reviews;
azure_ai.is_true()
Tento operátor vyhodnotí pravděpodobnost, že daný příkaz je pravdivý, vrátí boolean hodnotu nebo NULL pokud je výsledek nevýznamný.
Podporuje následující vstupní parametry:
| Důvod | Typ | Popis |
|---|---|---|
statement |
text |
Příkaz, který se má vyhodnotit jako true nebo false. |
model (volitelné) |
text
DEFAULT "gpt-4.1"
|
Název nasazení modelu v Azure AI Foundry |
Příklad použití:
SELECT azure_ai.is_true(
'The review talks about the product: '
product_name
' Review: '
review_text
) AS is_relevant_review
FROM product_reviews;
azure_ai.extract()
Tento operátor extrahuje strukturované funkce nebo entity z textu na základě uživatelsky definovaných popisků.
Podporuje následující vstupní parametry:
| Důvod | Typ | Popis |
|---|---|---|
document |
text |
Dokument obsahující entity a funkce. |
data |
array[text] |
Pole popisků nebo názvů funkcí, kde každá položka představuje jedinečný typ entity, který se má extrahovat ze vstupního textu. |
model (volitelné) |
text
DEFAULT "gpt-4.1"
|
Název nasazení modelu v Azure AI Foundry |
Operátor vrátí JsonB objekt obsahující extrahované entity namapované na jejich odpovídající popisky.
Příklad použití:
SELECT azure_ai.extract(
'The headphones are not great. They have a good design, but the sound quality is poor and the battery life is short.',
ARRAY[ 'product', 'sentiment']
);
-- Output: {"product": "headphones", "sentiment": "negative"}
SELECT azure_ai.extract(
'The music quality is good, though the call quality could have been better. The design is sleek, but still slightly heavy for convenient travel.',
ARRAY[
'design: string - comma separated list of design features of the product',
'sound: string - sound quality (e.g., music, call, noise cancellation) of the product',
'sentiment: number - sentiment score of the review; 1 (lowest) to 5 (highest)'
]
);
-- Output: {"sound": "music quality is good, call quality could have been better", "design": "sleek, slightly heavy", "sentiment": 3}
azure_ai.rank()
Tento operátor znovu řadí dokumenty na základě jejich relevance pro daný dotaz. Podporuje modely pro různé kodéry a GPT.
Podporuje následující vstupní parametry:
| Důvod | Typ | Popis |
|---|---|---|
query |
text |
Hledaný řetězec použitý k vyhodnocení a řazení relevance jednotlivých dokumentů. |
document_contents |
array[text] |
Pole dokumentů, které se mají přeřadit. |
document_ids (volitelné) |
array |
Pole identifikátorů dokumentu odpovídajících vstupním dokumentům. |
model (volitelné) |
text
DEFAULT "cohere-rerank-v3.5"
|
Název nasazení modelu v Azure AI Foundry Podporuje modely založené na více kodérech i GPT. |
Operátor vrátí table obsahující ID dokumentu, jeho pořadí a přidružené skóre relevance.
Příklad použití:
SELECT azure_ai.rank(
'Best headphones for travel',
ARRAY[
'The headphones are lightweight and foldable, making them easy to carry.',
'Bad battery life, not so great for long trips.',
'The sound quality is excellent, with good noise isolation.'
]
)
SELECT azure_ai.rank(
query => 'Clear calling capability that blocks out background noise',
document_contents => ARRAY[
'The product has a great battery life, good design, and decent sound quality.',
'These headphones are perfect for long calls and music.',
'Best headphones for music lovers. Call quality could have been better.',
'The product has a good design, but it is a bit heavy. Not recommended for travel.'
],
document_ids => ARRAY['Review1', 'Review2', 'Review3', 'Review4'],
model => 'gpt-4.1'
) AS ranked_reviews;
Jak začít
Pokud chcete v databázi PostgreSQL používat sémantické operátory, postupujte takto:
Nastavení pro .generate(), .extract()a .is_true() operátory
Tito operátoři podporují modely dokončování chatu a výchozí nastavení gpt-4.1.
Povolte
azure_airozšíření na flexibilní instanci serveru Azure Database for PostgreSQL.Vytvořte prostředek služby Azure OpenAI a nasaďte model dokončování chatu (například
gpt-4.1). Alternativně můžete nasazovat a spravovat modely prostřednictvím intuitivních prostředí poskytovaných službou Azure AI Foundry.Poznamenejte si adresu URL koncového bodu Azure OpenAI a klíč rozhraní API.
Konfigurace přístupu:
Pokud chcete rozšíření povolit
azure_aivyvolání tohoto modelu pomocí ověřování klíče předplatného, spusťte následující příkazy SQL:SELECT azure_ai.set_setting('azure_openai.endpoint', 'https://<endpoint>.openai.azure.com/'); SELECT azure_ai.set_setting('azure_openai.subscription_key', '<API Key>');Pokud chcete místo toho použít spravované identity, projděte si tento článek a proveďte následující kroky:
- Povolte spravovanou identitu přiřazenou systémem pro instanci flexibilního serveru Azure Database for PostgreSQL a restartujte server.
- Přiřaďte roli "Uživatel OpenAI služeb Cognitive Services" spravované identitě pro interakci s prostředkem Azure OpenAI.
-
azure_openai.auth_typeNastavte hodnotu managed-identity. -
azure_openai.endpointNastavte adresu URL koncového bodu.
Teď jste všichni nastaveni tak, abyste volají operátory
.generate(),.is_true()a.extract()operátory.Příklad použití s
gpt-4.1(výchozí):SELECT name, azure_ai.generate( 'Generate a description for the product: ' || name ) AS description FROM products;Příklad použití s jinými modely:
SELECT name, azure_ai.generate( 'Generate a description for the product: ' || name , 'gpt-4.1-mini' ) AS description FROM products;
Nastavení pro .rank() operátor
Operátor .rank() podporuje modely dokončování křížového kodéru i chatu a výchozí nastavení křížového kodéru Cohere-rerank-v3.5.
Použití Cohere-rerank-v3.5 křížového kodéru:
azure_aiPovolte rozšíření v instanci Azure Database for PostgreSQL.Přejděte do Azure AI Foundry a nasaďte
Cohere-rerank-v3.5model pomocí možnosti nákupu bezserverového rozhraní API.Poznamenejte si klíč koncového bodu modelu a trasu rozhraní API Reranker , která by měla vypadat přibližně takto:
https://<deployment name>.<region>.models.ai.azure.com/<v1 or v2>/rerank.Konfigurace přístupu:
Pokud chcete rozšíření povolit
azure_aivyvolání tohoto modelu pomocí ověřování klíče předplatného, spusťte následující příkazy SQL:SELECT azure_ai.set_setting('azure_ml.serverless_ranking_endpoint', '<Cohere reranker API>'); SELECT azure_ai.set_setting('azure_ml.serverless_ranking_endpoint_key', '<API Key>');Pokud chcete místo toho použít spravované identity, projděte si tento článek a proveďte následující kroky:
- Povolte spravovanou identitu přiřazenou systémem pro instanci flexibilního serveru Azure Database for PostgreSQL a restartujte server.
- Přiřaďte spravované identitě roli Odborník na data ve službě Azure Machine Learning pro interakci s modelem Cohere.
-
azure_ml.auth_typeNastavte hodnotu managed-identity. -
azure_ml.serverless_ranking_endpointNastavte rozhraní API rerankeru Cohere.
Teď jste všichni nastaveni na vyvolání operátoru
.rank()pomocí modelu řazení Cohere.SELECT azure_ai.rank( 'Best headphones for travel', ARRAY[ 'The headphones are lightweight and foldable, making them easy to carry.', 'Bad battery life, not so great for long trips.', 'The sound quality is excellent, with good noise isolation.' ] ) AS ranked_reviews;
Pokud chcete operátora použít s modely dokončování chatu .rank() , jako gpt-4.1je , nasaďte požadovaný model v Azure OpenAI, nakonfigurujte azure_ai rozšíření s podrobnostmi o koncovém bodu modelu a při vyvolání operátoru zadejte název modelu.
SELECT azure_ai.set_setting('azure_openai.endpoint', 'https://<endpoint>.openai.azure.com/');
SELECT azure_ai.set_setting('azure_openai.subscription_key', '<API Key>');
SELECT azure_ai.rank(
'Best headphones for travel',
ARRAY[
'The headphones are lightweight and foldable, making them easy to carry.',
'Bad battery life, not so great for long trips.',
'The sound quality is excellent, with good noise isolation.'
],
'gpt-4.1'
) AS ranked_reviews;