dsaigc commited on
Commit
9c8030c
·
1 Parent(s): 6288dd2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +4 -48
app.py CHANGED
@@ -13,50 +13,13 @@ from reportlab.lib.enums import TA_CENTER
13
 
14
  openai.api_key = os.environ['chat_key']
15
 
16
- class SessionManager:
17
- def __init__(self):
18
- self.sessions = {}
19
 
20
- def add_message(self, session_id, message):
21
- if session_id not in self.sessions:
22
- self.sessions[session_id] = []
23
- self.sessions[session_id].append(message)
24
-
25
- def get_messages(self, session_id):
26
- return self.sessions.get(session_id, [])
27
-
28
- # 自定义一个函数,用于将对话消息整理为简短概要
29
- def summarize_message(message):
30
- # 在这个示例中,我们简单地返回原始消息。
31
- # 你可以根据需要替换为更复杂的逻辑,以提取关键信息并生成简短概要。
32
- return message
33
-
34
- session_manager = SessionManager()
35
- def chat_gpt(session_id, user_message, model="gpt-3.5-turbo", max_tokens=4096):
36
- # 将用户消息添加到对应的会话中
37
- summarized_message = summarize_message(f"User: {user_message}")
38
- session_manager.add_message(session_id, summarized_message)
39
-
40
- # 获取当前会话的消息列表
41
- message_list = session_manager.get_messages(session_id)
42
-
43
- # 组合聊天历史
44
- conversation = "\n\n".join(message_list)
45
-
46
- # 检查对话历史是否超过模型的token限制
47
- tokens_length = len(conversation.split())
48
-
49
- if tokens_length > max_tokens:
50
- # 移除早期消息,直到满足token限制
51
- while tokens_length > max_tokens:
52
- message_list.pop(0)
53
- conversation = "\n\n".join(message_list)
54
- tokens_length = len(conversation.split())
55
 
56
  # 生成聊天回复
57
  response = openai.ChatCompletion.create(
58
  model= model,
59
- messages=[{"role": "system", "content": "我输入中文,你只需要将我的输入翻译成英文,不需要额外解释。"}] +
60
  [{"role": "user", "content": user_message}],
61
  # system 中 定义回答问题的具体类型等
62
  temperature=0.5,
@@ -71,16 +34,9 @@ def chat_gpt(session_id, user_message, model="gpt-3.5-turbo", max_tokens=4096):
71
  # 将助手回复添加到对应的会话中
72
  return assistant_response
73
 
74
- #示例
75
- session_id = "session_1"
76
-
77
-
78
- def gradio_chat_gpt(input_text):
79
- session_id = "gradio_session"
80
- return chat_gpt(session_id, input_text)
81
 
82
- input_text = gr.inputs.Textbox(lines=5, placeholder="请输入你的问题...")
83
  output_text = gr.outputs.Textbox()
84
- iface = gr.Interface(fn=gradio_chat_gpt, inputs=input_text, outputs=output_text, title="ChatGPT", description="与GPT模型聊天")
85
 
86
  iface.launch()
 
13
 
14
  openai.api_key = os.environ['chat_key']
15
 
 
 
 
16
 
17
+ def chat_gpt(user_message, model="gpt-3.5-turbo", max_tokens=4096):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
 
19
  # 生成聊天回复
20
  response = openai.ChatCompletion.create(
21
  model= model,
22
+ messages=[{"role": "system", "content": "translate my input into prompts using for stable diffusion in English"}] +
23
  [{"role": "user", "content": user_message}],
24
  # system 中 定义回答问题的具体类型等
25
  temperature=0.5,
 
34
  # 将助手回复添加到对应的会话中
35
  return assistant_response
36
 
 
 
 
 
 
 
 
37
 
38
+ input_text = gr.inputs.Textbox(lines=5, placeholder="请输入你的中文提示语")
39
  output_text = gr.outputs.Textbox()
40
+ iface = gr.Interface(fn=chat_gpt, inputs=input_text, outputs=output_text, title="提示词", description="sd提示词中文转英文")
41
 
42
  iface.launch()