Quellcode durchsuchen

fix: replies were cut off #152

zhayujie vor 3 Jahren
Ursprung
Commit
24f00a28bd
2 geänderte Dateien mit 7 neuen und 7 gelöschten Zeilen
  1. 2 2
      README.md
  2. 5 5
      bot/openai/open_ai_bot.py

+ 2 - 2
README.md

@@ -91,7 +91,7 @@ cp config-template.json config.json
   "group_name_white_list": ["ChatGPT测试群", "ChatGPT测试群2"], # 开启自动回复的群名称列表
   "image_create_prefix": ["画", "看", "找"],                   # 开启图片回复的前缀
   "conversation_max_tokens": 1000,                            # 支持上下文记忆的最多字符数
-  "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你乐于回答人们的各种问题。"  # 人格描述
+  "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。"  # 人格描述
 }
 ```
 **配置说明:**
@@ -143,6 +143,6 @@ FAQs: <https://github.com/zhayujie/chatgpt-on-wechat/wiki/FAQs>
 
 ## 联系
 
-欢迎提交PR、Issues,以及Star支持一下。程序运行遇到问题优先查看 [常见问题列表](https://github.com/zhayujie/chatgpt-on-wechat/wiki/FAQs) ,其次前往 [Issues](https://github.com/zhayujie/chatgpt-on-wechat/issues) 中搜索,没有相似问题则创建Issue,一段时间内无回复可加微信 eijuyahz 交流。
+欢迎提交PR、Issues,以及Star支持一下。程序运行遇到问题优先查看 [常见问题列表](https://github.com/zhayujie/chatgpt-on-wechat/wiki/FAQs) ,其次前往 [Issues](https://github.com/zhayujie/chatgpt-on-wechat/issues) 中搜索,若无相似问题可创建Issue,或加微信 eijuyahz 交流。
 
  

+ 5 - 5
bot/openai/open_ai_bot.py

@@ -13,8 +13,8 @@ class OpenAIBot(Bot):
     def __init__(self):
         openai.api_key = conf().get('open_ai_api_key')
 
-    def reply(self, query, context=None):
 
+    def reply(self, query, context=None):
         # acquire reply content
         if not context or not context.get('type') or context.get('type') == 'TEXT':
             logger.info("[OPEN_AI] query={}".format(query))
@@ -45,9 +45,9 @@ class OpenAIBot(Bot):
                 top_p=1,
                 frequency_penalty=0.0,  # [-2,2]之间,该值越大则更倾向于产生不同的内容
                 presence_penalty=0.0,  # [-2,2]之间,该值越大则更倾向于产生不同的内容
-                stop=["#"]
+                stop=["\n\n\n"]
             )
-            res_content = response.choices[0]["text"].strip().rstrip("<|im_end|>")
+            res_content = response.choices[0]['text'].strip().replace('<|endoftext|>', '')
             logger.info("[OPEN_AI] reply={}".format(res_content))
             return res_content
         except openai.error.RateLimitError as e:
@@ -104,11 +104,11 @@ class Session(object):
         '''
         prompt = conf().get("character_desc", "")
         if prompt:
-            prompt += "\n\n"
+            prompt += "<|endoftext|>\n\n\n"
         session = user_session.get(user_id, None)
         if session:
             for conversation in session:
-                prompt += "Q: " + conversation["question"] + "\n\n\nA: " + conversation["answer"] + "<|im_end|>\n"
+                prompt += "Q: " + conversation["question"] + "\n\n\nA: " + conversation["answer"] + "<|endoftext|>\n"
             prompt += "Q: " + query + "\nA: "
             return prompt
         else: