新闻详情

新闻详情

首页 / 资讯中心 / 详情

【LLM】Langchain框架开发应用总结

发布时间:2026/11/15 21:11:06来源:尧图网络
【LLM】Langchain框架开发应用总结
Langchain 常用组件以及包含的子模块常用组件OpenAI langchain-openai Downloads per month PyPI - Latest version[AzureChatOpenAI,AzureOpenAI,AzureOpenAIEmbeddings,ChatOpenAI,OpenAI,OpenAIEmbeddings,__all__,__builtins__,__cached__,__doc__,__file__,__loader__,__name__,__package__,__path__,__spec__,chat_models,custom_tool,data,embeddings,llms,tools]tools1. 直接是函数的形式只能由Agent自主决策调用# 工具定义defget_weather(city:str)-str:获取指定城市的实时天气信息 模拟天气数据实际项目中调用天气 API 这个工具可以查询中国主要城市的天气情况包括温度、天气状况和空气质量。 Args: city: 城市名称支持北京、上海、成都等 Returns: 包含天气详情的字符串 weather_database{北京:{condition:晴天,temp_range:15-25°C,aqi:优,humidity:45%,wind:东南风2级,suggestion:适合户外活动,icon:☀️},上海:{condition:多云,temp_range:18-28°C,aqi:良,humidity:65%,wind:东风3级,suggestion:空气质量良好,icon:⛅},成都:{condition:多云,temp_range:16-24°C,aqi:中,humidity:75%,wind:无持续风向1级,suggestion:空气质量一般,icon:⛅}}ifcitynotinweather_database:returnf❌ 抱歉暂时无法查询{city}的天气信息。\n支持的城市北京、上海、成都dataweather_database[city]resultf{data[icon]}{city}天气预报 ━━━━━━━━━━━━━━━━━━━━━━ • 天气状况{data[condition]}• 温度范围{data[temp_range]}• 空气质量{data[aqi]}• 湿度{data[humidity]}• 风力{data[wind]}• 建议{data[suggestion]}━━━━━━━━━━━━━━━━━━━━━━ 数据更新时间{datetime.now().strftime(%Y-%m-%d %H:%M)}returnresult.strip()# 在agent中传入工具a_gentcreate_agent(modelllm,#agentAgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION,#verboseTrue,toolstools,system_prompt你是一个周内助手能自动分析输入需求自动调用对应工具精准查询并按优好的方式返回回答。,)inputs{messages:[{role:user,content:成都现在的天气如何}]}resulta_gent.invoke(inputs)# 使用函数作为tool时只能使用agent自主调用final_messageresult[messages][-1]print(f查询结果{final_message.content})使用函数作为tool时只能使用agent自主调用2. 使用tool装饰器使用装饰器可以直接通过tools方法名通过.invoke(参数)调用fromlangchain_core.toolsimporttooltooldefget_current_time(timezone:strAsia/Shanghai)-str:获取当前时间和日期 Args: timezone: 时区默认为 Asia/Shanghai北京时间 Returns: 格式化的时间信息 nowdatetime.now()weekdays[一,二,三,四,五,六,日]weekdayweekdays[now.weekday()]resultf 当前时间信息 ━━━━━━━━━━━━━━━━━━━━━━ 日期{now.year}年{now.month}月{now.day}日 星期星期{weekday}⏰ 时间{now.strftime(%H:%M:%S)} 时区{timezone}━━━━━━━━━━━━━━━━━━━━━━ returnresult.strip()# tool装饰器方法测试resultget_current_time.invoke(北京)print(result)# 输出: 晴天25°C# 查看工具信息print(f工具名称:{get_current_time.name})print(f工具描述:{get_current_time.description})print(f参数结构:{get_current_time.args})3. 复杂的装饰器fromlangchain_core.toolsimporttoolfromtypingimportOptionaltooldefsearch_database(query:str,category:Optional[str]None)-str: 在数据库中搜索信息 Args: query: 搜索关键词 category: 可选的分类过滤器如科技、健康、教育 database{科技:[人工智能正在改变世界,5G技术的应用],健康:[健康饮食的重要性,运动与长寿的关系],教育:[在线学习的趋势,终身学习的价值]}results[]ifcategoryandcategoryindatabase:foritemindatabase[category]:ifquery.lower()initem.lower():results.append(f[{category}]{item})else:forcat,itemsindatabase.items():foriteminitems:ifquery.lower()initem.lower():results.append(f[{cat}]{item})ifresults:return找到以下结果:\n\n.join(results)else:returnf没有找到关于 {query} 的结果4. 需要更多参数控制时fromlangchain_core.toolsimportBaseToolfrompydanticimportBaseModel,FieldfromtypingimportType# 定义输入参数结构classCalculatorInput(BaseModel):left_number:intField(description运算符左侧数字如 1)operator:strField(description二目运算符如 /-/*/%)right_number:intField(description运算符右侧数字如 2)classCalculator2D(BaseTool):name:strtwo-dimensional operation calculatordescription:str执行二目数学计算args_schema:Type[BaseModel]CalculatorInputdef_run(self,left_number:int,operator:str,right_number:int)-str:同步执行try:expressionf{left_number}{operator}{right_number}resulteval(expression)returnf计算结果:{expression}{result}exceptExceptionase:returnf计算错误:{str(e)}asyncdef_arun(self,left_number:int,operator:str,right_number:int)-str:异步执行可选实现expressionf{left_number}{operator}{right_number}returnself._run(expression)# 使用calcCalculator2D()resultcalc.invoke({left_number:123,operator:,right_number:456})print(result)模型初始化方法from langchain_openai import ChatOpenAIllm ChatOpenAI(model“deepseek-chat”,api_keyos.environ.get(‘DEEPSEEK_API_KEY’),base_url“https://api.deepseek.com”,)from langchain.chat_models import init_chat_modelmodel init_chat_model(“claude-sonnet-4-5-20250929”,temperature0.5,timeout10,max_tokens1000)2025年12月草稿
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/15 4:54:16

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/15 2:04:12

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/14 10:11:15

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/14 17:14:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/14 16:35:50

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/15 4:06:36

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉