This commit is contained in:
yumoqing 2025-08-22 18:11:16 +08:00
parent 80d9bde804
commit c073da5c5a
3 changed files with 75 additions and 24 deletions

View File

@ -3,6 +3,9 @@ from llmage.llmclient import (
inference,
get_llmcatelogs,
get_llms_by_catelog,
)
from llmage.messages import (
SessionMessages,
default_sysmessage,
default_usrmessage,
default_llmmessage
@ -18,4 +21,5 @@ def load_llmage():
env.default_sysmessage = default_sysmessage
env.default_usrmessage = default_usrmessage
env.default_llmmessage = default_llmmessage
env.SessageMessages = SessionMessages

View File

@ -5,24 +5,6 @@ from appPublic.log import debug, exception
from uapi.appapi import UAPI, sor_get_callerid, sor_get_uapi
from ahserver.serverenv import get_serverenv
def default_sysmessage():
return """{
"role":"system",
"content":"{{content}}"
}"""
def default_usrmessage():
return """{
"role":"user",
"content":"{{content}}"
}"""
def default_llmmessage():
return """{
"role":"assisant",
"content":"{{content}}"
}"""
async def get_llmcatelogs():
db = DBPools()
dbname = get_serverenv('get_module_dbname')('llmage')
@ -78,12 +60,8 @@ async def inference(request, env):
dbname = env.get_module_dbname('llmage')
db = env.DBPools()
async with db.sqlorContext(dbname) as sor:
llms = await sor.R('llm', {'id':llmid})
if len(llms) == 0:
e = Exception(f'{llmid=} not found')
exception(f'{e}\n{format_exc()}')
raise e
llm = llms[0]
llm = await get_llm(llmid)
env.update(llm)
uapi = UAPI(request, env=env, sor=sor)
userid = await env.get_user()
f = partial(uapi.stream_linify, llm.upappid, llm.apiname, userid)

69
llmage/messages.py Normal file
View File

@ -0,0 +1,69 @@
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):
pass
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