dprat0821 commited on
Commit
9c63ad9
Β·
verified Β·
1 Parent(s): f7930f4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -31
app.py CHANGED
@@ -1,73 +1,63 @@
1
  import gradio as gr
2
  import os
3
  from openai import OpenAI
4
- from transformers import AutoTokenizer, AutoModelForCausalLM
5
  import torch
 
6
 
7
  # Set your API keys as environment variables or replace os.getenv with your actual keys
8
  DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY")
9
  OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
10
 
11
- # Initialize OpenAI client (for openai>=1.0.0)
12
- client = OpenAI(api_key=OPENAI_API_KEY)
13
-
14
- # Load DeepSeek model
15
- deepseek_model_id = "deepseek-ai/deepseek-llm-7b-chat"
16
- tokenizer = AutoTokenizer.from_pretrained(deepseek_model_id)
17
- deepseek_model = AutoModelForCausalLM.from_pretrained(
18
- deepseek_model_id,
19
- torch_dtype=torch.float16,
20
- device_map="auto"
21
- )
22
 
23
  def generate_response(prompt, model_provider, temperature, top_p, max_tokens, repetition_penalty):
24
  if model_provider == "DeepSeek":
25
- inputs = tokenizer(prompt, return_tensors="pt").to(deepseek_model.device)
26
- outputs = deepseek_model.generate(
27
- **inputs,
28
- do_sample=True,
29
- temperature=temperature,
30
- top_p=top_p,
31
- max_new_tokens=max_tokens,
32
- repetition_penalty=repetition_penalty
33
- )
34
- return tokenizer.decode(outputs[0], skip_special_tokens=True)
35
-
 
 
36
  elif model_provider == "OpenAI":
37
  try:
38
- response = client.chat.completions.create(
39
- model="gpt-3.5-turbo", # or "gpt-4" if you have access
40
  messages=[{"role": "user", "content": prompt}],
41
  temperature=temperature,
42
  top_p=top_p,
43
  max_tokens=max_tokens,
44
- presence_penalty=repetition_penalty
 
45
  )
46
  return response.choices[0].message.content.strip()
47
  except Exception as e:
48
  return f"OpenAI API Error: {str(e)}"
49
-
50
  else:
51
  return "Invalid model provider selected."
52
 
53
  with gr.Blocks() as demo:
54
  gr.Markdown("## πŸ” LLM Chat Interface")
55
-
56
  with gr.Row():
57
  model_provider = gr.Dropdown(
58
  choices=["DeepSeek", "OpenAI"],
59
  value="DeepSeek",
60
  label="Select Model Provider"
61
  )
62
-
63
  prompt = gr.Textbox(label="Enter your prompt", lines=4, placeholder="Type your message here...")
64
-
65
  with gr.Accordion("Advanced Settings", open=False):
66
  temperature = gr.Slider(0.1, 1.5, value=0.7, step=0.1, label="Temperature")
67
  top_p = gr.Slider(0.1, 1.0, value=0.9, step=0.05, label="Top-p")
68
  max_tokens = gr.Slider(32, 2048, value=512, step=32, label="Max New Tokens")
69
  repetition_penalty = gr.Slider(1.0, 2.0, value=1.1, step=0.1, label="Repetition Penalty")
70
-
71
  output = gr.Textbox(label="Response")
72
  submit = gr.Button("Generate")
73
 
 
1
  import gradio as gr
2
  import os
3
  from openai import OpenAI
 
4
  import torch
5
+ from transformers import AutoTokenizer, AutoModelForCausalLM
6
 
7
  # Set your API keys as environment variables or replace os.getenv with your actual keys
8
  DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY")
9
  OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
10
 
11
+ # Initialize OpenAI clients
12
+ openai_client = OpenAI(api_key=OPENAI_API_KEY)
13
+ deepseek_client = OpenAI(api_key=DEEPSEEK_API_KEY, base_url="https://api.deepseek.com")
 
 
 
 
 
 
 
 
14
 
15
  def generate_response(prompt, model_provider, temperature, top_p, max_tokens, repetition_penalty):
16
  if model_provider == "DeepSeek":
17
+ try:
18
+ response = deepseek_client.chat.completions.create(
19
+ model="deepseek-chat", # or "deepseek-reasoner" for R1 model
20
+ messages=[{"role": "user", "content": prompt}],
21
+ temperature=temperature,
22
+ top_p=top_p,
23
+ max_tokens=max_tokens,
24
+ presence_penalty=repetition_penalty,
25
+ stream=False
26
+ )
27
+ return response.choices[0].message.content.strip()
28
+ except Exception as e:
29
+ return f"DeepSeek API Error: {str(e)}"
30
  elif model_provider == "OpenAI":
31
  try:
32
+ response = openai_client.chat.completions.create(
33
+ model="gpt-3.5-turbo", # or another model of your choice
34
  messages=[{"role": "user", "content": prompt}],
35
  temperature=temperature,
36
  top_p=top_p,
37
  max_tokens=max_tokens,
38
+ presence_penalty=repetition_penalty,
39
+ stream=False
40
  )
41
  return response.choices[0].message.content.strip()
42
  except Exception as e:
43
  return f"OpenAI API Error: {str(e)}"
 
44
  else:
45
  return "Invalid model provider selected."
46
 
47
  with gr.Blocks() as demo:
48
  gr.Markdown("## πŸ” LLM Chat Interface")
 
49
  with gr.Row():
50
  model_provider = gr.Dropdown(
51
  choices=["DeepSeek", "OpenAI"],
52
  value="DeepSeek",
53
  label="Select Model Provider"
54
  )
 
55
  prompt = gr.Textbox(label="Enter your prompt", lines=4, placeholder="Type your message here...")
 
56
  with gr.Accordion("Advanced Settings", open=False):
57
  temperature = gr.Slider(0.1, 1.5, value=0.7, step=0.1, label="Temperature")
58
  top_p = gr.Slider(0.1, 1.0, value=0.9, step=0.05, label="Top-p")
59
  max_tokens = gr.Slider(32, 2048, value=512, step=32, label="Max New Tokens")
60
  repetition_penalty = gr.Slider(1.0, 2.0, value=1.1, step=0.1, label="Repetition Penalty")
 
61
  output = gr.Textbox(label="Response")
62
  submit = gr.Button("Generate")
63