Skip to content

Gradio + DBRX

TODO: link to github

import gradio as gr
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ChatMessage, ChatMessageRole

w = WorkspaceClient()

def respond(message, history):

    if len(message.strip()) == 0:
        return "ERROR the question should not be empty"

    try:
        response = w.serving_endpoints.query(
            name="databricks-dbrx-instruct", 
            messages=[ChatMessage(content=message, role=ChatMessageRole.USER)]
        )
    except Exception as error:
        response = f"ERROR status_code: {type(error).__name__}"


    return response.choices[0].message.content


demo = gr.ChatInterface(
    respond,
    chatbot=gr.Chatbot(show_label=False, container=False, show_copy_button=True, bubble_full_width=True),
    textbox=gr.Textbox(placeholder="Ask me a question",
                       container=False, scale=7),
    title="Databricks App demo - Chat with DBRX Databricks model serving endpoint",
    examples=[["What is DBRX?"],
              ["How can I start a Databricks cluster?"],
              ["What is a Databricks Cluster Policy?"],
              ["How can I track billing usage on my workspaces?"],],
    cache_examples=False,
    # theme=gr.themes.Monochrome(),
    retry_btn=None,
    undo_btn=None,
    clear_btn="Clear",
)
demo.launch()