From 4c230e893cdfb5cda92b6a4ca2cdc09e5ee4e1b2 Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Sun, 13 Jul 2025 09:05:53 +0800 Subject: [PATCH] 'commit' --- dsLightRag/Start.py | 54 +++++++++++++++++++++++++----- dsLightRag/static/ShiJi.html | 62 ++++++++++++++++++++++++++++++++++- dsLightRag/static/logo.jpg | Bin 11331 -> 0 bytes 3 files changed, 107 insertions(+), 9 deletions(-) delete mode 100644 dsLightRag/static/logo.jpg diff --git a/dsLightRag/Start.py b/dsLightRag/Start.py index 9d20cde5..ddda4325 100644 --- a/dsLightRag/Start.py +++ b/dsLightRag/Start.py @@ -53,14 +53,52 @@ async def rag(request: fastapi.Request): mode = data.get("mode", "hybrid") # 默认为hybrid模式 # 查询的问题 query = data.get("query") - # 关闭参考资料 - #user_prompt = "\n 1、不要输出参考资料 或者 References !" - user_prompt = "\n 2、资料中提供化学反应方程式的,一定要严格按提供的Latex公式输出,绝对不允许对Latex公式进行修改 !" - user_prompt = user_prompt + "\n 3、如果资料中提供了图片的,一定要严格按照原文提供图片输出,不允许省略或不输出!" - #user_prompt = user_prompt + "\n 4、资料中提到的知识内容,需要判断是否与本次问题相关,不相关的绝对不要输出!" - user_prompt = user_prompt + "\n 4、根据资料回答问题,可以适当拓展一下内容进行回答!" - user_prompt = user_prompt + "\n 5、如果问题与提供的知识库内容不符,则明确告诉未在知识库范围内提到!" - user_prompt = user_prompt + "\n 6、发现输出内容中包含Latex公式的,一定要检查是不是包含了$$或$的包含符号,不能让Latex无包含符号出现!" + + # 用户提示词 + output_model=data.get("output_model", "txt") + + if output_model=="txt": + user_prompt = "\n 1、不要输出参考资料 或者 References !" + #user_prompt = "\n 1、不要输出参考资料 或者 References !" + user_prompt = "\n 2、资料中提供化学反应方程式的,一定要严格按提供的Latex公式输出,绝对不允许对Latex公式进行修改 !" + user_prompt = user_prompt + "\n 3、如果资料中提供了图片的,一定要严格按照原文提供图片输出,不允许省略或不输出!" + #user_prompt = user_prompt + "\n 4、资料中提到的知识内容,需要判断是否与本次问题相关,不相关的绝对不要输出!" + user_prompt = user_prompt + "\n 4、根据资料回答问题,可以适当拓展一下内容进行回答!" + user_prompt = user_prompt + "\n 5、如果问题与提供的知识库内容不符,则明确告诉未在知识库范围内提到!" + user_prompt = user_prompt + "\n 6、发现输出内容中包含Latex公式的,一定要检查是不是包含了$$或$的包含符号,不能让Latex无包含符号出现!" + elif output_model=='html': + user_prompt=""" + 我需要一个专业的交互式数据可视化,数据资料我将提供,你也可以根据自己了解的信息进行补充,注意:(1)不要与用户进行二次交互,直接生成即可。(2)直接输出html代码,不要其它信息出现。(3)、正面负面信息都要。 + 绘制可视化具体要求如下: + 1. **主题类型**: + [明确主题,如历史人物关系/公司组织架构/生物基因网络等] + + 2. **技术要求**: + - 使用 [指定技术栈,如 D3.js v7 + HTML5 + SVG] + - 实现 [关键功能:节点拖动/多布局切换/关系分类等] + - 必须包含 [核心交互:右侧信息面板/3D效果/关系图例等] + + 3. **设计规范**: + - 主色调:[如深蓝色渐变] + - 视觉特效:[如3D节点/发光效果/阴影] + - 布局响应式:[是/否] + - 文字要求:[如完美居中/特定字体] + + 4. **数据要求**: + - 数据结构:[层级/网络/树状] + - 关系分类:[至少3种关系类型] + - 节点属性:[如类型/描述/重要性] + + 5. **交互细节**: + - 悬停效果:[显示详细信息] + - 点击响应:[更新信息面板] + - 布局切换:[至少4种布局方式] + + 6. **拒绝内容**: + - 不要 [树状结构/基础2D效果] + - 避免 [纯表格展示/静态图片] + """ + # 使用PG库后,这个是没有用的,但目前的项目代码要求必传,就写一个吧。 WORKING_DIR = f"./output" diff --git a/dsLightRag/static/ShiJi.html b/dsLightRag/static/ShiJi.html index 7ee109fa..d31cd86c 100644 --- a/dsLightRag/static/ShiJi.html +++ b/dsLightRag/static/ShiJi.html @@ -175,7 +175,7 @@
-

少惠林2025暑期读书营【少年读史记】知识问答

+

【少年读史记】知识问答

请在下方输入您的问题,答案将在此处显示

@@ -207,6 +207,7 @@
+
diff --git a/dsLightRag/static/logo.jpg b/dsLightRag/static/logo.jpg deleted file mode 100644 index ac9ab7dc513a8bfde481f7f3c45701d3ed227af7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11331 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 WHhrbs|Ev@Ld%gI7@=i})`o93JKWaGu