llmage/llmage/messages.py
2025-08-25 11:16:49 +08:00

70 lines
1.6 KiB
Python

from appPublic.myTE import MyTemplateEngine
def default_sysmessage():
return """{
"role":"system",
"content":"{{content}}"
}"""
def default_usrmessage():
return """{
"role":"user",
"content":"{{prompt}}"
}"""
def default_llmmessage():
return """{
"role":"assisant",
"content":"{{content}}"
}"""
class BaseMessages:
def __init__(self, request, llmid, sys_message, usr_message, llm_message):
self.request = request
self.llmid = llmid
self.sys_message = sys_message
self.usr_message = usr_message
self.llm_message = llm_message
self.te = MyTemplateEngine([])
async def append_meessages(self, msg_format, **kw):
m = self.te.renders(msg_format, kw)
msgs = await self.get_messages()
msgs.append(m)
await self.set_message(msgs)
return msgs
async def append_usr_messages(self, **kw):
return await self.append_messages(self.usr_message, **kw)
async def append_sys_messages(self, **kw):
return await self.append_messages(self.sys_message, **kw)
async def append_llm_messages(self, **kw):
return await self.append_messages(self.llm_message, **kw)
async def get_messages(self):
return []
async def set_messages(self, msgs):
pass
class SessionMessages(BaseMessages):
async def get_messages(self):
env = self.request._run_ns
s = await env.get_session()
userid = await env.get_user()
mk = f'{self.llmid}_{userid}_msgs'
msgs = s[mk]
if not msgs:
msgs = []
return msgs
async def set_messages(self, msgs):
env = self.request._run_ns
s = await env.get_session()
userid = await env.get_user()
mk = f'{self.llmid}_{userid}_msgs'
s[mk] = msgs