Fonction ai_generate_text
S’applique à : Databricks SQL
Important
Cette fonctionnalité est disponible en préversion publique.
Avertissement
La fonction IA ai_generate_text()
est déconseillée. Databricks recommande d’utiliser ai_query avec des modèles externes.
Retourne le texte généré par un modèle LLM (Grand Language Model) sélectionné en fonction de l’invite.
Spécifications
- Cette fonction n’est disponible que sur Databricks SQL Pro et Serverless.
- Cette fonction est déconseillée. Databricks recommande ai_query avec des modèles externes.
Syntaxe
ai_generate_text(prompt, modelName[, param1, value1] [...])
Arguments
prompt
: expression de chaîne, invite de texte passée au LLM sélectionné.modelName
: littéral STRING, uniquement'openai/gpt-3.5-turbo'
et'azure_openai/gpt-35-turbo'
sont pris en charge.paramN
etvalueN
: paires clé-valeur pour authentifier et configurer le LLM sélectionné. Les clés doivent être des littéraux de chaîne et sont sensibles à la casse. Les types des valeurs dépendent des clés suivantes :- Le modèle
'openai/gpt-3.5-turbo'
utilise l’API de saisie semi-automatique de conversation d’Open AI. Il prend en charge les paramètres suivants :'apiKey'
: requis. Clé API OpenAI pour accéder au point de terminaison du modèle. La valeur spécifiée ne peut pas être une chaîne de constante explicite. La valeur recommandée inclut la fonction secret(scope, key) et la sous-requête scalaireSELECT ...
.'temperature'
: la température d’échantillonnage utiliser. Sa valeur est un littéral numérique compris entre0
et2
. La valeur par défaut est1.0
.stop
: chaînes d’arrêt. Sa valeur est unSTRING
littéral ou unARRAY<STRING>
d’au plus quatre littéraux de chaîne. La valeur par défaut est null.
- Le modèle
'azure_openai/gpt-35-turbo'
utilise l’API de saisie semi-automatique de conversation à partir d’Azure OpenAI Service. Il accepte tous les paramètres du modèle'openai/gpt-3.5-turbo'
ci-dessus et tous les paramètres supplémentaires pour construire l’URL du point de terminaison. Databricks prend uniquement en charge l’authentification par clé API.'resourceName'
: requis. Sa valeur est un littéral de chaîne pour spécifier le nom de la ressource.'deploymentName'
: requis. Sa valeur est un littéral de chaîne pour spécifier le nom du déploiement.'apiVersion'
: requis. Sa valeur est un littéral de chaîne pour spécifier le nom de la version de l’API à utiliser.
- Le modèle
Retours
Expression de chaîne représentant le texte régénéré à partir du LLM sélectionné.
Exemples
Voir Analyser les avis clients avec ai_generate_text() et OpenAI pour un exemple de cas d’usage de la fonction ai_generate_text
.
> SELECT ai_generate_text('Hello', 'openai/gpt-3.5-turbo',
'apiKey', secret('ml', 'key'),
'temperature', 0.1);
Hello! How can I assist you today?
> SELECT ai_generate_text('Hello',
'azure_openai/gpt-35-turbo',
'apiKey', secret('ml', 'key'),
'resouceName', 'resource',
'deploymentName', 'deploy',
'apiVersion', '2023-03-15-preview',
'temperature', 0.1);
Hello! How can I assist you today?
> SELECT ai_generate_text('Hello', 'openai/gpt-3.5-turbo',
'apiKey', (SELECT secret FROM secrets.open_ai_tokens LIMIT 1),
'temperature', 0.1);
Hello! How can I assist you today?
> CREATE FUNCTION summarize(text STRING)
RETURNS STRING
RETURN AI_GENERATE_TEXT(
CONCAT('Summarize the following text: ',
text),
'openai/gpt-3.5-turbo',
'apiKey', (SELECT secret FROM secrets.open_ai_tokens LIMIT 1),
'temperature', 0.1
);
SELECT summarize('This is the text to be summarized.')
This is the summarization.
> SELECT ai_generate_text('Hello',
'openai/gpt-3.5-turbo',
'apiKey', 'sg-xxxxxxxxxxxxxxxxxxxxxx',
'temperature', 0.1);
Error: DATATYPE_MISMATCH.INVALID_SECRET
The parameter value of the "apiKey" argument to the ai_generate_text function can not be a constant 'sg-xxxxxxxxxxxxxxxxxxxxxx'. Recommended usages include `secret(scope, key)` function or a `SELECT ...` subquery.