gugebing commited on
Commit
e8473ef
1 Parent(s): 71b2fb1

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -0
app.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import os
3
+ import openai
4
+ openai.api_key = os.getenv("OPENAI_API_KEY")
5
+
6
+ def generate_response(character_name, gender, personality, experience, hobby, catchphrase):
7
+ # 构造角色扮演的 Prompt
8
+ prompt = f"请你扮演一名叫{character_name}的{gender}生回答我的所有问题,你的性格是{personality},你有着{experience},喜欢{hobby},你常说的话是{catchphrase}。"
9
+
10
+ # 使用 OpenAI GPT-3 API 生成回复
11
+ response = openai.Completion.create(
12
+ engine="text-davinci-002",
13
+ prompt=prompt,
14
+ max_tokens=1024,
15
+ n=1,
16
+ stop=None,
17
+ temperature=0.5,
18
+ )
19
+
20
+ # 返回回复的文本
21
+ return response.choices[0].text.strip()
22
+
23
+ # 定义输入组件
24
+ input_components = [
25
+ gr.inputs.Textbox(label="角色名字"),
26
+ gr.inputs.Radio(["男性", "女性", "其他"], label="性别"),
27
+ gr.inputs.Dropdown(["开朗", "内向", "活泼", "安静", "冷静", "热情", "严肃", "幽默", "善良", "狡猾", "无情", "自大", "自卑", "无聊", "兴奋", "紧张", "悲伤", "愤怒"], label="性格"),
28
+ gr.inputs.Textbox(label="经历"),
29
+ gr.inputs.Textbox(label="爱好"),
30
+ gr.inputs.Textbox(label="口头禅"),
31
+ ]
32
+
33
+ # 定义输出组件
34
+ output_component = gr.outputs.Textbox()
35
+
36
+ # 创建 Gradio 应用
37
+ app = gr.Interface(
38
+ generate_response,
39
+ inputs=input_components,
40
+ outputs=output_component,
41
+ title="角色扮演聊天机器人",
42
+ description="输入角色的关键信息,然后与聊天机器人进行交互。",
43
+ theme="default",
44
+ layout="vertical",
45
+ allow_screenshot=True,
46
+ )
47
+
48
+ # 运行应用
49
+ if __name__ == "__main__":
50
+ app.launch()