File size: 1,676 Bytes
e2123b4
e3519cb
 
 
 
 
e2123b4
 
e3519cb
 
 
e2123b4
 
 
 
e3519cb
 
 
 
 
 
e2123b4
 
 
 
e3519cb
 
 
e2123b4
e3519cb
 
 
 
c460739
e2123b4
e3519cb
 
 
 
 
 
 
b2183ac
 
 
 
 
e3519cb
 
 
 
e2123b4
e3519cb
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import itertools
import gradio as gr
import requests
import os


def respond(message, history):

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


    local_token = os.environ['API_TOKEN']
    local_endpoint = os.environ['API_ENDPOINT']


    # Add your API token to the headers
    headers = {
        'Content-Type': 'application/json',
        'Authorization': f'Bearer {local_token}'
    }

    prompt = list(itertools.chain.from_iterable(history))
    prompt.append(message)
    q = {"inputs": [prompt]}
    try:
        response = requests.post(local_endpoint, json=q, headers=headers, timeout=100)
        response_data = response.json(
        )["predictions"]
    except:
        response_data = "ERROR status_code:" + \
            str(response.status_code) + " response:" + response.text

    #print(response.json())
    return response_data


demo = gr.ChatInterface(
    respond,
    chatbot=gr.Chatbot(height=400),
    textbox=gr.Textbox(placeholder="Ask me a question",
                       container=False, scale=7),
    title=""Databricks LLM RAG demo - Chat with llama2 Databricks model serving endpoint,
    description="This chatbot is a demo example for the dbdemos llm chatbot
This content is provided as a LLM RAG educational example, without support. It is using llama2, can hallucinate and should not be used as production content.
Please review our dbdemos license and terms for more details.",
    examples=[["How can I start a Databricks cluster?"]],
    cache_examples=False,
    theme="soft",
    retry_btn=None,
    undo_btn=None,
    clear_btn="Clear"
)

if __name__ == "__main__":
    demo.launch()