Sdílet prostřednictvím


Sémantické operátory v rozšíření Azure AI (Preview)

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.

  1. Povolte azure_ai rozšíření na flexibilní instanci serveru Azure Database for PostgreSQL.

  2. 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.

  3. Poznamenejte si adresu URL koncového bodu Azure OpenAI a klíč rozhraní API.

  4. Konfigurace přístupu:

    Pokud chcete rozšíření povolit azure_ai vyvolá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_type Nastavte hodnotu managed-identity.
    • azure_openai.endpoint Nastavte adresu URL koncového bodu.
  5. 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:

  1. azure_ai Povolte rozšíření v instanci Azure Database for PostgreSQL.

  2. Přejděte do Azure AI Foundry a nasaďte Cohere-rerank-v3.5 model pomocí možnosti nákupu bezserverového rozhraní API.

  3. 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.

  4. Konfigurace přístupu:

    Pokud chcete rozšíření povolit azure_ai vyvolá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_type Nastavte hodnotu managed-identity.
    • azure_ml.serverless_ranking_endpoint Nastavte rozhraní API rerankeru Cohere.
  5. 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;