YangWu001 commited on
Commit
dbcbeb2
β€’
1 Parent(s): 850df56
Files changed (4) hide show
  1. app.py +2 -2
  2. app_interface.py +0 -141
  3. app_original.py +0 -63
  4. app_update_title.py +0 -104
app.py CHANGED
@@ -27,7 +27,7 @@ def respond(
27
  history = []
28
 
29
  if use_local_model:
30
- # Simulate local inference (ignoring history)
31
  messages = [{"role": "system", "content": system_message}]
32
  for val in history:
33
  if val[0]:
@@ -53,7 +53,7 @@ def respond(
53
  yield history + [(message, response)] # Yield history + new response
54
 
55
  else:
56
- # API-based inference (ignoring history)
57
  messages = [{"role": "system", "content": system_message}]
58
  for val in history:
59
  if val[0]:
 
27
  history = []
28
 
29
  if use_local_model:
30
+ # local inference
31
  messages = [{"role": "system", "content": system_message}]
32
  for val in history:
33
  if val[0]:
 
53
  yield history + [(message, response)] # Yield history + new response
54
 
55
  else:
56
+ # API-based inference
57
  messages = [{"role": "system", "content": system_message}]
58
  for val in history:
59
  if val[0]:
app_interface.py DELETED
@@ -1,141 +0,0 @@
1
- import gradio as gr
2
- from huggingface_hub import InferenceClient
3
- import time
4
-
5
- # Inference client setup
6
- client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
7
-
8
- # Global flag to handle cancellation
9
- stop_inference = False
10
-
11
- def respond(
12
- message,
13
- history: list[tuple[str, str]],
14
- system_message,
15
- max_tokens,
16
- temperature,
17
- top_p,
18
- use_local_model,
19
- ):
20
- global stop_inference
21
- stop_inference = False # Reset cancellation flag
22
-
23
- if use_local_model:
24
- # Simulate local inference
25
- time.sleep(2) # simulate a delay
26
- response = "This is a response from the local model."
27
- history.append((message, response))
28
- yield history
29
- else:
30
- # API-based inference
31
- messages = [{"role": "system", "content": system_message}]
32
- for val in history:
33
- if val[0]:
34
- messages.append({"role": "user", "content": val[0]})
35
- if val[1]:
36
- messages.append({"role": "assistant", "content": val[1]})
37
- messages.append({"role": "user", "content": message})
38
-
39
- response = ""
40
- for message in client.chat_completion(
41
- messages,
42
- max_tokens=max_tokens,
43
- stream=True,
44
- temperature=temperature,
45
- top_p=top_p,
46
- ):
47
- if stop_inference:
48
- history.append((message, "Inference cancelled."))
49
- yield history
50
- break
51
- token = message.choices[0].delta.content
52
- response += token
53
- history.append((message, response))
54
- yield history
55
-
56
- def cancel_inference():
57
- global stop_inference
58
- stop_inference = True
59
-
60
- # Custom CSS for a fancy look
61
- custom_css = """
62
- #main-container {
63
- background-color: #f0f0f0;
64
- font-family: 'Arial', sans-serif;
65
- }
66
-
67
- .gradio-container {
68
- max-width: 700px;
69
- margin: 0 auto;
70
- padding: 20px;
71
- background: white;
72
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
73
- border-radius: 10px;
74
- }
75
-
76
- .gr-button {
77
- background-color: #4CAF50;
78
- color: white;
79
- border: none;
80
- border-radius: 5px;
81
- padding: 10px 20px;
82
- cursor: pointer;
83
- transition: background-color 0.3s ease;
84
- }
85
-
86
- .gr-button:hover {
87
- background-color: #45a049;
88
- }
89
-
90
- .gr-slider input {
91
- color: #4CAF50;
92
- }
93
-
94
- .gr-chat {
95
- font-size: 16px;
96
- }
97
-
98
- #title {
99
- text-align: center;
100
- font-size: 2em;
101
- margin-bottom: 20px;
102
- color: #333;
103
- }
104
- """
105
-
106
- # Define the interface
107
- with gr.Blocks(css=custom_css) as demo:
108
- gr.Markdown("<h1 style='text-align: center;'>🌟 Fancy AI Chatbot 🌟</h1>")
109
- gr.Markdown("Interact with the AI chatbot using customizable settings below.")
110
-
111
- with gr.Row():
112
- system_message = gr.Textbox(value="You are a friendly Chatbot.", label="System message", interactive=True)
113
- use_local_model = gr.Checkbox(label="Use Local Model", value=False)
114
-
115
- with gr.Row():
116
- max_tokens = gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens")
117
- temperature = gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature")
118
- top_p = gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (nucleus sampling)")
119
-
120
- chat_history = gr.Chatbot(label="Chat")
121
-
122
- user_input = gr.Textbox(show_label=False, placeholder="Type your message here...")
123
-
124
- cancel_button = gr.Button("Cancel Inference", variant="danger")
125
-
126
- def chat_fn(message, history):
127
- return respond(
128
- message,
129
- history,
130
- system_message.value,
131
- max_tokens.value,
132
- temperature.value,
133
- top_p.value,
134
- use_local_model.value,
135
- )
136
-
137
- user_input.submit(chat_fn, [user_input, chat_history], chat_history)
138
- cancel_button.click(cancel_inference)
139
-
140
- if __name__ == "__main__":
141
- demo.launch(share=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app_original.py DELETED
@@ -1,63 +0,0 @@
1
- import gradio as gr
2
- from huggingface_hub import InferenceClient
3
-
4
- """
5
- For more information on `huggingface_hub` Inference API support, please check the docs: https://huggingface.co/docs/huggingface_hub/v0.22.2/en/guides/inference
6
- """
7
- client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
8
-
9
-
10
- def respond(
11
- message,
12
- history: list[tuple[str, str]],
13
- system_message,
14
- max_tokens,
15
- temperature,
16
- top_p,
17
- ):
18
- messages = [{"role": "system", "content": system_message}]
19
-
20
- for val in history:
21
- if val[0]:
22
- messages.append({"role": "user", "content": val[0]})
23
- if val[1]:
24
- messages.append({"role": "assistant", "content": val[1]})
25
-
26
- messages.append({"role": "user", "content": message})
27
-
28
- response = ""
29
-
30
- for message in client.chat_completion(
31
- messages,
32
- max_tokens=max_tokens,
33
- stream=True,
34
- temperature=temperature,
35
- top_p=top_p,
36
- ):
37
- token = message.choices[0].delta.content
38
-
39
- response += token
40
- yield response
41
-
42
- """
43
- For information on how to customize the ChatInterface, peruse the gradio docs: https://www.gradio.app/docs/chatinterface
44
- """
45
- demo = gr.ChatInterface(
46
- respond,
47
- additional_inputs=[
48
- gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
49
- gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
50
- gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
51
- gr.Slider(
52
- minimum=0.1,
53
- maximum=1.0,
54
- value=0.95,
55
- step=0.05,
56
- label="Top-p (nucleus sampling)",
57
- ),
58
- ],
59
- )
60
-
61
-
62
- if __name__ == "__main__":
63
- demo.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app_update_title.py DELETED
@@ -1,104 +0,0 @@
1
- import gradio as gr
2
- from huggingface_hub import InferenceClient
3
-
4
- # Inference client setup
5
- client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
6
-
7
- def respond(
8
- message,
9
- history: list[tuple[str, str]],
10
- system_message,
11
- max_tokens,
12
- temperature,
13
- top_p,
14
- ):
15
- messages = [{"role": "system", "content": system_message}]
16
-
17
- for val in history:
18
- if val[0]:
19
- messages.append({"role": "user", "content": val[0]})
20
- if val[1]:
21
- messages.append({"role": "assistant", "content": val[1]})
22
-
23
- messages.append({"role": "user", "content": message})
24
-
25
- response = ""
26
- for message in client.chat_completion(
27
- messages,
28
- max_tokens=max_tokens,
29
- stream=True,
30
- temperature=temperature,
31
- top_p=top_p,
32
- ):
33
- token = message.choices[0].delta.content
34
- response += token
35
- yield response
36
-
37
- # Custom CSS for a fancy look
38
- custom_css = """
39
- #main-container {
40
- background-color: #f0f0f0;
41
- font-family: 'Arial', sans-serif;
42
- }
43
-
44
- .gradio-container {
45
- max-width: 700px;
46
- margin: 0 auto;
47
- padding: 20px;
48
- background: white;
49
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
50
- border-radius: 10px;
51
- }
52
-
53
- .gr-button {
54
- background-color: #4CAF50;
55
- color: white;
56
- border: none;
57
- border-radius: 5px;
58
- padding: 10px 20px;
59
- cursor: pointer;
60
- transition: background-color 0.3s ease;
61
- }
62
-
63
- .gr-button:hover {
64
- background-color: #45a049;
65
- }
66
-
67
- .gr-slider input {
68
- color: #4CAF50;
69
- }
70
-
71
- .gr-chat {
72
- font-size: 16px;
73
- }
74
-
75
- #title {
76
- text-align: center;
77
- font-size: 2em;
78
- margin-bottom: 20px;
79
- color: #333;
80
- }
81
- """
82
-
83
- # Define the interface
84
- demo = gr.ChatInterface(
85
- respond,
86
- additional_inputs=[
87
- gr.Textbox(value="You are a friendly Chatbot.", label="System message", interactive=True),
88
- gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
89
- gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
90
- gr.Slider(
91
- minimum=0.1,
92
- maximum=1.0,
93
- value=0.95,
94
- step=0.05,
95
- label="Top-p (nucleus sampling)",
96
- ),
97
- ],
98
- css=custom_css,
99
- title="🌟 Fancy AI Chatbot 🌟",
100
- description="Interact with the AI chatbot using customizable settings below."
101
- )
102
-
103
- if __name__ == "__main__":
104
- demo.launch()