burman-ai commited on
Commit
7570a52
·
verified ·
1 Parent(s): d831347

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -49
app.py CHANGED
@@ -1,19 +1,15 @@
1
  import gradio as gr
2
- from openai import OpenAI
3
  import os
4
 
5
  ACCESS_TOKEN = os.getenv("HF_TOKEN")
6
- print("Access token loaded.")
7
 
8
- client = OpenAI(
9
- base_url="https://api-inference.huggingface.co/v1/",
10
- api_key=ACCESS_TOKEN,
11
- )
12
- print("OpenAI client initialized.")
13
 
14
  def respond(
15
  message,
16
- history: list[tuple[str, str]],
17
  system_message,
18
  max_tokens,
19
  temperature,
@@ -22,70 +18,66 @@ def respond(
22
  seed,
23
  custom_model
24
  ):
25
- print(f"Received message: {message}")
26
- print(f"History: {history}")
27
- print(f"System message: {system_message}")
28
-
29
  if seed == -1:
30
  seed = None
31
 
32
  messages = [{"role": "system", "content": system_message}]
33
-
34
  for val in history:
35
  if val[0]:
36
  messages.append({"role": "user", "content": val[0]})
37
  if val[1]:
38
  messages.append({"role": "assistant", "content": val[1]})
39
-
40
  messages.append({"role": "user", "content": message})
41
 
42
- model_to_use = custom_model.strip() if custom_model.strip() != "" else "meta-llama/Llama-3.2-3B-Instruct"
43
 
44
- response = ""
 
 
 
 
 
 
 
 
45
 
46
- for message_chunk in client.chat.completions.create(
47
- model=model_to_use,
48
- max_tokens=max_tokens,
49
- stream=True,
50
- temperature=temperature,
51
- top_p=top_p,
52
- frequency_penalty=frequency_penalty,
53
- seed=seed,
54
- messages=messages,
55
- ):
56
- token_text = message_chunk.choices[0].delta.content
57
- response += token_text
58
- yield response
59
 
60
  chatbot = gr.Chatbot(height=600, show_copy_button=True, placeholder="ChatGPT is initializing...", likeable=True, layout="panel")
61
 
62
- system_message_box = gr.Label(value="You can select Max Tokens, Temperature, Top-P, Seed")
63
-
64
- max_tokens_slider = gr.Slider(1024, 2048, value=1024, step=100, label="Max new tokens")
65
  temperature_slider = gr.Slider(0.1, 1.0, value=0.7, step=0.1, label="Temperature")
66
  top_p_slider = gr.Slider(0.1, 1.0, value=0.95, step=0.05, label="Top-P")
67
  frequency_penalty_slider = gr.Slider(-2.0, 2.0, value=0.0, step=0.1, label="Frequency Penalty")
68
  seed_slider = gr.Slider(-1, 65535, value=-1, step=1, label="Seed (-1 for random)")
 
69
 
70
- custom_model_box = gr.Textbox(value="meta-llama/Llama-3.2-3B-Instruct", label="AI Mode is ")
71
 
72
- demo = gr.ChatInterface(
73
- fn=respond,
74
- additional_inputs=[
75
- system_message_box,
76
- max_tokens_slider,
77
- temperature_slider,
78
- top_p_slider,
79
- frequency_penalty_slider,
80
- seed_slider,
81
- custom_model_box,
82
- ],
83
- fill_height=True,
84
- chatbot=chatbot,
85
 
86
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
87
 
88
  if __name__ == "__main__":
89
- print("Launching the ChatGPT-Llama...")
90
  demo.launch()
91
-
 
1
  import gradio as gr
2
+ import requests
3
  import os
4
 
5
  ACCESS_TOKEN = os.getenv("HF_TOKEN")
 
6
 
7
+ API_URL = "https://api-inference.huggingface.co/v1/chat/completions"
8
+ HEADERS = {"Authorization": f"Bearer {ACCESS_TOKEN}"}
 
 
 
9
 
10
  def respond(
11
  message,
12
+ history,
13
  system_message,
14
  max_tokens,
15
  temperature,
 
18
  seed,
19
  custom_model
20
  ):
 
 
 
 
21
  if seed == -1:
22
  seed = None
23
 
24
  messages = [{"role": "system", "content": system_message}]
 
25
  for val in history:
26
  if val[0]:
27
  messages.append({"role": "user", "content": val[0]})
28
  if val[1]:
29
  messages.append({"role": "assistant", "content": val[1]})
 
30
  messages.append({"role": "user", "content": message})
31
 
32
+ model_to_use = custom_model.strip() if custom_model.strip() else "meta-llama/Llama-3.2-3B-Instruct"
33
 
34
+ payload = {
35
+ "model": model_to_use,
36
+ "messages": messages,
37
+ "max_tokens": max_tokens,
38
+ "temperature": temperature,
39
+ "top_p": top_p,
40
+ "frequency_penalty": frequency_penalty,
41
+ "seed": seed,
42
+ }
43
 
44
+ response = requests.post(API_URL, headers=HEADERS, json=payload)
45
+
46
+ if response.status_code == 200:
47
+ return response.json()["choices"][0]["message"]["content"]
48
+ else:
49
+ return "Error: " + response.text
 
 
 
 
 
 
 
50
 
51
  chatbot = gr.Chatbot(height=600, show_copy_button=True, placeholder="ChatGPT is initializing...", likeable=True, layout="panel")
52
 
53
+ system_message_box = gr.Textbox(value="System message here", label="System Message")
54
+ max_tokens_slider = gr.Slider(1024, 2048, value=1024, step=100, label="Max Tokens")
 
55
  temperature_slider = gr.Slider(0.1, 1.0, value=0.7, step=0.1, label="Temperature")
56
  top_p_slider = gr.Slider(0.1, 1.0, value=0.95, step=0.05, label="Top-P")
57
  frequency_penalty_slider = gr.Slider(-2.0, 2.0, value=0.0, step=0.1, label="Frequency Penalty")
58
  seed_slider = gr.Slider(-1, 65535, value=-1, step=1, label="Seed (-1 for random)")
59
+ custom_model_box = gr.Textbox(value="meta-llama/Llama-3.2-3B-Instruct", label="Custom Model")
60
 
61
+ voice_input = gr.Microphone(label="Speak your message")
62
 
63
+ with gr.Blocks() as demo:
64
+ gr.Markdown("# AI Chatbot with Voice Input")
65
+ chatbot.render()
 
 
 
 
 
 
 
 
 
 
66
 
67
+ with gr.Row():
68
+ system_message_box.render()
69
+ max_tokens_slider.render()
70
+ temperature_slider.render()
71
+ top_p_slider.render()
72
+
73
+ with gr.Row():
74
+ frequency_penalty_slider.render()
75
+ seed_slider.render()
76
+ custom_model_box.render()
77
+
78
+ voice_input.render()
79
+
80
+ voice_input.change(respond, inputs=[voice_input, chatbot, system_message_box, max_tokens_slider, temperature_slider, top_p_slider, frequency_penalty_slider, seed_slider, custom_model_box], outputs=chatbot)
81
 
82
  if __name__ == "__main__":
 
83
  demo.launch()