Interroger un modèle externe avec ai_query
Important
Cette fonction se trouve en préversion publique. Pour interroger des points de terminaison qui servent des modèles externes, activez AI_Query pour les modèles personnalisés et les modèles externes dans l’interface utilisateur de la préversion Databricks.
Cet article illustre comment configurer et interroger un point de terminaison de modèle externe en tirant parti de la fonction ai_query()
Databricks SQL intégrée. L’exemple utilise une prise en charge des modèles externes dans le Service de modèles Mosaic AI pour interroger gpt-4
fourni par OpenAI et effectuer des tâches de conversation. Si vous souhaitez obtenir plus d’informations sur cette fonction IA, consultez Fonctions IA sur Azure Databricks.
Spécifications
- Consultez les exigences de la Fonction SQL ai_query.
- Une clé API OpenAI.
- Stockez la clé dans un secret Databricks. Dans cet exemple, vous stockez la clé API dans l’étendue
my-external-model
et le secretopenai
.
Créer un point de terminaison de modèle externe
L’opération suivante crée un point de terminaison de service de modèle externe qui sert OpenAI gpt-4
pour une tâche de conversation.
Pour créer un jeton d’accès personnel, voir Authentification pour l’automatisation Databricks.
import requests
import json
personal_access_token = "your-personal-access-token"
headers = {
"Authorization": "Bearer " + personal_access_token,
}
host = "https://oregon.cloud.databricks.com/"
url = host + "api/2.0/serving-endpoints"
data = {
"name": "my-external-openai-chat",
"config": {
"served_entities": [
{
"name": "my_entity",
"external_model": {
"name": "gpt-4",
"provider": "openai",
"openai_config": {
"openai_api_key": "{{secrets/my-external-model/openai}}",
},
"task": "llm/v1/chat",
},
}
],
},
}
response = requests.post(url, headers=headers, json=data)
print("Status Code", response.status_code)
print("JSON Response ", json.dumps(json.loads(response.text), indent=4))
Interroger le modèle externe avec ai_query()
Dans l’éditeur de requête Databricks SQL, vous pouvez écrire des requêtes SQL pour interroger le point de terminaison de service de modèle externe.
Exemples de requêtes :
SELECT ai_query(
"my-external-openai-chat",
"What is a large language model?"
)
SELECT question, ai_query(
"my-external-openai-chat",
"You are a customer service agent. Answer the customer's question in 100 words: " || question
) AS answer
FROM
uc_catalog.schema.customer_questions
SELECT
sku_id,
product_name,
ai_query(
"my-external-openai-chat",
"You are a marketing expert for a winter holiday promotion targeting GenZ. Generate a promotional text in 30 words mentioning a 50% discount for product: " || product_name
)
FROM
uc_catalog.schema.retail_products
WHERE
inventory > 2 * forecasted_sales