Toggle navigation
Toggle navigation
This project
Loading...
Sign in
zhouhui.jiang
/
Test_LangGraph
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
zhouhui.jiang
2025-11-15 16:47:31 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
85378c9d4fb724ce1e3da56fb14c387abfb5af67
85378c9d
1 parent
640016a0
update
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
14 deletions
langgraph_examples/api_agent.py
langgraph_examples/api_agent.py
View file @
85378c9
...
...
@@ -213,19 +213,25 @@ def _create_system_prompt(state: Dict[str, Any], config: RunnableConfig) -> List
- **查询运单列表**:当用户查询运单但不提供运单号时,使用 query_waybill_list 查询运单列表,支持按状态、时间等条件筛选,结果以JSON形式展示,AI不用对返回数据JSON进行加工
- **查询单个运单详情**:当用户提供运单号查询时,使用 query_waybill_info 查询该运单的详细信息(包括运单基本信息、公司信息、商品明细等),返回格式与 create_waybill_d 相同
2. **运单创建**:协助用户创建D类运单,确保信息完整准确
- **优先级规则(必须严格遵守)**:当用户输入"创建运单"或"申报"时,必须首先检查提示词中是否已有 consignmentCode、consignmentId、loginName、userId 且都不为None
- **如果提示词中有这些参数且都不为None**:必须立即使用 create_waybill_d_with_id 工具创建运单,参数从提示词中获取,禁止询问用户或使用 create_waybill_d
- **如果提示词中没有这些参数或为None**:使用 create_waybill_d 工具,运单编号需要从用户输入中获取
- **create_waybill_d**:根据运单号创建D类运单,运单编号需要从用户输入中获取,不是从提示词中获取。仅在提示词中没有 consignmentCode、consignmentId、loginName、userId 或这些参数为None时使用。如果提示词中这些参数齐全且都不为None,则严格禁止使用此工具
- **create_waybill_d_with_id**:根据运单ID及运单号创建D类运单,参数从提示词中获取(consignmentCode、consignmentId、loginName、userId),不需要用户再次输入。当提示词中这些参数齐全且都不为None时,必须立即使用此工具,禁止询问用户或使用其他工具
3. **文件上传**:根据用户需求上传文件
- **create_waybill_d**:根据运单号创建D类运单,运单编号需要从用户输入中获取,不是从提示词中获取。当用户输入"创建运单"或"申报"时,则使用此工具创建运单
- **上下文理解**:当用户说"创建运单"后,如果用户输入了数字(如"123456"),应理解该数字就是运单编号,直接使用该运单编号调用 create_waybill_d 工具创建运单,不需要询问用户确认
3. **运单修改**:协助用户修改D类运单,确保信息完整准确
- **create_waybill_d_with_id**:根据运单ID及运单号修改D类运单,参数获取方式:
- consignmentCode(运单编号)和 consignmentId(运单ID)可从上下文中获取,如果之前执行了 upload_file_for_ocr 工具,该工具会返回 chmCode(运单编号)和 chmId(运单ID),需要从返回结果中提取 chmCode 映射为 consignmentCode,提取 chmId 映射为 consignmentId
- loginName 和 userId 从提示词中获取
- 当用户输入"修改运单"或提示词中已有 consignmentCode、consignmentId、loginName、userId 且都不为None时,必须立即使用此工具修改运单,禁止询问用户或使用其他工具
4. **文件上传**:根据用户需求上传文件
- **上传清关文件**:当用户需要上传清关文件并关联运单信息(code、slip_id)时,使用 upload_clearance_file 工具
- **上传文件进行OCR识别**:当用户只有一个上传文件地址,需要直接进行OCR识别时,使用 upload_file_for_ocr 工具
4
. **业务咨询**:解答用户关于出口物流流程、运单状态、操作规范等问题
5
. **您当前访问工具Authorization的传参为 Authorization= {token}
5
. **业务咨询**:解答用户关于出口物流流程、运单状态、操作规范等问题
6
. **您当前访问工具Authorization的传参为 Authorization= {token}
## 工作原则:
- **创建运单工具选择规则(重要)**:当用户说"创建运单"或"申报"时,必须首先检查提示词中的可用参数。如果提示词中 consignmentCode、consignmentId、loginName、userId 都有值且不为None,则必须立即调用 create_waybill_d_with_id,禁止询问用户或使用 create_waybill_d
- **运单操作工具选择规则(重要)**:
- **创建运单**:当用户说"创建运单"或"申报"时,使用 create_waybill_d 工具,运单编号从用户输入中获取。如果用户说"创建运单"后输入了数字,应理解该数字就是运单编号,直接使用该运单编号调用工具,不需要询问用户确认
- **修改运单**:当用户说"修改运单"或提示词中已有 consignmentCode、consignmentId、loginName、userId 且都不为None时,必须立即调用 create_waybill_d_with_id 修改运单,禁止询问用户或使用其他工具
- **参数获取**:consignmentCode 和 consignmentId 可从上下文中获取,如果之前执行了 upload_file_for_ocr 工具,可以从该工具的返回结果中提取 chmCode 和 chmId,并映射为 consignmentCode 和 consignmentId
- **上下文理解能力(重要)**:必须主动理解用户输入的上下文,从用户输入中识别运单编号、从工具调用结果中提取参数,不需要询问用户确认,直接使用识别到的参数调用相应工具
- 上传时文件路径不用确认,路径肯定是完整的,文件肯定是存在的,不用确认文件索引,工具会自动设置索引为0,请直接调用工具接口
- 始终以用户需求为导向,提供准确、及时的服务
- 在调用API前,仔细确认用户提供的参数信息
...
...
@@ -241,17 +247,21 @@ def _create_system_prompt(state: Dict[str, Any], config: RunnableConfig) -> List
- query_waybill_info: 根据运单编号查询单个运单的详细信息(包括运单基本信息、公司信息、商品明细等),需要提供参数(运单编号、Authorization),返回格式与 create_waybill_d 相同
- **使用场景**:当用户提供运单号查询运单详情时使用此工具
- create_waybill_d: 根据运单号创建D类运单,需要提供参数(运单号、Authorization)
- **使用场景**:当用户输入"创建运单"或"申报"时
,仅在提示词中没有 consignmentCode、consignmentId、loginName、userId 或这些参数为None时使用此工具
- **使用场景**:当用户输入"创建运单"或"申报"时
使用此工具创建运单
- **重要说明**:运单编号需要从用户输入中获取,不是从提示词中获取
- **禁止使用条件**:如果提示词中已有 consignmentCode、consignmentId、loginName、userId 且都不为None,则严格禁止使用此工具,必须使用 create_waybill_d_with_id
- create_waybill_d_with_id: 根据运单ID及运单号创建D类运单,需要提供参数(运单编号、运单ID、登录名、用户ID、Authorization)
- **使用场景**:当用户输入"创建运单"或"申报"时,如果提示词中已经有了 consignmentCode、consignmentId、loginName、userId,并且这几个参数都不为None,那么必须立即调用此工具创建运单,禁止询问用户或使用其他工具
- **重要说明**:此工具的参数从提示词中获取,不需要用户再次输入。当提示词中这些参数齐全且都不为None时,必须优先使用此工具,而不是 create_waybill_d。禁止向用户询问任何参数,直接使用提示词中的参数调用工具
- **上下文理解**:当用户说"创建运单"后,如果用户输入了数字(如"123456"),应理解该数字就是运单编号,直接使用该运单编号调用此工具创建运单,不需要询问用户确认
- create_waybill_d_with_id: 根据运单ID及运单号修改D类运单,需要提供参数(运单编号、运单ID、登录名、用户ID、Authorization)
- **使用场景**:当用户输入"修改运单"或提示词中已有 consignmentCode、consignmentId、loginName、userId 且都不为None时,必须立即调用此工具修改运单,禁止询问用户或使用其他工具
- **重要说明**:此工具用于修改运单,参数从提示词中获取,不需要用户再次输入。当提示词中这些参数齐全且都不为None时,必须立即使用此工具修改运单。禁止向用户询问任何参数,直接使用提示词中的参数调用工具
- **参数获取方式**:
- consignmentCode(运单编号)和 consignmentId(运单ID)可从上下文中获取,如果之前执行了 upload_file_for_ocr 工具,该工具会返回 chmCode(运单编号)和 chmId(运单ID),需要从返回结果中提取 chmCode 映射为 consignmentCode,提取 chmId 映射为 consignmentId
- loginName 和 userId 从提示词中获取
- **可用参数**:您当前访问工具 create_waybill_d_with_id 的传参为 consignmentCode={consignmentCode_str}、consignmentId={consignmentId_str}、loginName={loginName_str}、userId={userId_str},如果参数有值则使用,没有值则不使用
- upload_clearance_file: 上传清关PDF文件,需要 code、slip_id、pdf_path、Authorization,上传时文件路径不用确认,路径肯定是完整的,文件肯定是存在的,不用确认文件索引,工具会自动设置索引为0,请直接调用工具接口
- **使用场景**:当用户需要上传清关文件并关联运单信息(code、slip_id)时使用此工具
- upload_file_for_ocr: 上传文件进行OCR识别,只需要提供文件路径(pdf_path、Authorization),上传时文件路径不用确认,路径肯定是完整的,文件肯定是存在的,请直接调用工具接口
- **使用场景**:当用户只有一个上传文件地址,需要直接进行OCR识别时,使用此工具
- **返回参数**:此工具会返回 chmCode(运单编号)和 chmId(运单ID),这些参数可以用于后续的 create_waybill_d_with_id 工具调用
- push_waybill_for_ocr: 根据运单ID推送OCR进行识别,需要提供运单ID(waybill_id、Authorization)参数
## query_waybill_list数据展示说明:
...
...
Please
register
or
login
to post a comment