Ein Chat-Completion-Modell abfragen

Databricks mit dem Python-SDK

Avi Steinberg

Senior Software Engineer

Serving Endpoint abfragen

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 mit dem Python-SDK

ChatMessage

Parameter für die Klasse ChatMessage():

ChatMessage:
  content: str
  role: ChatMessageRole

Beispiel-Chatnachricht:

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

ChatMessageRole

Eine ChatMessage mit SYSTEM-Rolle senden:

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

Eine ChatMessage mit USER-Rolle senden:

ChatMessage(
  role=ChatMessageRole.USER, 
  content="How do you use for loops in Python?"
)
Databricks mit dem Python-SDK

Chat-Completion-LLM abfragen

w = WorkspaceClient()
response = w.serving_endpoints.query( # Meta Llama 3 KI-Modell abfragen
  name="databricks-meta-llama-3-3-70b-instruct",

messages=[ ChatMessage( # Nachricht mit "SYSTEM"-Rolle, um das Antwortverhalten zu steuern role=ChatMessageRole.SYSTEM, content=f"You are a helpful assistant. " ),
ChatMessage( # Nachricht mit "USER"-Rolle, um dem Modell eine Frage zu stellen role=ChatMessageRole.USER, content="Can you explain what a fibonacci sequence is?" ), ], max_tokens=128, # Begrenze die Wortanzahl in der Antwort )
# Antwort des KI-Modells parsen und Inhalt ausgeben print(f"RESPONSE:\n{response.choices[0].message.content}")
1 https://docs.databricks.com/aws/en/machine-learning/model-serving/score-foundation-models
Databricks mit dem Python-SDK

Struktur der Antwortabgabe

Antwort der Serving-Endpoint-Abfrage parsen:

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

print(
 f"RESPONSE:\n{response.choices[0].message.content}"
)
RESPONSE:
Die Fibonacci-Folge ist eine Reihe von
Zahlen, bei der jede Zahl die Summe
der beiden vorherigen ist, beginnend
mit 0 und 1. So startet die Folge:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34,
55, 89, 144...
Die nächste Zahl ergibt sich durch
Addition der beiden vorherigen. Zum Beispiel:
* 0 + 1 = 1
* 1 + 1 = 2
* 1 + 2 = 3
Databricks mit dem Python-SDK

Beispiel: Text zusammenfassen

w = WorkspaceClient()
# Meta Llama 3 KI-Modell abfragen
response = w.serving_endpoints.query(
  name="databricks-meta-llama-3-3-70b-instruct",

messages=[ ChatMessage( # Bitte die KI, den Text in some_long_text zu zusammenzufassen role=ChatMessageRole.USER, content=f"Summarize the text stored in {some_long_text}" ), ],
max_tokens=100, # Max. Wortanzahl der Antwort auf 100 setzen )
# Geparste Antwort des KI-Modells ausgeben print(f"RESPONSE:\n{response.choices[0].message.content}")
Databricks mit dem Python-SDK

Beispiel: Inhalte generieren

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:
"Unter dem Magnolienhimmel, wo der
Mississippi fließt vorbei
Ich sitz hier und denk an dich, mit dem
Delta Blues heut Nacht in mir
Die Zypressen wiegen sacht,
und Grillen singen unser Lied
Doch ohne dich, Baby, fühlt sich
diese Mississippi-Nacht nicht wie Zuhause an"
Databricks mit dem Python-SDK

Lass uns üben!

Databricks mit dem Python-SDK

Preparing Video For Download...