Megosztás a következőn keresztül:


Szemantikai operátorok az Azure AI-bővítményben (előzetes verzió)

Az Azure AI-bővítmény bevezeti a Szemantic Operátorokat, amely egy úttörő funkció, amely a fejlett Generatív AI-képességeket (GenAI) közvetlenül integrálja a PostgreSQL SQL-be. Ezek az operátorok, amelyeket olyan modellek működtetnek, mint a csevegés befejezése és más Azure AI-üzemelő példányok, lehetővé teszik a fejlesztők számára, hogy genAI-alapú alkalmazásokat építsenek közvetlenül az adatbázisaikban. Ez új képességeket kínál a szöveg megértéséhez, az érveléshez és a strukturált kimenetek létrehozásához.

Legfontosabb funkciók

A szemantikai operátorok négy alapvető SQL-függvényt biztosítanak a felhasználóknak, amelyek generatív AI-képességeket használnak:

  • azure_ai.generate(): Szöveget vagy strukturált kimenetet hoz létre nagy nyelvi modellek (LLM-ek) használatával.
  • azure_ai.is_true(): Kiértékeli annak valószínűségét, hogy egy adott állítás igaz-e.
  • azure_ai.extract(): Strukturált szolgáltatásokat vagy entitásokat nyer ki a szövegből.
  • azure_ai.rank(): Egy adott lekérdezés relevanciája alapján újraküldi a dokumentumok listáját.

Minden függvény a függvény használatával regisztrált AI Foundry-végpontokon keresztül működik, biztosítva a azure_ai.set_setting zökkenőmentes integrációt és a felhasználói vezérlést.

Szemantikai operátorok ismertetése

Az Azure AI-bővítmény szemantikai operátorai úgy lettek kialakítva, hogy egyszerűbbé tegye az összetett AI-alapú feladatokat közvetlenül a PostgreSQL-adatbázisban. Ezek az operátorok lehetővé teszik a felhasználók számára, hogy zökkenőmentesen integrálják a generatív AI-képességeket az SQL-munkafolyamatokba, lehetővé téve a speciális szöveggenerálást, az igazságértékelést, az entitások kinyerését és a dokumentumok rangsorolását. Minden operátor a könnyű használat és a rugalmasság érdekében van optimalizálva, így a fejlesztők minimális erőfeszítéssel hozhatnak létre intelligens alkalmazásokat.

azure_ai.generate()

Ez az operátor LLM-eket használ szöveg vagy strukturált kimenet létrehozásához.

A következő bemeneti paramétereket támogatja:

érvelés Típus Leírás
prompt text A rendszer kéri, hogy a rendszer küldje el a felhasználói kérést az LLM-nek.
json_schema (nem kötelező) JsonB DEFAULT '' Annak a strukturált kimenetnek a JSON-sémája, amelyhez az LLM-válasznak meg kell felelnie. A strukturált kimenet open AI-jelölését kell követnie.
model (nem kötelező) text DEFAULT "gpt-4.1" A modell üzembe helyezésének neve az Azure AI Foundryben.
system_prompt (nem kötelező) text DEFAULT "You are a helpful assistant." A rendszer kéri, hogy elküldje az LLM-nek.

Alapértelmezés szerint az operátor a text generált választ tartalmazó értéket adja vissza. Ha az json_schema argumentum meg van adva, a kimenet strukturált JsonB objektumként jelenik meg, amely megfelel a megadott sémának.

Példa a használatra:

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()

Ez az operátor kiértékeli annak valószínűségét, hogy egy adott utasítás igaz, egy értéket ad boolean vissza, vagy NULL ha az eredmény nem meggyőző.

A következő bemeneti paramétereket támogatja:

érvelés Típus Leírás
statement text Igazként vagy hamisként értékelendő állítás.
model (nem kötelező) text DEFAULT "gpt-4.1" A modell üzembe helyezésének neve az Azure AI Foundryben.

Példa a használatra:

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()

Ez az operátor a felhasználó által definiált címkék alapján kinyeri a strukturált szolgáltatásokat vagy entitásokat a szövegből.

A következő bemeneti paramétereket támogatja:

érvelés Típus Leírás
document text Az entitásokat és funkciókat tartalmazó dokumentum.
data array[text] Címkék vagy szolgáltatásnevek tömbje, ahol minden bejegyzés egy különálló entitástípust jelöl, amelyet a bemeneti szövegből kell kinyerni.
model (nem kötelező) text DEFAULT "gpt-4.1" A modell üzembe helyezésének neve az Azure AI Foundryben.

Az operátor egy JsonB olyan objektumot ad vissza, amely a kicsomagolt entitásokat tartalmazza a megfelelő címkékre leképezve.

Példahasználat:

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()

Ez az operátor a dokumentumok egy adott lekérdezéshez való relevanciája alapján dolgozik. Támogatja a keresztkódolót és a GPT-modelleket.

A következő bemeneti paramétereket támogatja:

érvelés Típus Leírás
query text Az egyes dokumentumok relevanciájának kiértékeléséhez és rangsorolásához használt keresési sztring.
document_contents array[text] Újraküldendő dokumentumok tömbje.
document_ids (nem kötelező) array A bemeneti dokumentumoknak megfelelő dokumentumazonosítók tömbje.
model (nem kötelező) text DEFAULT "cohere-rerank-v3.5" A modell üzembe helyezésének neve az Azure AI Foundryben. Támogatja a keresztkódolót és a GPT-alapú modelleket is.

Az operátor egy table dokumentumazonosítót, annak rangját és a kapcsolódó relevanciapontot tartalmazó értéket ad vissza.

Példa a használatra:

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;

Az első lépések

Ha szemantikai operátorokat szeretne használni a PostgreSQL-adatbázisban, kövesse az alábbi lépéseket:

A , és operátorok .generate().extract() beállítása .is_true()

Ezek az operátorok támogatják a csevegések befejezésének modelljeit, és alapértelmezés szerint a .gpt-4.1

  1. Engedélyezze a bővítményt azure_ai a rugalmas Azure Database for PostgreSQL-kiszolgálópéldányon.

  2. Hozzon létre egy Azure OpenAI szolgáltatáserőforrást , és helyezzen üzembe egy csevegés-befejezési modellt (például gpt-4.1). Alternatív megoldásként az Azure AI Foundry által biztosított intuitív felületekkel helyezhet üzembe és kezelhet modelleket.

  3. Jegyezze fel az Azure OpenAI-végpont URL-címét és API-kulcsát.

  4. Hozzáférés konfigurálása:

    Ha engedélyezni szeretné, hogy a azure_ai bővítmény előfizetési kulcsú hitelesítéssel hívja meg ezt a modellt, futtassa a következő SQL-parancsokat:

    SELECT azure_ai.set_setting('azure_openai.endpoint', 'https://<endpoint>.openai.azure.com/'); 
    SELECT azure_ai.set_setting('azure_openai.subscription_key', '<API Key>');
    

    Ha ehelyett felügyelt identitásokat szeretne használni, tekintse meg ezt a cikket a következő lépések végrehajtásához:

    • Engedélyezze a rendszer által hozzárendelt felügyelt identitást a rugalmas Azure Database for PostgreSQL-kiszolgálópéldányhoz, és indítsa újra a kiszolgálót.
    • Rendelje hozzá a "Cognitive Services OpenAI-felhasználó" szerepkört a felügyelt identitáshoz az Azure OpenAI-erőforrás használatához.
    • Állítsa be a azure_openai.auth_type "managed-identity" értéket.
    • Állítsa be a azure_openai.endpoint végpont URL-címét.
  5. Most már minden beállítás a , .generate()és .is_true() operátorok meghívására .extract()van beállítva.

    Példahasználat ( gpt-4.1 alapértelmezett):

    SELECT name, azure_ai.generate(
      'Generate a description for the product: ' || name
    ) AS description
    FROM products;
    

    Példahasználat más modellekre:

    SELECT name, azure_ai.generate(
      'Generate a description for the product: ' || name , 'gpt-4.1-mini'
    ) AS description
    FROM products;
    

Operátor beállítása .rank()

Az .rank() operátor támogatja a keresztkódolót és a csevegés-befejezési modelleket is, és alapértelmezés szerint a keresztkódolót Cohere-rerank-v3.5.

Keresztkódoló használata Cohere-rerank-v3.5 :

  1. Engedélyezze a bővítményt azure_ai az Azure Database for PostgreSQL-példányon.

  2. Lépjen az Azure AI Foundryre, és telepítse a Cohere-rerank-v3.5 modellt a Kiszolgáló nélküli API vásárlási lehetőséggel.

  3. Figyelje meg a modell végpontkulcsát és a Reranker API-útvonalat , amelynek így kell kinéznie: https://<deployment name>.<region>.models.ai.azure.com/<v1 or v2>/rerank.

  4. Hozzáférés konfigurálása:

    Ha engedélyezni szeretné, hogy a azure_ai bővítmény előfizetési kulcsú hitelesítéssel hívja meg ezt a modellt, futtassa a következő SQL-parancsokat:

    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>');
    

    Ha ehelyett felügyelt identitásokat szeretne használni, tekintse meg ezt a cikket a következő lépések végrehajtásához:

    • Engedélyezze a rendszer által hozzárendelt felügyelt identitást a rugalmas Azure Database for PostgreSQL-kiszolgálópéldányhoz, és indítsa újra a kiszolgálót.
    • Rendelje hozzá az "Azure Machine Learning Data Scientist" szerepkört a felügyelt identitáshoz a Cohere-modell használatához.
    • Állítsa be a azure_ml.auth_type "managed-identity" értéket.
    • Állítsa be a azure_ml.serverless_ranking_endpoint Cohere reranker API-t.
  5. Most már mind arra van beállítva, hogy a Cohere reranker modellel hívja meg az .rank() operátort.

    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;
    

Ha az operátort .rank() olyan csevegés-befejezési modellekkel szeretné használni, mint például gpt-4.1a kívánt modell üzembe helyezése az Azure OpenAI-ban, konfigurálja a azure_ai bővítményt a modell végpontadataival, és adja meg a modell nevét az operátor meghívásakor.

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;