基于百川大模型生成报告并控制字体与格式的步骤如下:
reportDataset
,其参数包括数据库 db
、数据集 record
、语音数据库 voiceDb
、联系人数据库 microMsgDb
、群或联系人昵称 nickName
,以及文件名 filename
(可选)。
False
。report.md
采用 Markdown 形式输出报告。if name == '__main__':放置解密后的数据库MSG_DB = 'db/MSG{}.db' MICROMSG_DB = 'db/MicroMsg.db' MEDIAMSG_DB = 'db/MediaMSG{}.db' n = 8微信聊天记录后缀编号groupname ="用爱点亮AI"群昵称获取聊天记录record = getMsgByTalker(MSG_DB.format(n),getUserName(MICROMSG_DB,groupname),200,150)生成报告reportDataset(MSG_DB.format(n),record,MEDIAMSG_DB,MICROMSG_DB,groupname,"report.md")启动命令需要配置模型的权重路径和数据处理的模板,生成的report.md采用markdown形式输出报告。
输出报告def reportDataset(db,record,voiceDb,microMsgDb,nickName,filename=None):"""record:数据集voiceDb:语音数据库microMsgDb:联系人数据库name:群或联系人昵称"""ifnot record:returnFalse if len(record)< 2:聊天记录太少returnFalse标题output =['#《{}》微信群汇总报告'.format(nickName)]时间_,_,_,_,start = parseRecord(db,record[0],voiceDb,microMsgDb)_,_,_,_,end = parseRecord(db,record[-1],voiceDb,microMsgDb)output.append('##{}~{}'.format(time.strftime("%X %x",time.localtime(start/1000)),time.strftime("%X %x",time.localtime(end/1000))))prompt =[]for row in record:_,_,name,msg,_ = parseRecord(db,row,voiceDb,microMsgDb)prompt.append("{}:{}".format(name,msg))调用大模型quesion =("我将给你提供一段会议纪要,帮我整理成更规范的形式,包括主题、核心信息、核心结论,列出主要的5个要点,提炼后浓缩成到大约800字。
以下是纪要内容:\n\n{}\n".format('\n'.join(prompt)))llm = ChatModel()response = ai(llm,quesion)等待模型回复output.append(response)聊天参与人output.append("##最活跃人员(发言数量)")username = getUserName(microMsgDb,nickName)print("username",username,nickName)output = output + getTopTalker(db,start,end,username)分隔符output.append('------')if filename:with open(filename,"w",encoding="utf-8")as f:"report.md"f.write('\n'.join(output))print(filename,len(output))else:for i in output:print(i)returnTrue首先获取所需的群聊天记录,通过sql来筛选需要的内容,然后用传统统计方法来做结构化数据的分析,再把非结构化的数据扔给大模型处理,传统方法适合数理计算,而大模型更擅长归纳汇总,可以组合起来交叉使用。