Interroga un modello di chat completion

Databricks con il Python SDK

Avi Steinberg

Senior Software Engineer

Interroga l'endpoint di serving

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}")
1 https://databricks-sdk-py.readthedocs.io/en/stable/workspace/serving/serving_endpoints.html
Databricks con il Python SDK

ChatMessage

Parametri per la classe ChatMessage():

ChatMessage:
  content: str
  role: ChatMessageRole

Esempio di ChatMessage:

ChatMessage(
  role=ChatMessageRole.USER, 
  content="Puoi riassumere cosa è successo nella prima guerra mondiale?"
)
Databricks con il Python SDK

ChatMessageRole

Invia un ChatMessage con ruolo SYSTEM:

ChatMessage(
  role=ChatMessageRole.SYSTEM,
  content="You are a helpful assistant."
)

Invia un ChatMessage con ruolo USER:

ChatMessage(
  role=ChatMessageRole.USER, 
  content="Come si usano i for loop in Python?"
)
Databricks con il Python SDK

Interroga un LLM di chat completion

w = WorkspaceClient()
response = w.serving_endpoints.query( # Interroga il modello Meta Llama 3
  name="databricks-meta-llama-3-3-70b-instruct",

messages=[ ChatMessage( # Messaggio con ruolo "SYSTEM" per influenzare le risposte future role=ChatMessageRole.SYSTEM, content=f"You are a helpful assistant. " ),
ChatMessage( # Messaggio con ruolo "USER" per fare una domanda al modello role=ChatMessageRole.USER, content="Can you explain what a fibonacci sequence is?" ), ], max_tokens=128, # Limita a 128 il numero di parole nella risposta del modello )
# Fai il parse della risposta del modello e stampa il contenuto print(f"RESPONSE:\n{response.choices[0].message.content}")
1 https://docs.databricks.com/aws/en/machine-learning/model-serving/score-foundation-models
Databricks con il Python SDK

Struttura della risposta alla query

Analizza la risposta dell'endpoint di Serving:

from databricks.sdk import WorkspaceClient
response = w.serving_endpoints.query(
    name="model-name", 
    messages=[...])

print(
"RESPONSE:\n{response.choices[0].message.content}"
)
RESPONSE:
La sequenza di Fibonacci è una serie di 
numeri in cui ciascun numero è la somma 
dei due precedenti, a partire da 0 e 1. 
La sequenza inizia così:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 
55, 89, 144...
Per ottenere il numero successivo, 
somma semplicemente i due precedenti. 
Ad esempio:
* 0 + 1 = 1
* 1 + 1 = 2
* 1 + 2 = 3
Databricks con il Python SDK

Esempio: riassumi un testo

w = WorkspaceClient()
# Interroga il modello Meta Llama 3
response = w.serving_endpoints.query(
  name="databricks-meta-llama-3-3-70b-instruct",

messages=[ ChatMessage( # Chiedi all'agente di riassumere il testo nella variabile some_long_text role=ChatMessageRole.USER, content=f"Summarize the text stored in {some_long_text}" ), ],
max_tokens=100, # Imposta a 100 il numero massimo di parole nella risposta )
# Stampa la risposta parsata dal modello AI print(f"RESPONSE:\n{response.choices[0].message.content}")
Databricks con il Python SDK

Esempio: genera contenuti

w = WorkspaceClient()
response = w.serving_endpoints.query(
  name="databricks-meta-llama-3-3-70b-instruct",

messages=[ ChatMessage(role=ChatMessageRole.SYSTEM, content=f"Sei un ghostwriter per famosi cantanti country." ),
ChatMessage(role=ChatMessageRole.USER, content="Scrivi il testo di una canzone country ambientata in Mississippi")], max_tokens=100) print( "RESPONSE:\n{response.choices[0].message.content}" )
RESPONSE:
"Sotto il cielo di magnolia, dove il
fiume Mississippi scorre via
Sto seduto qui, penso a te, con il
Delta blues nell'anima stanotte
I cipressi ondeggiano piano,
e i grilli cantano la nostra canzone
Ma senza di te, baby, questa vecchia
notte del Mississippi non sa di casa"
Databricks con il Python SDK

Passiamo alla pratica!

Databricks con il Python SDK

Preparing Video For Download...