Showing
2 changed files
with
16 additions
and
57 deletions
| ... | @@ -136,8 +136,6 @@ def create_waybill_d(consignmentCode: str, Authorization: str = None) -> str: | ... | @@ -136,8 +136,6 @@ def create_waybill_d(consignmentCode: str, Authorization: str = None) -> str: |
| 136 | def create_waybill_d_with_id( | 136 | def create_waybill_d_with_id( |
| 137 | consignmentCode: str, | 137 | consignmentCode: str, |
| 138 | consignmentId: str, | 138 | consignmentId: str, |
| 139 | - loginName: str, | ||
| 140 | - userId: int, | ||
| 141 | Authorization: str = None, | 139 | Authorization: str = None, |
| 142 | ) -> str: | 140 | ) -> str: |
| 143 | """根据运单ID及运单号创建D类运单 | 141 | """根据运单ID及运单号创建D类运单 |
| ... | @@ -145,8 +143,6 @@ def create_waybill_d_with_id( | ... | @@ -145,8 +143,6 @@ def create_waybill_d_with_id( |
| 145 | Args: | 143 | Args: |
| 146 | consignmentCode: 运单号(必填) | 144 | consignmentCode: 运单号(必填) |
| 147 | consignmentId: 运单ID(必填) | 145 | consignmentId: 运单ID(必填) |
| 148 | - loginName: 登录名(必填) | ||
| 149 | - userId: 用户ID(必填) | ||
| 150 | Authorization: 授权令牌,如果提供则使用该值,否则使用 API_CONFIG 中的默认值 | 146 | Authorization: 授权令牌,如果提供则使用该值,否则使用 API_CONFIG 中的默认值 |
| 151 | 147 | ||
| 152 | Returns: | 148 | Returns: |
| ... | @@ -160,8 +156,8 @@ def create_waybill_d_with_id( | ... | @@ -160,8 +156,8 @@ def create_waybill_d_with_id( |
| 160 | "consignmentCode": consignmentCode, | 156 | "consignmentCode": consignmentCode, |
| 161 | "consignmentId": consignmentId, | 157 | "consignmentId": consignmentId, |
| 162 | "isAIRecognition": 1, # 写死为1 | 158 | "isAIRecognition": 1, # 写死为1 |
| 163 | - "loginName": loginName, | 159 | + "loginName": "CL1", # 硬编码 |
| 164 | - "userId": userId | 160 | + "userId": 73768 # 硬编码 |
| 165 | } | 161 | } |
| 166 | 162 | ||
| 167 | # 构建 headers,优先使用传入的 Authorization | 163 | # 构建 headers,优先使用传入的 Authorization | ... | ... |
| ... | @@ -104,11 +104,7 @@ def extract_token(state: Dict[str, Any]) -> Dict[str, Any]: | ... | @@ -104,11 +104,7 @@ def extract_token(state: Dict[str, Any]) -> Dict[str, Any]: |
| 104 | 包含所有参数的字典,如果未找到则返回空字符串或None | 104 | 包含所有参数的字典,如果未找到则返回空字符串或None |
| 105 | """ | 105 | """ |
| 106 | result = { | 106 | result = { |
| 107 | - "token": "", | 107 | + "token": "" |
| 108 | - "consignmentCode": None, | ||
| 109 | - "consignmentId": None, | ||
| 110 | - "loginName": None, | ||
| 111 | - "userId": None | ||
| 112 | } | 108 | } |
| 113 | 109 | ||
| 114 | messages = state.get("messages", []) | 110 | messages = state.get("messages", []) |
| ... | @@ -146,14 +142,6 @@ def extract_token(state: Dict[str, Any]) -> Dict[str, Any]: | ... | @@ -146,14 +142,6 @@ def extract_token(state: Dict[str, Any]) -> Dict[str, Any]: |
| 146 | # 从 additional_kwargs 中提取参数 | 142 | # 从 additional_kwargs 中提取参数 |
| 147 | if "token" in additional_kwargs and additional_kwargs.get("token"): | 143 | if "token" in additional_kwargs and additional_kwargs.get("token"): |
| 148 | result["token"] = additional_kwargs.get("token") | 144 | result["token"] = additional_kwargs.get("token") |
| 149 | - if "consignmentCode" in additional_kwargs: | ||
| 150 | - result["consignmentCode"] = additional_kwargs.get("consignmentCode") | ||
| 151 | - if "consignmentId" in additional_kwargs: | ||
| 152 | - result["consignmentId"] = additional_kwargs.get("consignmentId") | ||
| 153 | - if "loginName" in additional_kwargs: | ||
| 154 | - result["loginName"] = additional_kwargs.get("loginName") | ||
| 155 | - if "userId" in additional_kwargs: | ||
| 156 | - result["userId"] = additional_kwargs.get("userId") | ||
| 157 | 145 | ||
| 158 | # 如果 additional_kwargs 中没有某些参数,再从 content 中提取(作为备选) | 146 | # 如果 additional_kwargs 中没有某些参数,再从 content 中提取(作为备选) |
| 159 | if isinstance(last_human_msg, dict): | 147 | if isinstance(last_human_msg, dict): |
| ... | @@ -168,26 +156,10 @@ def extract_token(state: Dict[str, Any]) -> Dict[str, Any]: | ... | @@ -168,26 +156,10 @@ def extract_token(state: Dict[str, Any]) -> Dict[str, Any]: |
| 168 | if isinstance(part, dict): | 156 | if isinstance(part, dict): |
| 169 | if not result["token"] and "token" in part and part.get("token"): | 157 | if not result["token"] and "token" in part and part.get("token"): |
| 170 | result["token"] = part.get("token") | 158 | result["token"] = part.get("token") |
| 171 | - if result["consignmentCode"] is None and "consignmentCode" in part: | ||
| 172 | - result["consignmentCode"] = part.get("consignmentCode") | ||
| 173 | - if result["consignmentId"] is None and "consignmentId" in part: | ||
| 174 | - result["consignmentId"] = part.get("consignmentId") | ||
| 175 | - if result["loginName"] is None and "loginName" in part: | ||
| 176 | - result["loginName"] = part.get("loginName") | ||
| 177 | - if result["userId"] is None and "userId" in part: | ||
| 178 | - result["userId"] = part.get("userId") | ||
| 179 | elif isinstance(content, dict): | 159 | elif isinstance(content, dict): |
| 180 | # content 是字典,直接获取参数 | 160 | # content 是字典,直接获取参数 |
| 181 | if not result["token"] and "token" in content and content.get("token"): | 161 | if not result["token"] and "token" in content and content.get("token"): |
| 182 | result["token"] = content.get("token") | 162 | result["token"] = content.get("token") |
| 183 | - if result["consignmentCode"] is None and "consignmentCode" in content: | ||
| 184 | - result["consignmentCode"] = content.get("consignmentCode") | ||
| 185 | - if result["consignmentId"] is None and "consignmentId" in content: | ||
| 186 | - result["consignmentId"] = content.get("consignmentId") | ||
| 187 | - if result["loginName"] is None and "loginName" in content: | ||
| 188 | - result["loginName"] = content.get("loginName") | ||
| 189 | - if result["userId"] is None and "userId" in content: | ||
| 190 | - result["userId"] = content.get("userId") | ||
| 191 | 163 | ||
| 192 | return result | 164 | return result |
| 193 | 165 | ||
| ... | @@ -210,22 +182,13 @@ def _create_system_prompt(state: Dict[str, Any], config: RunnableConfig) -> List | ... | @@ -210,22 +182,13 @@ def _create_system_prompt(state: Dict[str, Any], config: RunnableConfig) -> List |
| 210 | # 从 state 中提取动态参数 | 182 | # 从 state 中提取动态参数 |
| 211 | params = extract_token(state) | 183 | params = extract_token(state) |
| 212 | token = params.get("token", "") | 184 | token = params.get("token", "") |
| 213 | - consignmentCode = params.get("consignmentCode") | ||
| 214 | - consignmentId = params.get("consignmentId") | ||
| 215 | - loginName = params.get("loginName") | ||
| 216 | - userId = params.get("userId") | ||
| 217 | 185 | ||
| 218 | # 如果从 state 中提取的 token 为空,则从 api_config.py 中获取 Authorization 作为备选 | 186 | # 如果从 state 中提取的 token 为空,则从 api_config.py 中获取 Authorization 作为备选 |
| 219 | if not token: | 187 | if not token: |
| 220 | from API.api_config import API_CONFIG | 188 | from API.api_config import API_CONFIG |
| 221 | token = API_CONFIG.get("headers", {}).get("Authorization", "") | 189 | token = API_CONFIG.get("headers", {}).get("Authorization", "") |
| 222 | - | 190 | + |
| 223 | - # 格式化参数值用于提示词显示 | 191 | + |
| 224 | - consignmentCode_str = str(consignmentCode) if consignmentCode is not None else "无" | ||
| 225 | - consignmentId_str = str(consignmentId) if consignmentId is not None else "无" | ||
| 226 | - loginName_str = str(loginName) if loginName is not None else "无" | ||
| 227 | - userId_str = str(userId) if userId is not None else "无" | ||
| 228 | - | ||
| 229 | # 创建系统提示词(使用 f-string 以便插入 token) | 192 | # 创建系统提示词(使用 f-string 以便插入 token) |
| 230 | system_msg = f"""你是一个专业的出口物流系统智能助手,专门帮助用户处理运单相关的业务操作。 | 193 | system_msg = f"""你是一个专业的出口物流系统智能助手,专门帮助用户处理运单相关的业务操作。 |
| 231 | 194 | ||
| ... | @@ -239,8 +202,8 @@ def _create_system_prompt(state: Dict[str, Any], config: RunnableConfig) -> List | ... | @@ -239,8 +202,8 @@ def _create_system_prompt(state: Dict[str, Any], config: RunnableConfig) -> List |
| 239 | 3. **运单修改**:协助用户修改D类运单,确保信息完整准确 | 202 | 3. **运单修改**:协助用户修改D类运单,确保信息完整准确 |
| 240 | - **create_waybill_d_with_id**:根据运单ID及运单号修改D类运单,参数获取方式: | 203 | - **create_waybill_d_with_id**:根据运单ID及运单号修改D类运单,参数获取方式: |
| 241 | - consignmentCode(运单编号)和 consignmentId(运单ID)可从上下文中获取,如果之前执行了 upload_file_for_ocr 工具,该工具会返回 chmCode(运单编号)和 chmId(运单ID),需要从返回结果中提取 chmCode 映射为 consignmentCode,提取 chmId 映射为 consignmentId | 204 | - consignmentCode(运单编号)和 consignmentId(运单ID)可从上下文中获取,如果之前执行了 upload_file_for_ocr 工具,该工具会返回 chmCode(运单编号)和 chmId(运单ID),需要从返回结果中提取 chmCode 映射为 consignmentCode,提取 chmId 映射为 consignmentId |
| 242 | - - loginName 和 userId 从提示词中获取(注意:这与 create_waybill_d 不同,create_waybill_d 的运单编号从用户输入获取,而 create_waybill_d_with_id 的参数从提示词中获取) | 205 | + - loginName 和 userId 已硬编码为固定值(loginName="CL1",userId=73768),不需要从提示词中获取,调用工具时不需要传递这两个参数 |
| 243 | - - 当用户输入"修改运单"或提示词中已有 consignmentCode、consignmentId、loginName、userId 且都不为None时,必须立即使用此工具修改运单,禁止询问用户或使用其他工具 | 206 | + - 当用户输入"修改运单"或提示词中已有 consignmentCode、consignmentId 且都不为None时,必须立即使用此工具修改运单,禁止询问用户或使用其他工具 |
| 244 | 4. **文件上传**:根据用户需求上传文件 | 207 | 4. **文件上传**:根据用户需求上传文件 |
| 245 | - **工具选择规则**:如果用户意图不明确(即用户没有明确表示要上传清关文件或进行图文识别),即使有 slip_id 和 pdf_path 这两个值,也要询问用户选择。询问时应提供选项,如"请选择:1.上传清关文件 2.上传图文识别文件"。如果用户已经明确表示要上传清关文件或进行图文识别,则直接使用相应工具,不需要询问 | 208 | - **工具选择规则**:如果用户意图不明确(即用户没有明确表示要上传清关文件或进行图文识别),即使有 slip_id 和 pdf_path 这两个值,也要询问用户选择。询问时应提供选项,如"请选择:1.上传清关文件 2.上传图文识别文件"。如果用户已经明确表示要上传清关文件或进行图文识别,则直接使用相应工具,不需要询问 |
| 246 | - **数字选择理解**:当用户输入"1"、"2"、"3"等数字时,应理解为用户选择了对应选项。例如:如果提供了"1.上传清关文件 2.上传图文识别文件",用户回复"1"表示选择上传清关文件,回复"2"表示选择上传图文识别文件 | 209 | - **数字选择理解**:当用户输入"1"、"2"、"3"等数字时,应理解为用户选择了对应选项。例如:如果提供了"1.上传清关文件 2.上传图文识别文件",用户回复"1"表示选择上传清关文件,回复"2"表示选择上传图文识别文件 |
| ... | @@ -249,15 +212,15 @@ def _create_system_prompt(state: Dict[str, Any], config: RunnableConfig) -> List | ... | @@ -249,15 +212,15 @@ def _create_system_prompt(state: Dict[str, Any], config: RunnableConfig) -> List |
| 249 | - 如果用户选择上传清关文件(回复"1"或明确表示上传清关文件):使用上下文中的 slip_id 和 pdf_path,加上用户输入的 code,调用 upload_clearance_file 工具,不再询问其他参数 | 212 | - 如果用户选择上传清关文件(回复"1"或明确表示上传清关文件):使用上下文中的 slip_id 和 pdf_path,加上用户输入的 code,调用 upload_clearance_file 工具,不再询问其他参数 |
| 250 | - **上传清关文件**:当用户明确需要上传清关文件并关联运单信息(code、slip_id)时,使用 upload_clearance_file 工具 | 213 | - **上传清关文件**:当用户明确需要上传清关文件并关联运单信息(code、slip_id)时,使用 upload_clearance_file 工具 |
| 251 | - **上传文件图文识别**:当用户需要进行图文识别时,使用 upload_file_for_ocr 工具,即使有 slip_id 也可以使用此工具进行图文识别 | 214 | - **上传文件图文识别**:当用户需要进行图文识别时,使用 upload_file_for_ocr 工具,即使有 slip_id 也可以使用此工具进行图文识别 |
| 252 | - - **图文识别后修改运单流程**:当 upload_file_for_ocr 工具返回"图文识别成功,请确认是否使用该运单编号:******,运单ID:******"的提示时,如果用户回答"是"、"确认"、"使用"等肯定回答,必须立即调用 create_waybill_d_with_id 工具,使用返回的 chmCode 映射为 consignmentCode,chmId 映射为 consignmentId,加上提示词中的 loginName 和 userId,直接修改运单,不需要再次询问用户 | 215 | + - **图文识别后修改运单流程**:当 upload_file_for_ocr 工具返回"图文识别成功,请确认是否使用该运单编号:******,运单ID:******"的提示时,如果用户回答"是"、"确认"、"使用"等肯定回答,必须立即调用 create_waybill_d_with_id 工具,使用返回的 chmCode 映射为 consignmentCode,chmId 映射为 consignmentId,直接修改运单(loginName 和 userId 已硬编码,不需要传递),不需要再次询问用户 |
| 253 | 5. **业务咨询**:解答用户关于出口物流流程、运单状态、操作规范等问题 | 216 | 5. **业务咨询**:解答用户关于出口物流流程、运单状态、操作规范等问题 |
| 254 | 6. **您当前访问工具Authorization的传参为 Authorization= {token} | 217 | 6. **您当前访问工具Authorization的传参为 Authorization= {token} |
| 255 | 218 | ||
| 256 | ## 工作原则: | 219 | ## 工作原则: |
| 257 | - **运单操作工具选择规则(重要)**: | 220 | - **运单操作工具选择规则(重要)**: |
| 258 | - **创建运单**:当用户说"创建运单"或"申报"时,使用 create_waybill_d 工具,运单编号从用户输入中获取。运单编号一般为9-12位数字。如果用户说"创建运单"后输入了数字(一般为9-12位),应理解该数字就是运单编号,直接使用该运单编号调用工具,不需要询问用户确认 | 221 | - **创建运单**:当用户说"创建运单"或"申报"时,使用 create_waybill_d 工具,运单编号从用户输入中获取。运单编号一般为9-12位数字。如果用户说"创建运单"后输入了数字(一般为9-12位),应理解该数字就是运单编号,直接使用该运单编号调用工具,不需要询问用户确认 |
| 259 | - - **修改运单**:当用户说"修改运单"或提示词中已有 consignmentCode、consignmentId、loginName、userId 且都不为None时,必须立即调用 create_waybill_d_with_id 修改运单,禁止询问用户或使用其他工具 | 222 | + - **修改运单**:当用户说"修改运单"或提示词中已有 consignmentCode、consignmentId 且都不为None时,必须立即调用 create_waybill_d_with_id 修改运单,禁止询问用户或使用其他工具(loginName 和 userId 已硬编码,不需要传递) |
| 260 | - - **图文识别后修改运单**:当 upload_file_for_ocr 工具返回"图文识别成功,请确认是否使用该运单编号"的提示,且用户回答"是"、"确认"、"使用"等肯定回答时,必须立即调用 create_waybill_d_with_id 工具,使用返回的 chmCode 映射为 consignmentCode,chmId 映射为 consignmentId,加上提示词中的 loginName 和 userId,直接修改运单,不需要再次询问用户 | 223 | + - **图文识别后修改运单**:当 upload_file_for_ocr 工具返回"图文识别成功,请确认是否使用该运单编号"的提示,且用户回答"是"、"确认"、"使用"等肯定回答时,必须立即调用 create_waybill_d_with_id 工具,使用返回的 chmCode 映射为 consignmentCode,chmId 映射为 consignmentId,直接修改运单(loginName 和 userId 已硬编码,不需要传递),不需要再次询问用户 |
| 261 | - **参数获取**:consignmentCode 和 consignmentId 可从上下文中获取,如果之前执行了 upload_file_for_ocr 工具,可以从该工具的返回结果中提取 chmCode 和 chmId,并映射为 consignmentCode 和 consignmentId | 224 | - **参数获取**:consignmentCode 和 consignmentId 可从上下文中获取,如果之前执行了 upload_file_for_ocr 工具,可以从该工具的返回结果中提取 chmCode 和 chmId,并映射为 consignmentCode 和 consignmentId |
| 262 | - **上下文理解能力(重要)**:必须主动理解用户输入的上下文,从用户输入中识别运单编号(运单编号一般为9-12位数字)、从工具调用结果中提取参数,不需要询问用户确认,直接使用识别到的参数调用相应工具。例外:在文件上传场景中,如果用户意图不明确(同时有 slip_id 和 pdf_path 但未明确表示要上传清关文件还是进行图文识别),需要询问用户选择 | 225 | - **上下文理解能力(重要)**:必须主动理解用户输入的上下文,从用户输入中识别运单编号(运单编号一般为9-12位数字)、从工具调用结果中提取参数,不需要询问用户确认,直接使用识别到的参数调用相应工具。例外:在文件上传场景中,如果用户意图不明确(同时有 slip_id 和 pdf_path 但未明确表示要上传清关文件还是进行图文识别),需要询问用户选择 |
| 263 | - **数字选择理解(重要)**:当用户输入"1"、"2"、"3"等数字时,应理解为用户选择了对应选项。如果之前提供了选项(如"1.上传清关文件 2.上传图文识别文件"),用户回复数字时应理解为选择了对应选项,并直接使用相应工具和参数 | 226 | - **数字选择理解(重要)**:当用户输入"1"、"2"、"3"等数字时,应理解为用户选择了对应选项。如果之前提供了选项(如"1.上传清关文件 2.上传图文识别文件"),用户回复数字时应理解为选择了对应选项,并直接使用相应工具和参数 |
| ... | @@ -283,15 +246,15 @@ def _create_system_prompt(state: Dict[str, Any], config: RunnableConfig) -> List | ... | @@ -283,15 +246,15 @@ def _create_system_prompt(state: Dict[str, Any], config: RunnableConfig) -> List |
| 283 | - **使用场景**:当用户输入"创建运单"或"申报"时使用此工具创建运单 | 246 | - **使用场景**:当用户输入"创建运单"或"申报"时使用此工具创建运单 |
| 284 | - **重要说明**:运单编号需要从用户输入中获取,不是从提示词中获取。运单编号一般为9-12位数字 | 247 | - **重要说明**:运单编号需要从用户输入中获取,不是从提示词中获取。运单编号一般为9-12位数字 |
| 285 | - **上下文理解**:当用户说"创建运单"后,如果用户输入了数字(一般为9-12位,如"2025102904"),应理解该数字就是运单编号,直接使用该运单编号调用此工具创建运单,不需要询问用户确认。在识别运单编号时,应以9-12位数字作为判断标准,避免将其他数字(如1-3位的选择数字)误判为运单编号 | 248 | - **上下文理解**:当用户说"创建运单"后,如果用户输入了数字(一般为9-12位,如"2025102904"),应理解该数字就是运单编号,直接使用该运单编号调用此工具创建运单,不需要询问用户确认。在识别运单编号时,应以9-12位数字作为判断标准,避免将其他数字(如1-3位的选择数字)误判为运单编号 |
| 286 | -- create_waybill_d_with_id: 根据运单ID及运单号修改D类运单,需要提供参数(运单编号、运单ID、登录名、用户ID、Authorization) | 249 | +- create_waybill_d_with_id: 根据运单ID及运单号修改D类运单,需要提供参数(运单编号、运单ID、Authorization) |
| 287 | - **使用场景**: | 250 | - **使用场景**: |
| 288 | - - 当用户输入"修改运单"或提示词中已有 consignmentCode、consignmentId、loginName、userId 且都不为None时,必须立即调用此工具修改运单 | 251 | + - 当用户输入"修改运单"或提示词中已有 consignmentCode、consignmentId 且都不为None时,必须立即调用此工具修改运单 |
| 289 | - **重要场景**:当 upload_file_for_ocr 工具返回"图文识别成功,请确认是否使用该运单编号"的提示,且用户回答"是"、"确认"、"使用"等肯定回答时,必须立即调用此工具修改运单,禁止询问用户或使用其他工具 | 252 | - **重要场景**:当 upload_file_for_ocr 工具返回"图文识别成功,请确认是否使用该运单编号"的提示,且用户回答"是"、"确认"、"使用"等肯定回答时,必须立即调用此工具修改运单,禁止询问用户或使用其他工具 |
| 290 | - - **重要说明**:此工具用于修改运单,参数从提示词中获取,不需要用户再次输入。当提示词中这些参数齐全且都不为None时,必须立即使用此工具修改运单。禁止向用户询问任何参数,直接使用提示词中的参数调用工具 | 253 | + - **重要说明**:此工具用于修改运单,consignmentCode 和 consignmentId 从提示词或上下文中获取,不需要用户再次输入。loginName 和 userId 已硬编码为固定值(loginName="CL1",userId=73768),调用工具时不需要传递这两个参数。当提示词中 consignmentCode 和 consignmentId 齐全且都不为None时,必须立即使用此工具修改运单。禁止向用户询问任何参数,直接使用提示词中的参数调用工具 |
| 291 | - **参数获取方式**: | 254 | - **参数获取方式**: |
| 292 | - consignmentCode(运单编号)和 consignmentId(运单ID)可从上下文中获取,如果之前执行了 upload_file_for_ocr 工具,该工具会返回 chmCode(运单编号)和 chmId(运单ID),需要从返回结果中提取 chmCode 映射为 consignmentCode,提取 chmId 映射为 consignmentId。特别地,当 upload_file_for_ocr 返回成功提示且用户确认后,必须立即使用返回的 chmCode 和 chmId 调用此工具 | 255 | - consignmentCode(运单编号)和 consignmentId(运单ID)可从上下文中获取,如果之前执行了 upload_file_for_ocr 工具,该工具会返回 chmCode(运单编号)和 chmId(运单ID),需要从返回结果中提取 chmCode 映射为 consignmentCode,提取 chmId 映射为 consignmentId。特别地,当 upload_file_for_ocr 返回成功提示且用户确认后,必须立即使用返回的 chmCode 和 chmId 调用此工具 |
| 293 | - - loginName 和 userId 从提示词中获取(注意:这与 create_waybill_d 不同,create_waybill_d 的运单编号从用户输入获取,而 create_waybill_d_with_id 的参数从提示词中获取) | 256 | + - loginName 和 userId 已硬编码为固定值(loginName="CL1",userId=73768),不需要从提示词中获取,调用工具时不需要传递这两个参数 |
| 294 | - - **可用参数**:您当前访问工具 create_waybill_d_with_id 的传参为 consignmentCode={consignmentCode_str}、consignmentId={consignmentId_str}、loginName={loginName_str}、userId={userId_str},如果参数有值则使用,没有值则不使用 | 257 | + - **可用参数**:您当前访问工具 create_waybill_d_with_id 的传参为 consignmentCode={consignmentCode_str}、consignmentId={consignmentId_str},如果参数有值则使用,没有值则不使用(loginName 和 userId 已硬编码,不需要传递) |
| 295 | - upload_clearance_file: 上传清关PDF文件,需要 code、slip_id、pdf_path、Authorization,上传时文件路径不用确认,路径肯定是完整的,文件肯定是存在的,不用确认文件索引,工具会自动设置索引为0,请直接调用工具接口 | 258 | - upload_clearance_file: 上传清关PDF文件,需要 code、slip_id、pdf_path、Authorization,上传时文件路径不用确认,路径肯定是完整的,文件肯定是存在的,不用确认文件索引,工具会自动设置索引为0,请直接调用工具接口 |
| 296 | - **使用场景**:当用户明确需要上传清关文件并关联运单信息(code、slip_id)时使用此工具 | 259 | - **使用场景**:当用户明确需要上传清关文件并关联运单信息(code、slip_id)时使用此工具 |
| 297 | - **重要说明**:如果用户意图不明确(同时有 slip_id 和 pdf_path 但未明确表示要上传清关文件),需要询问用户选择。如果用户已明确表示要上传清关文件或选择上传清关文件,则使用上下文中的 slip_id 和 pdf_path,加上用户输入的 code,直接调用此工具,不再询问其他参数 | 260 | - **重要说明**:如果用户意图不明确(同时有 slip_id 和 pdf_path 但未明确表示要上传清关文件),需要询问用户选择。如果用户已明确表示要上传清关文件或选择上传清关文件,则使用上下文中的 slip_id 和 pdf_path,加上用户输入的 code,直接调用此工具,不再询问其他参数 |
| ... | @@ -299,7 +262,7 @@ def _create_system_prompt(state: Dict[str, Any], config: RunnableConfig) -> List | ... | @@ -299,7 +262,7 @@ def _create_system_prompt(state: Dict[str, Any], config: RunnableConfig) -> List |
| 299 | - **使用场景**:当用户需要进行图文识别时,使用此工具。即使有 slip_id,如果用户需要进行图文识别,也应使用此工具 | 262 | - **使用场景**:当用户需要进行图文识别时,使用此工具。即使有 slip_id,如果用户需要进行图文识别,也应使用此工具 |
| 300 | - **重要说明**:如果用户意图不明确(同时有 slip_id 和 pdf_path 但未明确表示要进行图文识别),需要询问用户选择。如果用户已明确表示要进行图文识别或选择图文识别,则直接使用上下文中的 pdf_path 调用此工具,不再询问参数 | 263 | - **重要说明**:如果用户意图不明确(同时有 slip_id 和 pdf_path 但未明确表示要进行图文识别),需要询问用户选择。如果用户已明确表示要进行图文识别或选择图文识别,则直接使用上下文中的 pdf_path 调用此工具,不再询问参数 |
| 301 | - **返回参数**:此工具会返回 chmCode(运单编号)和 chmId(运单ID),这些参数可以用于后续的 create_waybill_d_with_id 工具调用 | 264 | - **返回参数**:此工具会返回 chmCode(运单编号)和 chmId(运单ID),这些参数可以用于后续的 create_waybill_d_with_id 工具调用 |
| 302 | - - **后续流程**:当此工具返回"图文识别成功,请确认是否使用该运单编号:******,运单ID:******"的提示时,如果用户回答"是"、"确认"、"使用"等肯定回答,必须立即调用 create_waybill_d_with_id 工具,使用返回的 chmCode 映射为 consignmentCode,chmId 映射为 consignmentId,加上提示词中的 loginName 和 userId,直接修改运单,不需要再次询问用户 | 265 | + - **后续流程**:当此工具返回"图文识别成功,请确认是否使用该运单编号:******,运单ID:******"的提示时,如果用户回答"是"、"确认"、"使用"等肯定回答,必须立即调用 create_waybill_d_with_id 工具,使用返回的 chmCode 映射为 consignmentCode,chmId 映射为 consignmentId,直接修改运单(loginName 和 userId 已硬编码,不需要传递),不需要再次询问用户 |
| 303 | - push_waybill_for_ocr: 根据运单ID推送OCR进行识别,需要提供运单ID(waybill_id、Authorization)参数 | 266 | - push_waybill_for_ocr: 根据运单ID推送OCR进行识别,需要提供运单ID(waybill_id、Authorization)参数 |
| 304 | 267 | ||
| 305 | ## query_waybill_list数据展示说明: | 268 | ## query_waybill_list数据展示说明: | ... | ... |
-
Please register or login to post a comment