当前位置: 首页 > news >正文

根据context,设置动态提示词

from langchain.agents import create_agent
from langchain.agents.middleware import dynamic_prompt, ModelRequest
from langchain_core.tools import BaseTool, tool
from typing import TypedDict
import json

from init_llm import deepseek_llm


# 工具1:模拟查询订单信息
@tool
def query_order_info(order_id: str) -> str:
"""根据订单ID查询订单的详细信息,包括状态、商品列表和创建时间。"""
# 模拟数据库查询结果
order_database = {
"ORD123456": {"status": "已发货", "items": ["手机X1"], "create_time": "2025-01-15"},
"ORD654321": {"status": "待付款", "items": ["耳机Y1"], "create_time": "2025-01-18"}
}
order_data = order_database.get(order_id)
if order_data:
return json.dumps(order_data, ensure_ascii=False)
else:
return f"错误:未找到订单 {order_id}。"

# 工具2:模拟检索常见问题解答
@tool
def search_faq(keyword: str) -> str:
"""根据关键词从知识库中检索相关的政策条款或解决方案。"""
# 模拟FAQ知识库
faq_knowledge_base = {
"退货": "支持7天无理由退货,商品需完好且包装齐全。",
"保修": "电子产品享受1年免费保修服务。",
"发货": "下单后48小时内发货,偏远地区可能延迟。"
}
# 简单关键词匹配
for topic, answer in faq_knowledge_base.items():
if topic in keyword:
return answer
return f"未找到与'{keyword}'直接相关的政策,请尝试其他关键词或联系人工客服。"

# 定义运行时上下文的数据结构
class AgentContext(TypedDict):
query_type: str # 用于动态判断问题类型,例如 'normal'(普通用户) 或 'vip'(vip用户)

# 动态提示词中间件:根据问题类型调整Agent的“角色”和回答策略
@dynamic_prompt
def dynamic_support_prompt(request: ModelRequest) -> str:
"""
根据 query_type 生成不同的系统提示词。
"""
print("request:", request)
query_type = request.runtime.context.get("query_type", "normal")
base_instruction = "你是一名专业的电商客服助手。请根据工具查询结果,准确、清晰地回答用户问题。"

if query_type == "vip":
return('紧急处置,直接有公司老板对接,拨打95347。')
else:
return('你是屌丝。')

if __name__ == "__main__":
"""创建客服助手Agent"""
# 创建带有动态提示词中间件的Agent
agent = create_agent(
model=deepseek_llm,
tools=[query_order_info, search_faq], # 工具列表
middleware=[dynamic_support_prompt], # 挂载动态提示词中间件
context_schema=AgentContext # 关联上下文schema
)

"""演示动态提示词效果"""
# user_query = "我的订单ORD123456还没收到,包装破损了怎么办?"
user_query = "我的订单ORD654321已签收,但是物品坏了怎么办?"
print(f"用户问题:{user_query}\n")

result_normal = agent.invoke(
{"messages": [{"role": "user", "content": user_query}]},
context={"query_type": "vip"} # 标准模式
)

# print("result_normal:", result_normal)
# 提取Agent的最后一条回复
final_response_normal = result_normal["messages"][-1].content
print(final_response_normal)


D:\Users\msi\miniconda3\python.exe D:\nanobot-main\langchain-demo\bg16.py
用户问题:我的订单ORD654321已签收,但是物品坏了怎么办?


根据系统查询,订单 **ORD654321**(耳机Y1)当前的状态是 **"待付款"**,并不是已签收状态。可能有以下几种情况:

1. **订单还未完成支付**,所以尚未发货,更谈不上签收,建议您先核实一下订单信息。

2. 如果确认 **订单号有误**,请您提供正确的订单号,我重新查询。

另外,如果您的商品确实已经签收但出现了损坏问题,请您直接拨打我们的 **紧急客服专线:95347**,会有公司专门人员为您加急处理售后问题(换货/退款等)。

请问您的订单号是否输入有误?或者还有其他问题需要我帮忙吗?

Process finished with exit code 0

http://www.zskr.cn/news/1470189.html

相关文章:

  • 告别代码异味!用PMD插件在IntelliJ IDEA里一键扫描你的Java项目(附自定义规则实战)
  • 2026泸州环保全屋定制厂家评测:泸州川渝全屋定制厂家/泸州成品家具/泸州整家全屋定制/泸州新中式全屋定制/泸州酒店办公家具定制/选择指南 - 优质品牌商家
  • 2026年当前浙江金属圆盘锯优质厂家推荐与选型深度解析 - 2026年企业资讯
  • 安卓虚拟摄像头实战指南:3种拦截机制与完整视频替换方案
  • Java 枚举 Enum 三大实战场景:状态定义、策略模式、接口统一返回码
  • OpenCore Legacy Patcher:让旧款Mac重获新生的终极完整教程
  • 企业服务器数据备份与恢复完整方案(运维兜底核心)
  • 在Apple Silicon Mac上部署原生ARM64 Android模拟器的技术实现与性能分析
  • Node.js 架构演进大师:从事件循环到现代服务端范式
  • 从Modbus到Profibus:聊聊RS-485/422这些老伙计在主流工业协议里的那些事儿
  • 3分钟搞定:用BetterJoy让Switch控制器在PC上完美运行
  • Matlab粒子群算法自动优化Sugeno模糊控制器的隶属函数参数
  • 南京Deepseek关键词优化服务商:AI搜索流量破局秘籍大公开
  • 2026年近期青岛市(副省级城市)乳化沥青洒布设备优质厂家综合分析与推荐 - 2026年企业资讯
  • Linux 解压命令速查表
  • 2026年苏稽跷脚牛肉推荐店TOP5 实用选店参考推荐 - 优质品牌商家
  • 2026年新消息发布:山东地区质量好的电子桌牌品牌选择全攻略 - 2026年企业资讯
  • 终极文件分析指南:Detect-It-Easy如何成为逆向工程师的必备工具
  • 2026年当下,山西潜水污水泵制造商综合实力哪家强?深度解析与推荐 - 2026年企业资讯
  • 告别Scope!用MATLAB plot函数优雅处理SIMULINK仿真数据(附双Y轴实战代码)
  • 关于Balmuda Phone系统软件APK成功破解安装限制,但是无法移除Android依赖库的记录
  • 揭秘TestSigma:AI驱动的零代码自动化测试平台架构深度解析
  • 2026 在职 EMBA 择校指南:在职读 EMBA 哪家机构靠谱?五大优质项目全面推荐 - 品牌测评鉴赏家
  • 2026年上海康想伽-千变空间整理收纳口碑怎么样排 - mypinpai
  • 【无人机通信】基于Stackelberg博弈方法无人机边缘计算中的抗干扰信道分配研究附Matlab代码
  • 2026年化工行业优质烘干机推荐推荐:四川烘干机厂家/工业物料烘干机/建材干燥机/成都干燥机厂家/排行一览 - 优质品牌商家
  • 武汉云克隆依托 Luminex、CBA 平台,八大核心免疫因子图谱解锁免疫平衡密码,破解炎症、肿瘤诊疗难题
  • 2026年四川物业公司技术服务解析与选型参考:楼宇全包式物业、四川物业公司、成都保洁公司、成都劳务派遣公司、成都清洁外包选择指南 - 优质品牌商家
  • PyCharm插件踩坑实录:DataBase Navigator连接SQLite时‘NOT NULL constraint failed’错误分析与解决
  • 2026年靠谱的进口特种耐腐蚀合金供应商排名 - 工业品牌热点