Consultar um modelo de chat completion

Databricks com o SDK em Python

Avi Steinberg

Senior Software Engineer

Consultar endpoint de 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 com o SDK em Python

ChatMessage

Parâmetros da classe ChatMessage():

ChatMessage:
  content: str
  role: ChatMessageRole

Exemplo de ChatMessage:

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

ChatMessageRole

Envie um ChatMessage com o papel SYSTEM:

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

Envie um ChatMessage com o papel USER:

ChatMessage(
  role=ChatMessageRole.USER, 
  content="How do you use for loops in Python?"
)
Databricks com o SDK em Python

Consultar um LLM de chat completion

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

messages=[ ChatMessage( # Mensagem com papel "SYSTEM" para influenciar como o agente responde às próximas consultas role=ChatMessageRole.SYSTEM, content=f"You are a helpful assistant. " ),
ChatMessage( # Mensagem com papel "USER" para fazer uma pergunta ao modelo role=ChatMessageRole.USER, content="Can you explain what a fibonacci sequence is?" ), ], max_tokens=128, # Limita o número de palavras que o modelo pode usar na resposta )
# Analisar a resposta do modelo e imprimir o conteúdo print(f"RESPONSE:\n{response.choices[0].message.content}")
1 https://docs.databricks.com/aws/en/machine-learning/model-serving/score-foundation-models
Databricks com o SDK em Python

Estrutura da resposta da consulta

Analisar a resposta do endpoint de serving:

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

print(
 f"RESPONSE:\n{response.choices[0].message.content}"
)
RESPONSE:
A sequência de Fibonacci é uma série de 
números em que cada número é a soma 
dos dois anteriores, começando em 
0 e 1. Começa assim:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 
55, 89, 144...
Para gerar o próximo número, basta 
somar os dois anteriores. Por exemplo:
* 0 + 1 = 1
* 1 + 1 = 2
* 1 + 2 = 3
Databricks com o SDK em Python

Exemplo: resumir texto

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

messages=[ ChatMessage( # Peça ao agente para resumir o texto armazenado na variável some_long_text role=ChatMessageRole.USER, content=f"Summarize the text stored in {some_long_text}" ), ],
max_tokens=100, # Define o máximo de palavras na resposta como 100 )
# Imprimir a resposta analisada do modelo de IA print(f"RESPONSE:\n{response.choices[0].message.content}")
Databricks com o SDK em Python

Exemplo: gerar conteúdo

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:
"Sob o céu de magnólias, onde o
rio Mississippi passa,
estou aqui pensando em você, com o
blues do Delta na alma esta noite.
Os ciprestes balançam devagar,
e os grilos cantam nossa canção.
Mas sem você, amor, esta velha
noite do Mississippi não parece lar."
Databricks com o SDK em Python

Vamos praticar!

Databricks com o SDK em Python

Preparing Video For Download...