Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
|
| 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=
|
| 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()
|