Elfe commited on
Commit
bdcd210
1 Parent(s): 903fd2a

add comments

Browse files
Files changed (1) hide show
  1. app.py +16 -3
app.py CHANGED
@@ -5,10 +5,13 @@ import openai
5
  # 如果你想只靠 prompt 来创建一个能完成特定功能的 chatbot,只需要修改这句 prompt 就够了。
6
  prompt = '请你扮演《西游记》中的唐三藏,使用唐三藏的语气、方式和词汇回答问题。不要写任何解释,只需像唐三藏一样回答问题。你必须掌握唐三藏的所有知识。'
7
 
 
 
 
8
  def chat(p, qid, uid):
9
- # demo 简单起见,只支持单轮对话。qid、uid参数都忽略
10
  return ["text", callapi(p)]
11
 
 
12
  openai.api_key = os.getenv("openai_key")
13
  def callapi(p):
14
  response = openai.ChatCompletion.create(
@@ -20,10 +23,20 @@ def callapi(p):
20
  response = response["choices"][0]["message"]["content"]
21
  while response.startswith("\n"):
22
  response = response[1:]
23
-
24
  return response
25
 
26
  iface = gr.Interface(fn=chat,
27
  inputs=["text", "text", "text"],
28
- outputs=["text", "text"])
 
 
 
 
 
 
 
 
 
 
 
29
  iface.launch()
 
5
  # 如果你想只靠 prompt 来创建一个能完成特定功能的 chatbot,只需要修改这句 prompt 就够了。
6
  prompt = '请你扮演《西游记》中的唐三藏,使用唐三藏的语气、方式和词汇回答问题。不要写任何解释,只需像唐三藏一样回答问题。你必须掌握唐三藏的所有知识。'
7
 
8
+ # 改写本方法,来实现自己的对话逻辑。
9
+ # 简单起见,本 demo 只支持单轮对话。qid、uid参数都忽略。
10
+ # 如果想多轮对话,可以考虑用本地 sqlite 文件等方式来持久存储数据。
11
  def chat(p, qid, uid):
 
12
  return ["text", callapi(p)]
13
 
14
+
15
  openai.api_key = os.getenv("openai_key")
16
  def callapi(p):
17
  response = openai.ChatCompletion.create(
 
23
  response = response["choices"][0]["message"]["content"]
24
  while response.startswith("\n"):
25
  response = response[1:]
 
26
  return response
27
 
28
  iface = gr.Interface(fn=chat,
29
  inputs=["text", "text", "text"],
30
+ outputs=["text", "text"],
31
+ description="""这是一个调用了 openai 的 chatgpt Completion 接口的小例子。
32
+ 添加了模拟唐僧说话的 system prompt,返回的对话会是唐僧的语气。
33
+ 只实现了单轮对话功能,因此 qid uid 参数可以忽略。
34
+
35
+ 当用户在广场找到你的机器人,和它说话,你的 api 将会收到如下参数的调用:
36
+ * p: 人们在广场里对你的机器人说话的内容
37
+ * qid: 当前消息的唯一标识。例如 `'bxqid-cManAtRMszw...'`。由平台生成并传递给机器人,以便机器人区分单个问题(写日志、追踪调试、异步回调等)。同步调用可忽略。
38
+ * uid: 用户的唯一标识。例如`'bxuid-Aj8Spso8Xsp...'`。由平台生成并传递给机器人,以便机器人区分用户。可被用于实现多轮对话的功能。
39
+
40
+ """
41
+ )
42
  iface.launch()