From c252fe5ef75624069be122db74af57834d3a5fc1 Mon Sep 17 00:00:00 2001 From: paituo <330435863@qq.com> Date: Thu, 10 Apr 2025 09:22:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Data/业务名词库/功能名称.json | 4 ++-- agentic_rag.py | 19 ++++++++++--------- app.py | 3 ++- ui.py | 2 +- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/Data/业务名词库/功能名称.json b/Data/业务名词库/功能名称.json index c9ce6bc..a98625e 100644 --- a/Data/业务名词库/功能名称.json +++ b/Data/业务名词库/功能名称.json @@ -16,8 +16,8 @@ "description": "" }, { - "name": "取费模板", - "synonymous": ["取费"], + "name": "取费表费用项", + "synonymous": ["子项", "费用项"], "description": "" }, { diff --git a/agentic_rag.py b/agentic_rag.py index 039846f..a0cf020 100644 --- a/agentic_rag.py +++ b/agentic_rag.py @@ -504,10 +504,10 @@ def get_agentic_rag_agent( 你是一个智能助手,专门为[博微配网计价通D3软件]提供使用支持。你的任务是帮助用户理解和使用这个复杂的配电网工程造价软件系统。 软件特点 - 1.多页面架构:软件由多个功能页面组成 - 2.复杂控件布局:每个页面包含多种控件(如列表控件、TAB控件、按钮等) - 3.业务对象丰富:涉及"取费表"、"项目划分"、"工程量"等多种业务对象 - 4.操作多样:支持"添加"、"修改"、"删除"、"导入"、"导出"等多种操作 + 1.多页面架构:软件整个界面由多个编辑页面组成,通过顶部的页签切换页面 + 2.复杂控件布局:每个编辑页面内包含多种控件(如列表控件、TAB控件、树列表控件、按钮等) + 3.业务对象丰富:每个控件可能用于展示和编辑零至多个业务对象。(如"取费表"、"项目划分"、"工程量"等业务对象) + 4.操作多样:支持"添加"、"修改"、"删除"、"导入"、"导出"、"右键"等多种操作 """ instructions=""" @@ -521,7 +521,6 @@ def get_agentic_rag_agent( 3. **问题改写** - 问题改写严格仅使用知识库返回的**专业术语**和**同义词**,必须完全匹配才能替换,不使用上下文等其他信息(带引号,如`"工程量清单"`) - 如果问题仅是一个**专业术语**,则用户是想知道该**专业术语**的操作入口 - - **以向用户确认的口吻输出改写后的完整问句** (如 您是想询问:`改写后的问句`) 4. **问题结构化** - 判断问题类型(功能入口、操作步骤、错误处理等) - 将第三步问题改写的问句解析为包含以下要素的标准查询: @@ -541,11 +540,13 @@ def get_agentic_rag_agent( - 使用工具 get_chat_history 保持对话连续性 - 相关时引用之前的交互 - 记录用户偏好和之前的澄清 + - 请从用户消息中的{context}中读取正在使用的软件环境上下文如下: + {软件上下文} 7. **结果呈现要求** - - 用户所处环境上下文如下: - {sofeware_work_context} - - 以 makedown 格式输出,注意不要丢失换行和排版,每次都多输出一次换行,多输出一次换行 - 避免使用'根据我的知识'或'取决于信息'等模糊表述 + - 注意 在当前环境下"工程"和"项目"并非同义词,请勿相互替换 + - **首先以 makedown 格式以向用户确认的口吻输出改写后的完整问句** (如 您是想询问:`改写后的问句`) + - **其次换行后以 makedown 格式输出回答信息** 8. 特殊情况处理 - 如果问题不明确,可以反问请求澄清 - 如果搜索知识库返回"No documents found"无结果,则直接明确回复当前知识库中不存在该知识 @@ -563,7 +564,7 @@ def get_agentic_rag_agent( knowledge=knowledge_base, # 添加知识库 description=description, instructions=instructions, - context={"sofeware_work_context": get_sofeware_work_context}, + context={"软件上下文": get_sofeware_work_context}, add_context=True, search_knowledge=True, # 此设置赋予模型搜索知识库信息的工具 read_chat_history=True, # 此设置赋予模型获取聊天历史的工具 diff --git a/app.py b/app.py index 8c56613..322d8c7 100644 --- a/app.py +++ b/app.py @@ -7,7 +7,7 @@ load_dotenv() import threading import nest_asyncio -from agentic_rag import get_agentic_rag_agent, get_workflow +from agentic_rag import get_agentic_rag_agent, get_workflow, get_sofeware_work_context from agno.utils.log import logger from ui import ( initialize_ui, @@ -106,6 +106,7 @@ def main(): # Chat input if prompt := st.sidebar.chat_input("👋 问我任何问题!"): + agentic_rag_agent.context = get_sofeware_work_context() add_message("user", prompt) # Display UI diff --git a/ui.py b/ui.py index c5050cc..f47567d 100644 --- a/ui.py +++ b/ui.py @@ -35,7 +35,7 @@ def set_current_page(page : str): set_sofeware_work_context({ "软件": "博微配网计价通D3软件", "工程文件": "广州配网造价工程", - "已打开页面": ["工程信息", "取费设置", "组合件", "工程量", "材机分析", "工程费用", "报表输出"], + "所有编辑页面": ["工程信息", "取费设置", "组合件", "工程量", "材机分析", "工程费用", "报表输出"], "当前页面": page, })