Consultar un modelo de Chat Completion

Databricks con el SDK de Python

Avi Steinberg

Senior Software Engineer

Consultar endpoint de servicio

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 el SDK de Python

ChatMessage

Parámetros de la clase ChatMessage():

ChatMessage:
  content: str
  role: ChatMessageRole

Ejemplo de ChatMessage:

ChatMessage(
  role=ChatMessageRole.USER, 
  content="Can you summarize what happened in world war 1?"
)
Databricks con el SDK de Python

ChatMessageRole

Envía un ChatMessage con rol SYSTEM:

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

Envía un ChatMessage con rol USER:

ChatMessage(
  role=ChatMessageRole.USER, 
  content="How do you use for loops in Python?"
)
Databricks con el SDK de Python

Consultar un LLM de chat completion

w = WorkspaceClient()
response = w.serving_endpoints.query( # Consulta el modelo Meta Llama 3
  name="databricks-meta-llama-3-3-70b-instruct",

messages=[ ChatMessage( # Mensaje con rol "SYSTEM" para influir en respuestas futuras role=ChatMessageRole.SYSTEM, content=f"You are a helpful assistant. " ),
ChatMessage( # Mensaje con rol "USER" para hacer una pregunta role=ChatMessageRole.USER, content="Can you explain what a fibonacci sequence is?" ), ], max_tokens=128, # Limita las palabras que puede usar el modelo en la respuesta )
# Parsea la respuesta del modelo e imprímela 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 el SDK de Python

Estructura de la respuesta de consulta

Analiza la respuesta del endpoint de servicio:

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 secuencia de Fibonacci es una serie de
números donde cada número es la suma de
los dos anteriores, empezando por 0 y 1.
La secuencia comienza así:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34,
55, 89, 144...
Para obtener el siguiente número,
suma los dos anteriores. Por ejemplo:
* 0 + 1 = 1
* 1 + 1 = 2
* 1 + 2 = 3
Databricks con el SDK de Python

Ejemplo: resumir texto

w = WorkspaceClient()
# Consulta el modelo Meta Llama 3
response = w.serving_endpoints.query(
  name="databricks-meta-llama-3-3-70b-instruct",

messages=[ ChatMessage( # Pide al agente que resuma el texto guardado en la variable some_long_text role=ChatMessageRole.USER, content=f"Summarize the text stored in {some_long_text}" ), ],
max_tokens=100, # Limita la respuesta a 100 palabras )
# Imprime la respuesta parseada del modelo print(f"RESPONSE:\n{response.choices[0].message.content}")
Databricks con el SDK de Python

Ejemplo: generar contenido

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:
"Bajo el cielo de magnolias, donde el
río Misisipi pasa
Estoy sentado, pensando en ti, con el
blues del Delta en el alma esta noche
Los cipreses se mecen lentos,
y los grillos cantan nuestra canción
Pero sin ti, nena, esta vieja noche de
Misisipi no se siente como hogar"
Databricks con el SDK de Python

¡Vamos a practicar!

Databricks con el SDK de Python

Preparing Video For Download...