Fonction ai_query
S’applique à : Databricks SQL
Important
Cette fonctionnalité est disponible en préversion publique.
Appelle un point de terminaison de mise en service de modèle Azure Databricks existant, analyse et retourne ensuite sa réponse.
Spécifications
- Cette fonction n’est pas disponible sur Azure Databricks SQL classique.
- L’interrogation des API de modèle de fondation est activée par défaut. Pour interroger des points de terminaison qui servent des modèles personnalisés ou des modèles externes, vous devez vous inscrire à la préversion publique. Merci de compléter et d’envoyer le formulaire AI Functions Public Preview enrollment.
Syntaxe
Pour interroger un point de terminaison servant un modèle externe ou un modèle de base :
ai_query(endpointName, request)
Pour interroger un point de terminaison en service des modèles personnalisés :
ai_query(endpointName, request, returnType)
Arguments
endpointName
: littéral STRING, le nom du point de terminaison de mise en service de modèle Databricks existant dans le même espace de travail pour les appels. L’utilisateur qui définit doit disposer de l’autorisation PEUT INTERROGER sur le point de terminaison.request
: expression, la requête utilisée pour appeler le point de terminaison.- Si le point de terminaison est un point de terminaison de service des modèles externes ou un point de terminaison d’API du modèle Databricks Foundation, la requête doit être une CHAINE.
- Si le point de terminaison est un point de terminaison de service des modèles personnalisés, la requête peut être une unique colonne ou une expression de struct. Les noms de champ struct doivent correspondre aux noms des fonctionnalités d’entrée attendus par le point de terminaison.
returnType
: Une expression, le returnType attendu du point de terminaison. Ceci est similaire au paramètre de schéma dans from_json fonction, qui accepte une expression STRING ou l’appel de schema_of_json fonction. Nécessaire pour interroger un point de terminaison de service des modèles personnalisés.
Retours
Réponse analysée du point de terminaison.
Exemples
Pour interroger un point de terminaison de service des modèles externes ou un modèle Databricks Foundation :
> 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."
> 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;
Pour interroger un point de terminaison de service des modèles personnalisés :
> 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."]}