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

《简单了解并构建LangChain》

一、LangChain是什么

LangChain 是一个用于快速开发大语言模型(LLM)应用的开源编程框架,核心作用是把大模型(如 GPT、Llama、文心一言等)与外部数据、工具、服务连接起来,让模型能处理复杂、有上下文、能落地的实际任务。

1. 核心定位

LangChain 不训练模型、不替代模型,而是增强模型、连接模型、编排模型:

  • 让大模型用上外部数据(文档、数据库、API、网页)
  • 让大模型记住上下文(多轮对话、长流程)
  • 让大模型调用工具(搜索、计算、代码、爬虫、业务接口)
  • 让大模型做规划、分步骤、做决策(Agent 智能体)

2. 典型用途(你能用它做什么)

  • 私有知识库问答(企业文档、产品手册、法律 / 医疗资料)
  • 智能聊天机器人(带记忆、能查资料)
  • 代码助手 / 自动编程
  • 数据分析与自然语言查询(用中文问数据库)
  • 内容生成、摘要、翻译、信息抽取
  • 自动化工作流、AI 助手、智能客服
  • 自主决策 Agent(能上网、查数据、做任务)

3. 为什么需要它?

个人理解:

只调用大模型ai只会简单输入数据,而运用langchain可以实现特定环境用法,或者我可以让ai搜集数据进行比对输出最优解,langchain就是为了提高ai的使用上限的
比如:

  • 不用 LangChain:
    AI 只能回答 “苹果是什么”
  • 用 LangChain:
    AI 可以去查今年所有苹果价格 → 对比产地、销量、口碑 → 算出性价比最高的一款 → 给你购买建议

更官方一点:

原生 大模型(LLM) 可能会存在一些问题,例如将其当作搜索引擎去使用,LLM 生成的答案可能要比其他搜索引擎查到的答案更符合你的预期,但要是在复杂的场景下使用,如将 LLM 嵌⼊应用程序时却遭遇了全新难题:

  • 简单提示词(Prompt)得到的答案经常出现幻觉?
  • 提示词结构是否可以统⼀规范?
  • 如何实现开发过程中大模型的轻松、灵活切换?
  • 大模型输出是非结构化的,怎样与要求结构化数据的程序接口交互?
  • 如何克服预训练模型知识陈旧的问题,引入实时更新?
  • 如何连接模型与外部工具或系统,执行具体任务?

LangChain 框架的核心目标就是应对这些挑战。它通过将自然语言处理流程拆解为标准化组件,让开发者能够自由组合并高效定制工作流。

二、申请 API key 并配置环境变量

1. 这里使用阿里的千问进行演示:获取api

  1. 创建属于自己的api
  2. 通过兼容 OpenAI 格式的 Chat API 调用千问模型
importosfromopenaiimportOpenAI client=OpenAI(# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx"api_key=os.getenv("DASHSCOPE_API_KEY"),base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",)completion=client.chat.completions.create(# 模型列表:https://help.aliyun.com/zh/model-studio/getting-started/modelsmodel="qwen-plus",messages=[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"你是谁?"},])print(completion.model_dump_json())

2. LangChain 软件包安装

pipinstalllangchain
pipinstalllangchain-core
pipinstalllangchain-openai
pipinstalllangchain-community

3. 定义大模型

  1. 安装 OpenAI 包
pipinstall-Ulangchain-openai
  1. 完整代码
fromlangchain_core.messagesimportSystemMessage,HumanMessagefromlangchain_openaiimportChatOpenAI model=ChatOpenAI(model="qwen-plus",api_key='sk-7209f28da070436f8bc85366d75de3fb',base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",)messages=[SystemMessage(content="You are a helpful assistant."),HumanMessage(content='你是谁')]result=model.invoke(messages)print(result)#result 不是纯字符串,而是一个对象

messages是一个对话列表(chat history)

content=‘你好!我是通义千问(Qwen),阿里巴巴集团旗下的超大规模语言模型。我能够回答问题、创作文字,比如写故事、写公文、写邮件、写剧本、逻辑推理、编程等等,还能表达观点,玩游戏等。如果你有任何问题或需要帮助,欢迎随时告诉我!😊’ additional_kwargs={‘refusal’: None} response_metadata={‘token_usage’: {‘completion_tokens’: 66, ‘prompt_tokens’: 21, ‘total_tokens’: 87, ‘completion_tokens_details’: None, ‘prompt_tokens_details’: {‘audio_tokens’: None, ‘cached_tokens’: 0}}, ‘model_provider’: ‘openai’, ‘model_name’: ‘qwen-plus’, ‘system_fingerprint’: None, ‘id’: ‘chatcmpl-86798ed2-f290-9281-b399-5e47eb28f8fc’, ‘finish_reason’: ‘stop’, ‘logprobs’: None} id=‘lc_run–019d85dd-f053-7030-9ea6-d09335fbbcb6-0’ tool_calls=[] invalid_tool_calls=[] usage_metadata={‘input_tokens’: 21, ‘output_tokens’: 66, ‘total_tokens’: 87, ‘input_token_details’: {‘cache_read’: 0}, ‘output_token_details’: {}}

http://www.jsqmd.com/news/673411/

相关文章:

  • jQuery 遍历
  • EM 24ai 运维必知:一招搞定用户密码重置!
  • Golang Redis Pipeline如何用_Golang Redis Pipeline教程【完整】
  • 从零学习Kafka:ZooKeeper vs KRaft
  • 告别PS!Mulimg Viewer图像拼接保姆级教程:从实验数据到期刊级Figure全流程
  • 深开鸿的开源鸿蒙OS,能不能用云固件的模式来快速安装?超多截图,有故事。第一集,故事未完,还有第二集。
  • 零基础玩转all-MiniLM-L6-v2:5分钟搞定语义搜索环境搭建
  • 如何利用backdoor-apk实现安卓应用的远程控制
  • 谢菲尔德大学发现极限压缩AI模型时,初始化才是真正的拦路虎
  • 制造业、质检类20种业务场景,SQL精写技巧
  • 从理论到代码:我是如何复现EVO的ATE/RPE计算并与官方结果对齐的(含避坑点)
  • 从宁德新能源面试官视角,拆解Halcon/OpenCV工程师的硬核技能树(附避坑指南)
  • Workrave终极指南:告别重复性劳损的完整解决方案
  • DebateLab-个人博客(1)后端总体架构与比赛状态机设计
  • 魔兽争霸3终极优化指南:如何用WarcraftHelper解决老游戏兼容性问题
  • C语言学习笔记5
  • 3分钟学会ncmdump:终极网易云音乐NCM文件解密转换指南
  • Go语言如何做协程调度_Go语言协程调度原理教程【实用】
  • HTML怎么实现记住我功能_HTML checkbox保存登录状态【方法】
  • 想给游戏加个BGM?试试用C和minimp3实现一个轻量级跨平台音频播放模块
  • Qwen3.5-2B低门槛部署指南:无Linux经验用户也能完成的5步流程
  • 避坑指南:沁恒CH582/CH583 Sleep模式下RTC唤醒的中断与主频那些事儿
  • 阿里通义实验室“变形金刚“:当AI探索助手学会了按需切换记忆模式
  • SAP PS 项目预算按 “成本计划→预算分配→执行监控→调整→结算→关闭” 的阶段推进,核心表为 BPGE/BPJA(总计 / 年度预算)、BPBE(行项目)、RPSCO(汇总成本 / 预算),配合
  • 别再死记硬背了!用Python手把手教你构建NLP中的共现矩阵(附完整代码与SVD降维实战)
  • 终极风扇控制指南:5分钟让Windows电脑安静如新的完整教程
  • Gemma-3-270m入门指南:从模型选择到提问技巧的完整新手教学
  • 嵌入式BI革命:SaaS/ISV厂商如何用衡石科技快速上线数据分析能力
  • Debian 12.10 root 登录失败,两步解决!
  • AngularJS ng-model 指令