Nullpointer-KK commited on
Commit
442b581
·
verified ·
1 Parent(s): c87bfed

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -38
app.py CHANGED
@@ -2,32 +2,19 @@ import gradio as gr
2
  from openai import OpenAI
3
 
4
 
5
- def respond(
6
- message,
7
- history: list[dict[str, str]],
8
- system_message,
9
- max_tokens,
10
- temperature,
11
- top_p,
12
- openai_api_key,
13
- ):
14
  """
15
- Chat with OpenAI GPT-3.5-turbo-instruct, streaming word by word.
16
  """
17
  if not openai_api_key:
18
- yield "⚠️ Please provide a valid OpenAI API key."
19
- return
20
 
21
  client = OpenAI(api_key=openai_api_key)
22
 
23
- messages = [{"role": "system", "content": system_message}]
24
- messages.extend(history)
25
- messages.append({"role": "user", "content": message})
26
-
27
- response = ""
28
  stream = client.completions.create(
29
  model="gpt-3.5-turbo-instruct",
30
- prompt="\n".join([f"{m['role']}: {m['content']}" for m in messages]),
31
  max_tokens=max_tokens,
32
  temperature=temperature,
33
  top_p=top_p,
@@ -36,31 +23,50 @@ def respond(
36
 
37
  for event in stream:
38
  if hasattr(event, "choices") and event.choices:
39
- chunk = event.choices[0].text or ""
40
- response += chunk
41
- yield response
42
 
43
 
44
- chatbot = gr.ChatInterface(
45
- respond,
46
- type="messages",
47
- additional_inputs=[
48
- gr.Textbox(value="Please enter your text", label="System message"),
49
- gr.Slider(minimum=1, maximum=1024, value=256, step=1, label="Max new tokens"),
50
- gr.Slider(minimum=0.0, maximum=2.0, value=0.7, step=0.1, label="Temperature"),
51
- gr.Slider(minimum=0.1, maximum=1.0, value=1.0, step=0.05, label="Top-p"),
52
- gr.Textbox(
53
- placeholder="sk-... paste your OpenAI API key here",
54
- label="🔑 OpenAI API Key",
55
- type="password",
56
- ),
57
- ],
58
- )
59
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
 
61
- with gr.Blocks() as demo:
62
- chatbot.render()
 
 
 
63
 
64
  if __name__ == "__main__":
65
  demo.launch()
66
 
 
 
2
  from openai import OpenAI
3
 
4
 
5
+ def complete_text(prompt, max_tokens, temperature, top_p, openai_api_key):
 
 
 
 
 
 
 
 
6
  """
7
+ Get a plain text completion from OpenAI gpt-3.5-turbo-instruct.
8
  """
9
  if not openai_api_key:
10
+ return "⚠️ Please enter a valid OpenAI API key."
 
11
 
12
  client = OpenAI(api_key=openai_api_key)
13
 
14
+ response_text = ""
 
 
 
 
15
  stream = client.completions.create(
16
  model="gpt-3.5-turbo-instruct",
17
+ prompt=prompt,
18
  max_tokens=max_tokens,
19
  temperature=temperature,
20
  top_p=top_p,
 
23
 
24
  for event in stream:
25
  if hasattr(event, "choices") and event.choices:
26
+ token = event.choices[0].text or ""
27
+ response_text += token
28
+ yield response_text
29
 
30
 
31
+ with gr.Blocks() as demo:
32
+ gr.Markdown("## ✍️ Text Completion Demo (OpenAI gpt-3.5-turbo-instruct)")
33
+ gr.Markdown("Enter a prompt, adjust decoding parameters, and watch the model complete your text.")
 
 
 
 
 
 
 
 
 
 
 
 
34
 
35
+ with gr.Row():
36
+ with gr.Column(scale=2):
37
+ prompt = gr.Textbox(
38
+ label="Prompt",
39
+ placeholder="Type the beginning of your text...",
40
+ lines=4,
41
+ )
42
+ max_tokens = gr.Slider(
43
+ minimum=1, maximum=1024, value=100, step=1, label="Max tokens"
44
+ )
45
+ temperature = gr.Slider(
46
+ minimum=0.0, maximum=2.0, value=0.7, step=0.1, label="Temperature"
47
+ )
48
+ top_p = gr.Slider(
49
+ minimum=0.1, maximum=1.0, value=1.0, step=0.05, label="Top-p"
50
+ )
51
+ api_key = gr.Textbox(
52
+ placeholder="sk-... Paste your OpenAI API key here",
53
+ label="🔑 OpenAI API Key",
54
+ type="password",
55
+ )
56
+ submit = gr.Button("Generate Completion")
57
+ with gr.Column(scale=3):
58
+ output = gr.Textbox(
59
+ label="Generated Completion",
60
+ lines=15,
61
+ )
62
 
63
+ submit.click(
64
+ fn=complete_text,
65
+ inputs=[prompt, max_tokens, temperature, top_p, api_key],
66
+ outputs=output,
67
+ )
68
 
69
  if __name__ == "__main__":
70
  demo.launch()
71
 
72
+