GaborToth2 commited on
Commit
ea5bb32
·
1 Parent(s): 841fa40
Files changed (1) hide show
  1. app.py +22 -35
app.py CHANGED
@@ -1,18 +1,14 @@
1
  import gradio as gr
2
  import os
3
- import cohere
4
  from huggingface_hub import InferenceClient
 
5
 
6
- # Retrieve API keys from environment variables
7
- HF_API_KEY = os.getenv("HF_API_KEY")
8
- COHERE_API_KEY = os.getenv("COHERE_API_KEY")
9
-
10
- # Initialize clients
11
- hf_model = "meta-llama/Llama-3.2-3B-Instruct" # Change to preferred HF model
12
- hf_client = InferenceClient(model=hf_model, token=HF_API_KEY)
13
-
14
- cohere_client = cohere.Client(COHERE_API_KEY)
15
 
 
 
 
16
 
17
  def respond(
18
  message,
@@ -21,7 +17,7 @@ def respond(
21
  max_tokens,
22
  temperature,
23
  top_p,
24
- use_cohere, # Checkbox input
25
  ):
26
  messages = [{"role": "system", "content": system_message}]
27
 
@@ -32,23 +28,21 @@ def respond(
32
  messages.append({"role": "assistant", "content": val[1]})
33
 
34
  messages.append({"role": "user", "content": message})
 
 
35
 
36
- # 🔹 **Switch API based on checkbox**
37
- if use_cohere:
38
- response = cohere_client.chat(
39
- model="command-r-plus",
40
  message=message,
41
- chat_history=[{"user_name": "User", "text": h[0]} for h in history if h[0]] +
42
- [{"user_name": "Assistant", "text": h[1]} for h in history if h[1]],
43
  temperature=temperature,
44
- max_tokens=max_tokens,
45
- p=top_p,
46
  )
47
- return response.text # Cohere returns full response
48
-
49
- else:
50
- response = ""
51
- for message in hf_client.chat_completion(
52
  messages,
53
  max_tokens=max_tokens,
54
  stream=True,
@@ -57,24 +51,17 @@ def respond(
57
  ):
58
  token = message.choices[0].delta.content
59
  response += token
60
- yield response # Hugging Face supports streaming
61
-
62
 
63
- # 🔥 **Gradio UI with Checkbox**
64
  demo = gr.ChatInterface(
65
  respond,
66
  additional_inputs=[
67
  gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
68
  gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
69
  gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
70
- gr.Slider(
71
- minimum=0.1,
72
- maximum=1.0,
73
- value=0.95,
74
- step=0.05,
75
- label="Top-p (nucleus sampling)",
76
- ),
77
- gr.Checkbox(label="Use Cohere API", value=False), # Checkbox to toggle API
78
  ],
79
  )
80
 
 
1
  import gradio as gr
2
  import os
 
3
  from huggingface_hub import InferenceClient
4
+ import cohere
5
 
6
+ HF_API_KEY = os.getenv("HF_API_KEY")
7
+ COHERE_API_KEY = os.getenv("COHERE_API_KEY") # Get Cohere API key
 
 
 
 
 
 
 
8
 
9
+ models = ["HuggingFaceH4/zephyr-7b-beta", "microsoft/Phi-4-mini-instruct", "meta-llama/Llama-3.2-3B-Instruct"]
10
+ client_hf = InferenceClient(model=models[2], token=HF_API_KEY) # HF Client
11
+ client_cohere = cohere.Client(COHERE_API_KEY) # Cohere Client
12
 
13
  def respond(
14
  message,
 
17
  max_tokens,
18
  temperature,
19
  top_p,
20
+ use_cohere, # Checkbox value
21
  ):
22
  messages = [{"role": "system", "content": system_message}]
23
 
 
28
  messages.append({"role": "assistant", "content": val[1]})
29
 
30
  messages.append({"role": "user", "content": message})
31
+
32
+ response = ""
33
 
34
+ if use_cohere: # If Cohere is selected
35
+ cohere_response = client_cohere.chat(
 
 
36
  message=message,
37
+ model="command-r", # Or "command" depending on your plan
 
38
  temperature=temperature,
39
+ max_tokens=max_tokens
 
40
  )
41
+ response = cohere_response.text
42
+ yield response # Yield full response (Cohere doesn't stream)
43
+
44
+ else: # If HF is selected
45
+ for message in client_hf.chat_completion(
46
  messages,
47
  max_tokens=max_tokens,
48
  stream=True,
 
51
  ):
52
  token = message.choices[0].delta.content
53
  response += token
54
+ yield response
 
55
 
56
+ # Gradio UI
57
  demo = gr.ChatInterface(
58
  respond,
59
  additional_inputs=[
60
  gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
61
  gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
62
  gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
63
+ gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p"),
64
+ gr.Checkbox(label="Use Cohere API"), # Checkbox to switch API
 
 
 
 
 
 
65
  ],
66
  )
67