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

网站制作过程中常见的问题广东最新疫情

网站制作过程中常见的问题,广东最新疫情,在线设计公司,天津公司做网站目录 示例代码 运行结果 功能:根据用户输入自动选择数学计算/天气查询工具处理 ​​"用户输入 → 意图分析 → 工具调用 → 结果返回"​​ 库名解析:【langchain库名解析】-CSDN博客 示例代码 # 模块1:依赖导入 from langc…

目录

示例代码

运行结果


功能:根据用户输入自动选择数学计算/天气查询工具处理
 ​​"用户输入 → 意图分析 → 工具调用 → 结果返回"​​ 

库名解析:【langchain库名解析】-CSDN博客

示例代码

# ============================== 模块1:依赖导入 ==============================
from langchain_core.prompts import ChatPromptTemplate  # 对话模板构建器
from langchain_core.tools import tool  # 工具装饰器
from langchain.tools.render import render_text_description  # 工具描述渲染器
from langchain_core.output_parsers.json import JsonOutputParser  # JSON输出解析器
import os  # 系统路径/环境变量操作
from dotenv import load_dotenv  # 环境变量加载器
from langchain_openai import ChatOpenAI  # 大模型接口# ====================== 模块2:环境配置与模型初始化 ======================
load_dotenv()  # 从.env文件加载环境变量(需确保文件存在)# 千问大模型客户端配置
qwen = ChatOpenAI(model="qwen-max",  # 指定模型版本api_key=os.getenv("DASHSCOPE_API_KEY"),  # 从环境变量读取API密钥openai_api_base="https://dashscope.aliyuncs.com/compatible-mode/v1"  # 阿里云适配接口
)# ======================== 模块3:工具定义与注册 ========================
# 使用@tool装饰器定义可调用工具@tool
def multiply(first_int: int, second_int: int) -> int:"""对两个整数执行乘法运算"""return first_int * second_int@tool
def add(first_int: int, second_int: int) -> int:"""对两个整数执行加法运算"""return first_int + second_int@tool
def get_current_weather(location: str, unit: str) -> str:"""获取指定位置的天气信息"""return f"It's 20 {unit} in {location}"# 工具注册列表(后续可扩展新工具)
tools = [multiply, add, get_current_weather]# ======================= 模块4:提示模板构建 =======================
# 生成工具描述文本(注意:此处转义可能导致变量误识别)
rendered_tools = render_text_description(tools).replace("{", "{{").replace("}", "}}")# 系统提示词模板(含可能的问题点)
system_prompt = f"""你是一个可以访问以下工具的助手。可用工具:
{rendered_tools}响应时必须使用严格JSON格式:
{{{{"tool": <工具名称>,"tool_input": <参数对象>,"message": <附加消息>
}}}}"""  # 注意:此处四层括号可能导致转义问题# 构建完整对话模板
prompt = ChatPromptTemplate.from_messages([("system", system_prompt),  # 系统角色消息(定义规则)("user", "{input}")         # 用户输入占位符
])# ======================== 模块5:执行链定义 ========================
# 构建处理流水线:模板 → 模型 → JSON解析
chain = prompt | qwen | JsonOutputParser()# ====================== 模块6:示例请求处理 ======================
# 处理天气查询请求
res = chain.invoke({"input": "内蒙古今天的天气"})# 手动解析演示(实际代码中可删除)
JsonOutputParser().parse('''{"tool": "get_current_weather","tool_input": {"location": "南京", "unit": "Celsius"},"message": ""
}''')# ===================== 模块7:工具调用执行器 =====================
# 创建工具名称到对象的映射字典
tool_map = {tool.name: tool for tool in tools}def tools_call(model_output):"""执行工具调用的统一入口参数:model_output - 模型输出的结构化字典"""# 根据工具名称获取工具对象chosen_tool = tool_map[model_output["tool"]]# 执行工具调用(建议添加异常处理)return chosen_tool.invoke(model_output["tool_input"])# 执行并打印结果
print(tools_call(res))  # 示例输出:It's 20 Celsius in 内蒙古

运行结果

It's 20 c in 内蒙古

http://www.dtcms.com/wzjs/457926.html

相关文章:

  • 网站顶部伸缩广告在线网站排名工具
  • 先做网站还是做APP上海优化网站公司哪家好
  • 彩票自己开盘做网站建站公司哪个好
  • 国外web设计网站互联网广告推广是什么
  • b2c的电子信息网站搜狐财经峰会
  • 龙岩做网站设计公司如何建立独立网站
  • 淘宝买cdk自己做网站搜索网站排行
  • 公众号怎么制作模版seo关键词排名优化软件
  • 黑白灰 网站直播:韩国vs加纳直播
  • wordpress简单易懂的网站seo网站推广是什么
  • 做一网站要什么软件收录网站排名
  • 北京室内设计公司前十名seo对网店推广的作用有哪些
  • 新潮远网站建设如何优化关键词搜索
  • o2o网站建设新闻寰宇seo
  • 网站建设制作博走竞价托管咨询微竞价
  • 广州外贸b2c网站建设网络营销前景和现状分析
  • 怎么做网站小图标达州seo
  • 公众平台如何做网站免费推广引流平台
  • 旅游景区网站建设规划百度的推广广告
  • 鞍山网站开发青岛百度网站排名优化
  • 手机网站地址百度快照什么意思
  • 爱心建站网友情链接怎么做
  • 英文购物网站模板下载宁波网站推广公司价格
  • 山东网站建设企业网络广告的形式
  • 公司外文网站制作seo网课培训
  • 兰州政府网站建设淘宝标题优化网站
  • 做网站App价格多少南通百度seo代理
  • 广西茶叶网站建设成都最新动态
  • seo优化流程新乡seo顾问
  • 纯css3响应式网站模板设计本网站