Funkcja ai_query
Dotyczy: Databricks SQL Databricks Runtime
Ważne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
Wywołuje istniejący punkt końcowy obsługujący model usługi Azure Databricks i analizuje i zwraca odpowiedź.
Wymagania
- Ta funkcja nie jest dostępna w usłudze Azure Databricks SQL Classic.
- Interfejsy API modelu programu Querying Foundation są domyślnie włączone. Aby wykonywać zapytania dotyczące punktów końcowych obsługujących modele niestandardowe lub modele zewnętrzne, włącz AI_Query dla modeli niestandardowych i modeli zewnętrznych w interfejsie użytkownika usługi Databricks Previews.
- Bieżący kanał magazynu DLT nie używa najnowszej wersji środowiska Databricks Runtime obsługującej program
ai_query()
.pipelines.channel
Ustaw właściwości w tabeli tak'preview'
, aby używać poleceniaai_query()
. Zobacz Przykłady przykładowego zapytania.
Uwaga
- W środowisku Databricks Runtime 14.2 lub nowszym ta funkcja jest obsługiwana w notesach usługi Databricks, w tym notesach uruchamianych jako zadanie w przepływie pracy usługi Databricks.
- W środowisku Databricks Runtime 14.1 lub nowszym ta funkcja nie jest obsługiwana w notesach usługi Databricks.
Składnia
Aby wysłać zapytanie do punktu końcowego obsługującego model zewnętrzny lub model podstawowy:
ai_query(endpointName, request)
Aby wysłać zapytanie do punktu końcowego obsługującego model niestandardowy:
ai_query(endpointName, request, returnType)
Argumenty
endpointName
: literał CIĄGU, nazwa istniejącego punktu końcowego obsługi modelu sztucznej inteligencji mozaiki w tym samym obszarze roboczym dla wywołań. Definiowanie musi mieć uprawnienie CAN QUERY w punkcie końcowym.request
: wyrażenie , żądanie użyte do wywołania punktu końcowego.- Jeśli punkt końcowy jest zewnętrznym modelem obsługującym punkt końcowy lub punkt końcowy interfejsów API modelu usługi Databricks Foundation, żądanie musi być ciągiem.
- Jeśli punkt końcowy jest punktem końcowym obsługującym model niestandardowy, żądanie może być jedną kolumną lub wyrażeniem struktury. Nazwy pól struktury powinny być zgodne z nazwami funkcji wejściowych oczekiwaną przez punkt końcowy.
returnType
: wyrażenie, oczekiwany returnType z punktu końcowego. Jest to podobne do parametru schematu w funkcji from_json, która akceptuje zarówno wyrażenie STRING, jak i wywołanie funkcji schema_of_json. Wymagane do wykonywania zapytań względem niestandardowego punktu końcowego obsługującego model.
Zwraca
Przeanalizowana odpowiedź z punktu końcowego.
Przykłady
Aby wysłać zapytanie do zewnętrznego punktu końcowego obsługującego model:
> SELECT ai_query(
'my-external-model-openai-chat',
'Describe Databricks SQL in 30 words.'
) AS summary
"Databricks SQL is a cloud-based platform for data analytics and machine learning, providing a unified workspace for collaborative data exploration, analysis, and visualization using SQL queries."
Aby wykonywać zapytania dotyczące modelu podstawowego obsługiwanego przez interfejsy API modelu usługi Databricks Foundation:
> SELECT *,
ai_query(
'databricks-meta-llama-3-1-70b-instruct',
"Can you tell me the name of the US state that serves the provided ZIP code? zip code: " || pickup_zip
)
FROM samples.nyctaxi.trips
LIMIT 10
Opcjonalnie można również opakowować wywołanie w ai_query()
funkcji zdefiniowanej przez użytkownika w celu wywoływania funkcji w następujący sposób:
> CREATE FUNCTION correct_grammar(text STRING)
RETURNS STRING
RETURN ai_query(
'databricks-llama-2-70b-chat',
CONCAT('Correct this to standard English:\n', text));
> GRANT EXECUTE ON correct_grammar TO ds;
- DS fixes grammar issues in a batch.
> SELECT
* EXCEPT text,
correct_grammar(text) AS text
FROM articles;
Aby wysłać zapytanie do punktu końcowego obsługującego model niestandardowy:
> SELECT text, ai_query(
endpoint => 'spam-classification-endpoint',
request => named_struct(
'timestamp', timestamp,
'sender', from_number,
'text', text),
returnType => 'BOOLEAN') AS is_spam
FROM messages
> SELECT ai_query(
'weekly-forecast',
request => struct(*),
returnType => 'FLOAT') AS predicted_revenue
FROM retail_revenue
> SELECT ai_query(
'custom-llama-2-7b-chat',
request => named_struct("messages",
ARRAY(named_struct("role", "user", "content", "What is ML?"))),
returnType => 'STRUCT<candidates:ARRAY<STRING>>')
{"candidates":["ML stands for Machine Learning. It's a subfield of Artificial Intelligence that involves the use of algorithms and statistical models to enable machines to learn from data, make decisions, and improve their performance on a specific task over time."]}
Przykładowe zapytanie dotyczące ustawiania kanału DLT na podgląd:
> create or replace materialized view
ai_query_mv
TBLPROPERTIES('pipelines.channel' = 'PREVIEW') AS
SELECT
ai_query("databricks-dbrx-instruct", text) as response
FROM
messages