Jyothikamalesh commited on
Commit
f4f89be
·
verified ·
1 Parent(s): 7cb0df4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -33
app.py CHANGED
@@ -1,55 +1,67 @@
1
  import gradio as gr
2
  from openai import OpenAI
3
  import os
4
- import nest_asyncio
5
-
6
- nest_asyncio.apply()
7
 
8
  ACCESS_TOKEN = os.getenv("HF_TOKEN")
9
 
10
- # Fixed client initialization without proxies
11
  client = OpenAI(
12
- base_url="https://api-inference.huggingface.co/models/NousResearch/Hermes-3-Llama-3.1-8B/",
13
  api_key=ACCESS_TOKEN,
14
  )
15
 
16
  def respond(
17
  message,
 
18
  system_message,
19
  max_tokens,
20
  temperature,
21
  top_p,
22
  ):
23
- messages = [
24
- {"role": "system", "content": system_message},
25
- {"role": "user", "content": message}
26
- ]
 
 
 
 
 
 
 
27
 
28
- try:
29
- response = client.chat.completions.create(
30
- model="NousResearch/Hermes-3-Llama-3.1-8B",
31
- messages=messages,
32
- max_tokens=max_tokens,
33
- temperature=temperature,
34
- top_p=top_p
35
- )
36
- return response.choices[0].message.content
37
- except Exception as e:
38
- return f"Error: {str(e)}"
 
 
 
39
 
40
- # Gradio interface
41
- iface = gr.Interface(
42
- fn=respond,
43
- inputs=[
44
- gr.Textbox(label="Message", lines=4),
45
- gr.Textbox(label="System Message", value="You are a helpful assistant."),
46
- gr.Slider(minimum=1, maximum=2048, value=512, label="Max Tokens"),
47
- gr.Slider(minimum=0, maximum=1, value=0.7, label="Temperature"),
48
- gr.Slider(minimum=0, maximum=1, value=0.9, label="Top P")
 
 
 
 
 
49
  ],
50
- outputs="text",
51
- title="Hermes-3-Llama Chat"
 
52
  )
53
-
54
  if __name__ == "__main__":
55
- iface.launch()
 
1
  import gradio as gr
2
  from openai import OpenAI
3
  import os
 
 
 
4
 
5
  ACCESS_TOKEN = os.getenv("HF_TOKEN")
6
 
 
7
  client = OpenAI(
8
+ base_url="https://api-inference.huggingface.co/v1/",
9
  api_key=ACCESS_TOKEN,
10
  )
11
 
12
  def respond(
13
  message,
14
+ history: list[tuple[str, str]],
15
  system_message,
16
  max_tokens,
17
  temperature,
18
  top_p,
19
  ):
20
+ messages = [{"role": "system", "content": system_message}]
21
+
22
+ for val in history:
23
+ if val[0]:
24
+ messages.append({"role": "user", "content": val[0]})
25
+ if val[1]:
26
+ messages.append({"role": "assistant", "content": val[1]})
27
+
28
+ messages.append({"role": "user", "content": message})
29
+
30
+ response = ""
31
 
32
+ for message in client.chat.completions.create(
33
+ model="NousResearch/Hermes-3-Llama-3.1-8B",
34
+ max_tokens=max_tokens,
35
+ stream=True,
36
+ temperature=temperature,
37
+ top_p=top_p,
38
+ messages=messages,
39
+ ):
40
+ token = message.choices[0].delta.content
41
+
42
+ response += token
43
+ yield response
44
+
45
+ chatbot = gr.Chatbot(height=600)
46
 
47
+ demo = gr.ChatInterface(
48
+ respond,
49
+ additional_inputs=[
50
+ gr.Textbox(value="", label="System message"),
51
+ gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
52
+ gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
53
+ gr.Slider(
54
+ minimum=0.1,
55
+ maximum=1.0,
56
+ value=0.95,
57
+ step=0.05,
58
+ label="Top-P",
59
+ ),
60
+
61
  ],
62
+ fill_height=True,
63
+ chatbot=chatbot,
64
+ theme="Nymbo/Alyx_Theme",
65
  )
 
66
  if __name__ == "__main__":
67
+ demo.launch()