feat: 分页

This commit is contained in:
Soulter
2022-12-10 12:41:35 +08:00
parent 0117591a20
commit a4d5e30a0f

View File

@@ -34,12 +34,20 @@ class botClient(botpy.Client):
session_dict[session_id] = []
await message.reply(content=f"{message.member.nick} 的历史记录重置成功")
return
if qq_msg == "/his":
p = get_prompts_by_cache_list(session_dict[session_id], divide=True)
await message.reply(content=f"{message.member.nick} 的历史记录如下:\n{p}")
if qq_msg[:4] == "/his":
#分页每页5条
size_per_page = 3
page = 1
if qq_msg[5:]:
page = int(qq_msg[5:])
l = session_dict[session_id]
max_page = len(l)//size_per_page + 1 if len(l)%size_per_page != 0 else len(l)//size_per_page
p = get_prompts_by_cache_list(session_dict[session_id], divide=True, paging=True, size=size_per_page, page=page)
await message.reply(content=f"{message.member.nick} 的历史记录如下:\n{p}\n{page}页 | 共{max_page}")
return
if qq_msg == "/token":
await message.reply(content=f"{message.member.nick} 会话的token数: {get_user_usage_tokens(session_dict[session_id])}")
await message.reply(content=f"{message.member.nick} 会话的token数: {get_user_usage_tokens(session_dict[session_id])}\n系统最大缓存token数: {max_tokens}")
return
if session_id not in session_dict:
@@ -124,8 +132,16 @@ async def get_chatGPT_response(prompts_str):
chatgpt_res = res.strip()
return res, usage
def get_prompts_by_cache_list(cache_prompt_list, divide=False):
def get_prompts_by_cache_list(cache_prompt_list, divide=False, paging=False, size=5, page=1):
prompts = ""
if paging:
page_begin = (page-1)*size
page_end = page*size
if page_begin < 0:
page_begin = 0
if page_end > len(cache_prompt_list):
page_end = len(cache_prompt_list)
cache_prompt_list = cache_prompt_list[page_begin:page_end]
for item in cache_prompt_list:
prompts += str(item['prompt'])
if divide: