kubeagi / arcadia

A diverse, simple, and secure all-in-one LLMOps platform
http://www.kubeagi.com/
Apache License 2.0
85 stars 23 forks source link

feat: conversation knowledgebase #887

Closed Abirdcfly closed 7 months ago

Abirdcfly commented 7 months ago

What type of PR is this?

/kind feature

What this PR does / why we need it

把对话知识库加入chat中,具体效果如下: img_v3_0294_6ce520a1-3417-46bc-8bc7-ac4db85d92fg

当同时在app中配置知识库时,效果可能不佳,根据后台日志,我们将正确的相关文档发送给了LLM,但是LLM可能会面对大量的相关文档答出错误的答案,需要配置更加强力的LLM和细致的调节知识库参数。

Which issue(s) this PR fixes

Fixes #

Special notes for your reviewer

Abirdcfly commented 7 months ago

deleting a conversation with an uploaded file is track in #895, and will updated with next pull request.

nkwangleiGIT commented 7 months ago

当同时在app中配置知识库时,效果可能不佳,根据后台日志,我们将正确的相关文档发送给了LLM,但是LLM可能会面对大量的相关文档答出错误的答案 => 这个原因似乎有点奇怪,是因为知识库是通过 QA 拆分处理,chat 中的是直接 chunk 处理?采用 reranking 是不是会提高一些质量?

Abirdcfly commented 7 months ago

当同时在app中配置知识库时,效果可能不佳,根据后台日志,我们将正确的相关文档发送给了LLM,但是LLM可能会面对大量的相关文档答出错误的答案 => 这个原因似乎有点奇怪,是因为知识库是通过 QA 拆分处理,chat 中的是直接 chunk 处理?采用 reranking 是不是会提高一些质量?

就我测试里的例子来说,会话pdf知识库的分数只是刚刚超过默认值0.3,用rerank肯定可以做一些筛选,效果会很好。现在会话文档知识库缺一个配置阈值的地方,后面加上这个配置以后,调高一些应该也可以起作用。

Abirdcfly commented 7 months ago

The test failed by gemini block the requst blocked: prompt: BlockReasonSafety

I guess the reason is that there is a special character \uf06c in it. Just update pkg/documentloaders/testdata/chunk.csv

2024-03-20T07:11:27.931849958Z stderr F I0320 07:11:27.931700       1 log.go:53] "Entering LLM with messages: text: Human: Use the following pieces of context to answer the question at the end. If you don't know the answer, just say that you don't know, don't try to make up an answer.  \n\n52、孕期女员工在工作时间内进行产前检查必须提供政府计生部门出具的准生证明原件及当地区级或二级以上医院开具的产检证明,则视同出勤,产检假期如下:\uf06c怀孕第1-6个月,每个月可享受1天假期;\uf06c怀孕第7-8个月,每月可享受2天假期;\uf06c怀孕9个月以上,每月可享受4天假期,但其中2天已包括在预产假中。\uf06c产检假提前至少1天在钉钉申请。3、女员工申请产假前须提供准生证明原件,提前至少3天在钉钉申请产假,人力资源部审核确认并存档。在产后90天内将婴儿出生证明原件及其他证明原件交至人力资源部,以便核实具体产假时间及办理相关生育费用报销手续。4、女员工在婴儿1周岁以前,公司给予其每天1小时的哺乳时间,对于生育多胞胎的,每多1个婴儿每天增加1小时哺乳时间。具体时间须提前与直属上级和部门负责人协商,报人力资源部审核确认并存档。5、男员工申请陪产假必须提供婴儿出生证明原件和结婚证原件,自婴儿出生后2个月内休完,逾期视其自动放弃休假,且公司不予任何形式补偿。试用期男员工陪产假需转正后方可申请。\n\n4五.产假及相关衍生假(注:如国家相关政策变动,按照国家最新政策执行,不再另行声明。)1、符合国家计划生育条例规定的女员工依法享受相应产假,在产前15天开始计入产假。配偶生育的给予男员工相应陪产假。类型 享受方 假期天数普通分娩 女员工 98天难产/剖宫产 女员工 另加15天多胞胎(每多育1个)女员工 另加15天生育奖励假 女员工 30天陪产假 男员工 15天怀孕未满4个月流产 女员工 15天怀孕满4个月流产 女员工 42天放置宫内节育器 女员工 自手术之日起2天取出宫内节育器 女员工 自手术之日起1天输精管结扎 男员工 自手术之日起7天单纯输卵管结扎 女员工 自手术之日起21天\n\nq: 员工在病假期间,是否有额外的假期?\na: 无法确定,题目未提及。\n--------\nQuestion: 怀孕9个月以上每月可以享受几天假期?\n\nHelpful Answer:\nRole: human" requestID="19aa253d-1d26-46c0-b03a-7d33b7f1b0fe"
2024-03-20T07:11:29.739137989Z stderr F E0320 07:11:29.738997       1 log.go:127] "Exiting chain with error" err="blocked: prompt: BlockReasonSafety" requestID="19aa253d-1d26-46c0-b03a-7d33b7f1b0fe"
Abirdcfly commented 7 months ago

{"error":"run node chain-node: retrievalqachain run error: blocked: prompt: BlockReasonSafety"} 意思是谷歌禁止了prompt,认为prompt不安全。在gemini界面测试,这个出错的prompt似乎有概率被 gemini 1.0 认为是“仇恨言论”... CleanShot 2024-03-21 at 10 47 05