Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Rozszerzenie azure AI wprowadza operatory semantyczne, przełomową funkcję, która integruje zaawansowane funkcje generowania sztucznej inteligencji (GenAI) bezpośrednio z bazą danych PostgreSQL SQL. Te operatory, które są obsługiwane przez modele, takie jak uzupełnianie czatów i inne wdrożenia sztucznej inteligencji platformy Azure, umożliwiają deweloperom tworzenie aplikacji opartych na usłudze GenAI bezpośrednio w bazach danych. Dzięki temu można odblokowywać nowe możliwości zrozumienia tekstu, rozumowania i generowania ustrukturyzowanych danych wyjściowych.
Kluczowe funkcje
Operatory semantyczne udostępniają użytkownikom cztery podstawowe funkcje SQL, które korzystają z funkcji generowania sztucznej inteligencji:
-
azure_ai.generate(): generuje tekst lub dane wyjściowe ze strukturą przy użyciu dużych modeli językowych (LLMs). -
azure_ai.is_true(): ocenia prawdopodobieństwo, że dana instrukcja ma wartość true. -
azure_ai.extract(): wyodrębnia funkcje ustrukturyzowane lub jednostki z tekstu. -
azure_ai.rank(): Wyświetla listę dokumentów na podstawie istotności danego zapytania.
Każda funkcja działa za pośrednictwem punktów końcowych rozwiązania AI Foundry zarejestrowanych przy użyciu azure_ai.set_setting funkcji, zapewniając bezproblemową integrację i kontrolę użytkownika.
Opis operatorów semantycznych
Operatory semantyczne w rozszerzeniu AI platformy Azure zostały zaprojektowane w celu uproszczenia złożonych zadań opartych na sztucznej inteligencji bezpośrednio w bazie danych PostgreSQL. Te operatory umożliwiają użytkownikom bezproblemową integrację możliwości generowania sztucznej inteligencji z przepływami pracy SQL, co umożliwia zaawansowane generowanie tekstu, ocenę prawdy, wyodrębnianie jednostek i klasyfikowanie dokumentów. Każdy operator jest zoptymalizowany pod kątem łatwości użycia i elastyczności, dzięki czemu deweloperzy mogą tworzyć inteligentne aplikacje przy minimalnym nakładzie pracy.
azure_ai.generate()
Ten operator używa funkcji LLMs do generowania tekstu lub danych wyjściowych ze strukturą.
Obsługuje następujące parametry wejściowe:
| Argumentacja | Typ | Opis |
|---|---|---|
prompt |
text |
Monit użytkownika o wysłanie do usługi LLM. |
json_schema (opcjonalny) |
JsonB
DEFAULT ''
|
Schemat JSON ustrukturyzowanych danych wyjściowych, do których ma być zgodna odpowiedź LLM. Musi być zgodna z notacją Open AI dla danych wyjściowych ze strukturą. |
model (opcjonalny) |
text
DEFAULT "gpt-4.1"
|
Nazwa wdrożenia modelu w narzędziu Azure AI Foundry. |
system_prompt (opcjonalny) |
text
DEFAULT "You are a helpful assistant."
|
Monit systemowy do wysłania do usługi LLM. |
Domyślnie operator zwraca wartość zawierającą text wygenerowaną odpowiedź.
json_schema Jeśli argument jest podany, dane wyjściowe są zwracane jako obiekt ustrukturyzowany JsonB zgodny z określonym schematem.
Przykłady użycia:
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()
Ten operator ocenia prawdopodobieństwo, że dana instrukcja ma wartość true, zwracając boolean wartość lub NULL jeśli wynik jest niejednoznaczny.
Obsługuje następujące parametry wejściowe:
| Argumentacja | Typ | Opis |
|---|---|---|
statement |
text |
Instrukcja, która ma być oceniana jako prawda lub fałsz. |
model (opcjonalny) |
text
DEFAULT "gpt-4.1"
|
Nazwa wdrożenia modelu w narzędziu Azure AI Foundry. |
Przykłady użycia:
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()
Ten operator wyodrębnia funkcje ustrukturyzowane lub jednostki z tekstu na podstawie etykiet zdefiniowanych przez użytkownika.
Obsługuje następujące parametry wejściowe:
| Argumentacja | Typ | Opis |
|---|---|---|
document |
text |
Dokument zawierający jednostki i funkcje. |
data |
array[text] |
Tablica etykiet lub nazw funkcji, w której każdy wpis reprezentuje odrębny typ jednostki do wyodrębnienia z tekstu wejściowego. |
model (opcjonalny) |
text
DEFAULT "gpt-4.1"
|
Nazwa wdrożenia modelu w narzędziu Azure AI Foundry. |
Operator zwraca JsonB obiekt zawierający wyodrębnione jednostki zamapowane na odpowiednie etykiety.
Przykładowe użycie:
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()
Ten operator ponownie korbuje dokumenty na podstawie ich istotności dla danego zapytania. Obsługuje ona modele między koderami i GPT.
Obsługuje następujące parametry wejściowe:
| Argumentacja | Typ | Opis |
|---|---|---|
query |
text |
Ciąg wyszukiwania używany do oceny i klasyfikacji istotności każdego dokumentu. |
document_contents |
array[text] |
Tablica dokumentów do ponownego sklasyfikowania. |
document_ids (opcjonalny) |
array |
Tablica identyfikatorów dokumentów odpowiadających dokumentom wejściowym. |
model (opcjonalny) |
text
DEFAULT "cohere-rerank-v3.5"
|
Nazwa wdrożenia modelu w narzędziu Azure AI Foundry. Obsługuje zarówno modele oparte na koderze krzyżowym, jak i GPT. |
Operator zwraca table identyfikator dokumentu, jego rangę i skojarzony wynik istotności.
Przykłady użycia:
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;
Pierwsze kroki
Aby użyć operatorów semantycznych w bazie danych PostgreSQL, wykonaj następujące kroki:
Konfiguracja dla .generate()operatorów , .extract()i .is_true()
Te operatory obsługują modele uzupełniania czatów i domyślnie mają wartość gpt-4.1.
Włącz rozszerzenie
azure_aiw wystąpieniu elastycznego serwera usługi Azure Database for PostgreSQL.Utwórz zasób usługi Azure OpenAI i wdróż model uzupełniania czatu (na przykład
gpt-4.1). Alternatywnie możesz wdrażać modele i zarządzać nimi za pomocą intuicyjnych środowisk udostępnianych przez usługę Azure AI Foundry.Zanotuj adres URL punktu końcowego usługi Azure OpenAI i klucz interfejsu API.
Konfigurowanie dostępu:
Aby włączyć
azure_airozszerzenie w celu wywołania tego modelu przy użyciu uwierzytelniania klucza subskrypcji, uruchom następujące polecenia 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>');Jeśli zamiast tego chcesz użyć tożsamości zarządzanych, zapoznaj się z tym artykułem , aby wykonać następujące kroki:
- Włącz tożsamość zarządzaną przypisaną przez system dla wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL i uruchom ponownie serwer.
- Przypisz rolę "Użytkownik openAI usług Cognitive Services" do tożsamości zarządzanej w celu interakcji z zasobem usługi Azure OpenAI.
- Ustaw wartość
azure_openai.auth_type"tożsamość zarządzana". - Ustaw wartość za
azure_openai.endpointpomocą adresu URL punktu końcowego.
Teraz wszystko jest ustawione tak, aby wywoływać
.generate()operatory ,.is_true()i.extract().Przykładowe użycie z wartością
gpt-4.1(ustawienie domyślne):SELECT name, azure_ai.generate( 'Generate a description for the product: ' || name ) AS description FROM products;Przykładowe użycie z innymi modelami:
SELECT name, azure_ai.generate( 'Generate a description for the product: ' || name , 'gpt-4.1-mini' ) AS description FROM products;
Konfiguracja operatora .rank()
Operator .rank() obsługuje zarówno modele kodera krzyżowego, jak i uzupełniania czatu, a także domyślnie dla kodera Cohere-rerank-v3.5krzyżowego .
Korzystanie z Cohere-rerank-v3.5 kodera krzyżowego:
Włącz rozszerzenie
azure_aiw swoim wystąpieniu usługi Azure Database for PostgreSQL.Przejdź do usługi Azure AI Foundry i wdróż
Cohere-rerank-v3.5model przy użyciu opcji zakupu bezserwerowego interfejsu API.Zwróć uwagę na klucz punktu końcowego modelu i trasę interfejsu API usługi Reranker , która powinna wyglądać mniej więcej tak:
https://<deployment name>.<region>.models.ai.azure.com/<v1 or v2>/rerank.Konfigurowanie dostępu:
Aby włączyć
azure_airozszerzenie w celu wywołania tego modelu przy użyciu uwierzytelniania klucza subskrypcji, uruchom następujące polecenia 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>');Jeśli zamiast tego chcesz użyć tożsamości zarządzanych, zapoznaj się z tym artykułem , aby wykonać następujące kroki:
- Włącz tożsamość zarządzaną przypisaną przez system dla wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL i uruchom ponownie serwer.
- Przypisz rolę "Azure Machine Learning Data Scientist" do tożsamości zarządzanej w celu interakcji z modelem Cohere.
- Ustaw wartość
azure_ml.auth_type"tożsamość zarządzana". - Ustaw element
azure_ml.serverless_ranking_endpointza pomocą interfejsu API ponownego korektu Cohere.
Teraz wszystko jest ustawione, aby wywołać
.rank()operator przy użyciu modelu reranker 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;
Aby użyć .rank() operatora z modelami uzupełniania czatu, takimi jak gpt-4.1, wdróż żądany model w usłudze Azure OpenAI, skonfiguruj azure_ai rozszerzenie przy użyciu szczegółów punktu końcowego modelu i określ nazwę modelu podczas wywoływania operatora.
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;