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

南浔区住房和城乡建设网站怎么用jsp做网站

南浔区住房和城乡建设网站,怎么用jsp做网站,图片搜索引擎,品牌网站开发特点目录 示例代码 运行结果 功能:根据用户输入自动选择数学计算/天气查询工具处理 ​​"用户输入 → 意图分析 → 工具调用 → 结果返回"​​ 库名解析:【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/a/514212.html

相关文章:

  • 深圳网站建设 设计首选深圳市苍南配网设计
  • 广西高端网站建设门户网站集群建设方案
  • 长沙网站开发推荐无锡网站怎么优化排名
  • 建网站 免费网架加工安装一体的公司
  • wordpress多站点问题做网站自己申请域名还是对方
  • 装修素材图片都从什么网站找国内近期新闻热点大事件
  • 内江网站建设公司莆田专业建站公司
  • 表白制作网站wordpress 文章太多
  • 自己搭建视频播放网站网页设计是网站建设与管理的内容吗
  • 用linux系统怎么自己建设网站涪城网站建设
  • 摄像头监控设备企业网站模板.net网站开发程序员
  • 设计网站推荐 zoo哪个网站做简历免费
  • 网页设计类官网手机网站seo优化
  • DW怎么做电商网站网站建设技术服务费怎么入账
  • 旅游主题网站策划书wordpress需要mysql
  • 网站建设合同内容哪里可以兼职答题
  • 临汾做网站申请免费个人网站
  • 程序员必知的网站微信分销佣金是什么
  • 大学生婚恋网站策划书专业网站建设分类标准
  • 深圳模板建站平台莱芜在线论坛最新消息
  • h5效果展示网站wordpress后台不对劲
  • 做高仿表网站网站英文版怎么做
  • 合肥企业网站建设公司哪家好宁波建设局网站首页
  • 1元购网站建设防城港网络推广
  • 天津制作网站公司网站建设_
  • 网站建设属于应用软件吗网站建设的现状和未来
  • 山西网站建设免费网页网站设计制作
  • 广州 行业 网站建设iis网站数据库失败
  • 关于申请建设网站申请报告深圳刚刚突然宣布
  • 做五金有哪些网站推广如何上传网站到云服务器