Databricks avec le SDK Python
Avi Steinberg
Senior Software Engineer
from databricks.sdk import WorkspaceClient from databricks.sdk.service.serving import ChatMessage, ChatMessageRole w = WorkspaceClient() response = w.serving_endpoints.query(name="databricks-meta-llama-3-3-70b-instruct",messages=[ ChatMessage( role=ChatMessageRole.SYSTEM, content="You are a helpful assistant." ), ChatMessage(role=ChatMessageRole.USER, content="<your-question>"), ],max_tokens=128) print(f"RESPONSE:\n{response.choices[0].message.content}")
Paramètres de la classe ChatMessage() :
ChatMessage:
content: str
role: ChatMessageRole
Exemple de message :
ChatMessage(
role=ChatMessageRole.USER,
content="Can you summarize what happened in world war 1?"
)
Envoyer un ChatMessage avec le rôle SYSTEM :
ChatMessage(
role=ChatMessageRole.SYSTEM,
content="You are a helpful assistant."
)
Envoyer un ChatMessage avec le rôle USER :
ChatMessage(
role=ChatMessageRole.USER,
content="How do you use for loops in Python?"
)
w = WorkspaceClient() response = w.serving_endpoints.query( # Interroger le modèle IA Meta Llama 3 name="databricks-meta-llama-3-3-70b-instruct",messages=[ ChatMessage( # Message avec le rôle "SYSTEM" pour influencer les réponses futures de l'agent role=ChatMessageRole.SYSTEM, content=f"You are a helpful assistant. " ),ChatMessage( # Message avec le rôle "USER" pour poser une question au modèle IA role=ChatMessageRole.USER, content="Can you explain what a fibonacci sequence is?" ), ], max_tokens=128, # Limiter le nombre de mots que le modèle peut utiliser dans la réponse )# Analyser la réponse du modèle IA et afficher le contenu print(f"RESPONSE:\n{response.choices[0].message.content}")
Analyser la réponse de l'endpoint de service :
from databricks.sdk import WorkspaceClient
response = w.serving_endpoints.query(
name="model-name",
messages=[...])
print(
f"RESPONSE:\n{response.choices[0].message.content}"
)
RESPONSE:
La suite de Fibonacci est une série de
nombres où chaque terme est la somme
des deux précédents, en partant de 0 et 1.
Elle commence ainsi :
0, 1, 1, 2, 3, 5, 8, 13, 21, 34,
55, 89, 144...
Pour obtenir le terme suivant, on additionne
les deux précédents. Par exemple :
* 0 + 1 = 1
* 1 + 1 = 2
* 1 + 2 = 3
w = WorkspaceClient() # Interroger le modèle IA Meta Llama 3 response = w.serving_endpoints.query( name="databricks-meta-llama-3-3-70b-instruct",messages=[ ChatMessage( # Demander à l'agent IA de résumer le texte stocké dans la variable some_long_text role=ChatMessageRole.USER, content=f"Summarize the text stored in {some_long_text}" ), ],max_tokens=100, # Limiter la réponse à 100 mots )# Afficher la réponse analysée du modèle IA print(f"RESPONSE:\n{response.choices[0].message.content}")
w = WorkspaceClient() response = w.serving_endpoints.query( name="databricks-meta-llama-3-3-70b-instruct",messages=[ ChatMessage(role=ChatMessageRole.SYSTEM, content=f"You are a ghost writer for famous country singers." ),ChatMessage(role=ChatMessageRole.USER, content="Write the lyrics to a country song that takes place in Mississippi")], max_tokens=100) print( f"RESPONSE:\n{response.choices[0].message.content}" )
RESPONSE:
"Sous le ciel des magnolias,
où roule le fleuve Mississippi,
je suis assis à penser à vous,
avec le blues du Delta ce soir.
Les cyprès se balancent lentement,
et les grillons chantent notre chanson.
Mais sans vous, bébé, cette vieille
nuit du Mississippi ne ressemble pas à la maison."
Databricks avec le SDK Python