feat: 添加continue命令

This commit is contained in:
RockChinQ
2023-07-31 15:17:49 +08:00
parent e26664aa51
commit dc1fd73ebb
3 changed files with 44 additions and 10 deletions
+5
View File
@@ -159,9 +159,14 @@ class ChatCompletionRequest(RequestBase):
logging.info("执行函数调用: name={}, arguments={}".format(func_name, arguments)) logging.info("执行函数调用: name={}, arguments={}".format(func_name, arguments))
# 执行函数调用 # 执行函数调用
ret = ""
try:
ret = execute_function(func_name, arguments) ret = execute_function(func_name, arguments)
logging.info("函数执行完成。") logging.info("函数执行完成。")
except Exception as e:
ret = "error: execute function failed: {}".format(str(e))
logging.error("函数执行失败: {}".format(str(e)))
self.append_message( self.append_message(
role="function", role="function",
+3 -1
View File
@@ -194,7 +194,7 @@ class Session:
# 请求回复 # 请求回复
# 这个函数是阻塞的 # 这个函数是阻塞的
def append(self, text: str) -> str: def append(self, text: str=None) -> str:
"""向session中添加一条消息,返回接口回复""" """向session中添加一条消息,返回接口回复"""
self.last_interact_timestamp = int(time.time()) self.last_interact_timestamp = int(time.time())
@@ -270,6 +270,7 @@ class Session:
# 将此次对话的双方内容加入到prompt中 # 将此次对话的双方内容加入到prompt中
# self.prompt.append({'role': 'user', 'content': text}) # self.prompt.append({'role': 'user', 'content': text})
# self.prompt.append({'role': 'assistant', 'content': res_ans}) # self.prompt.append({'role': 'assistant', 'content': res_ans})
if text:
self.prompt.append({'role': 'user', 'content': text}) self.prompt.append({'role': 'user', 'content': text})
# 添加pending_msgs # 添加pending_msgs
self.prompt += pending_msgs self.prompt += pending_msgs
@@ -331,6 +332,7 @@ class Session:
result_prompt = self.default_prompt + changable_prompts result_prompt = self.default_prompt + changable_prompts
# 添加当前问题 # 添加当前问题
if msg:
result_prompt.append( result_prompt.append(
{ {
'role': 'user', 'role': 'user',
+27
View File
@@ -0,0 +1,27 @@
from ..aamgr import AbstractCommandNode, Context
@AbstractCommandNode.register(
parent=None,
name="continue",
description="继续未完成的响应",
usage="!continue",
aliases=[],
privilege=1
)
class ContinueCommand(AbstractCommandNode):
@classmethod
def process(cls, ctx: Context) -> tuple[bool, list]:
import pkg.openai.session
import config
session_name = ctx.session_name
reply = []
session = pkg.openai.session.get_session(session_name)
text = session.append()
reply = [text]
return True, reply