AI创想

标题: LangChain 入门到实战全攻略:小白也能轻松掌握 [打印本页]

作者: xu0114    时间: 前天 09:05
标题: LangChain 入门到实战全攻略:小白也能轻松掌握
作者:CSDN博客
在AI应用开发领域,LangChain正以每周10万+下载量的势头成为最热门框架。本文将从零开始,带你掌握如何用LangChain快速构建智能客服、论文分析、数据分析三大实用AI工具,即使没有机器学习背景也能轻松上手!


1、什么是LangChain

LangChain 诞生于 2022 年,是一个用于开发由大型语言模型(LLMs)驱动的应用程序的强大框架。
它如同 “超级胶水”,可将大型语言模型与各类外部工具、数据相连,助力开发者轻松构建复杂智能应用。
相较于普通 LLM 应用,LangChain 具备以下优势:
2、核心概念与组件

3、LangChain的应用场景

一、智能问答与知识检索

利用 LangChain 连接知识库(如文档、数据库、网页等),让 LLM 基于特定领域知识回答问题,避免“幻觉”(生成错误信息)。
二、文本生成与创作辅助

借助 LLM 的生成能力,结合 LangChain 的工具调用和模板功能,提升文本创作效率。
三、自动化工作流与任务处理

通过 LangChain 的“链(Chains)”和“代理(Agents)”功能,将 LLM 与外部工具(如API、数据库、办公软件)结合,实现复杂任务的自动化。
四、客服与用户交互优化

构建智能化的客服系统,提升用户体验和服务效率。
五、教育与培训领域

辅助教学过程,提供个性化学习支持。
六、科研与学术辅助

帮助科研人员高效处理文献、分析数据和生成成果。
七、智能代理(AI Agents)开发

LangChain 的代理功能允许 LLM 根据目标自主决策、调用工具,实现“自主行动”。
4、Models组件

LangChain目前支持三种模型类型:LLMs、Chat Models(聊天模型)、Embeddings Models(嵌入模型)
4.1 LLMs (大语言模型)
  1. import os
  2. from langchain_community.llms import QianfanLLMEndpoint
  3. os.environ['QIANFAN_AK']="换成你自己的API KEY"
  4. os.environ['QIANFAN_SK']="换成你自己的SECRET KEY"
  5. llm =QianfanLLMEndpoint(model="ERNIE-Bot-turbo")
  6. res =llm("给我讲一下小马过河的故事")print(res)
复制代码
4.2 Chat Models(聊天模型 )
  1. import os
  2. from langchain_community.chat_models import QianfanChatEndpoint
  3. from langchain_core.messages import HumanMessage
  4. os.environ['QIANFAN_AK']="换成你自己的API KEY"
  5. os.environ['QIANFAN_SK']="换成你自己的SECRET KEY"
  6. chat =QianfanChatEndpoint(model="ERNIE-Bot-turbo")
  7. messages =[HumanMessage(content="给我讲一下小马过河的故事")]
  8. res =chat(messages)print(res)
复制代码
4.3 Embeddings Models(嵌入模型)
  1. import os
  2. from langchain_community.embeddings import QianfanEmbeddingsEndpoint
  3. os.environ['QIANFAN_AK']="换成你自己的API KEY"
  4. os.environ['QIANFAN_SK']="换成你自己的SECRET KEY"
  5. embed =QianfanEmbeddingsEndpoint()
  6. res1 = embed.embed_query('给我讲一下小马过河的故事')print(res1)
  7. # 打印结果:[0.039765920490026474,0.02263435162603855,-0.01889650709927082,....,]#res2= embed.embed_documents(['这是第一个测试文档','这是第二个测试文档'])#print(res2)
  8. # 打印结果:[[0.03977284952998161,0.022625437006354332,-0.01892162673175335,....,]]
复制代码
5、Prompts组件

Prompt是指当用户输入信息给模型时加入的提示,这个提示的形式可以是zero-shot或者 fewshot等方式,目的是让模型理解更为复杂的业务场景以便更好的解决问题。
提示模板:如果你有了一个起作用的提示,你可能想把它作为一个模板用于解决其他问题,LangChain就提供了PromptTemplates组件,它可以帮助你更方便的构建提示。
5.1 zero-shot提示方式
  1. import os
  2. from langchain_core.prompts import PromptTemplate
  3. from langchain_community.llms import QianfanLLMEndpoint
  4. os.environ['QIANFAN_AK']="换成你自己的API KEY"
  5. os.environ['QIANFAN_SK']="换成你自己的SECRET KEY"
  6. # 定义模板
  7. template="给我出一道关于{subject}的题目"
  8. prompt =PromptTemplate(input_variables=["subject"],template=template)
  9. prompt_text = prompt.format(subject="语文")
  10. llm =QianfanLLMEndpoint()
  11. result =llm(prompt_text)print(result)
复制代码
5.2 few-shot提示方式
  1. import os
  2. from langchain_core.prompts import PromptTemplate
  3. from langchain_core.prompts import FewShotPromptTemplate
  4. from langchain_community.llms import QianfanLLMEndpoint
  5. os.environ['QIANFAN_AK']="换成你自己的API KEY"
  6. os.environ['QIANFAN_SK']="换成你自己的SECRET KEY"
  7. examples =[{"word":"大","antonym":"小"},{"word":"上","antonym":"下"},{"word":"左","antonym":"右"},]
  8. example_template ="""
  9. 单词:{word}
  10. 反义词:{antonym}\\n
  11. """
  12. # 实例化PromptTemplate对象
  13. example_prompt =PromptTemplate(input_variables=["word","antonym"],template=example_template,)
  14. # 实例化FewShotPromptTemplates
  15. few_shot_prompt =FewShotPromptTemplate(
  16. examples=examples, # 模型训练的案例
  17. example_prompt=example_prompt, # 样例的模板
  18. prefix="给出每个单词的反义词", # 提示的前缀
  19. suffix="单词: {input}\\n反义词:", # 提示的后缀
  20. input_variables=["input"], # 在few-shot当中定义的变量
  21. example_separator="\\n", # 样例之间都使用换行进行隔开
  22. )
  23. # 格式化文本
  24. prompt_text = few_shot_prompt.format(input="粗")
  25. llm =QianfanLLMEndpoint()print(llm(prompt_text))
复制代码
6、 Chains组件
  1. import os
  2. from langchain_community.llms import QianfanLLMEndpoint
  3. from langchain_core.prompts import PromptTemplate
  4. from langchain.chains import LLMChain
  5. os.environ['QIANFAN_AK']="换成你自己的API KEY"
  6. os.environ['QIANFAN_SK']="换成你自己的SECRET KEY"
  7. # 1. 定义模板
  8. template="给我出一道关于小学三年级{subject}的题目"
  9. prompt =PromptTemplate(input_variables=["subject"],template=template)
  10. # 2. 链条
  11. llm =QianfanLLMEndpoint()
  12. chain =LLMChain(llm=llm, prompt=prompt)
  13. # 3. 执行Chain
  14. result = chain.run("体育")print(f'result-->{result}')
复制代码
如果你想将第一个模型输出的结果,直接作为第二个模型的输入,还可以使用LangChain的SimpleSequentialChain, 代码如下:
  1. import os
  2. from langchain_core.prompts import PromptTemplate
  3. from langchain_community.llms import QianfanLLMEndpoint
  4. from langchain.chains import LLMChain, SimpleSequentialChain
  5. os.environ['QIANFAN_AK']="换成你自己的API KEY"
  6. os.environ['QIANFAN_SK']="换成你自己的SECRET KEY"
  7. llm =QianfanLLMEndpoint()
  8. # 创建第一条链
  9. template="给我出一道关于小学一年级{subject}的题目"
  10. subject_prompt =PromptTemplate(input_variables=["subject"],template=template,)
  11. first_chain =LLMChain(llm=llm, prompt=subject_prompt)
  12. # 创建第二条链
  13. template="给我出一道关于小学二年级{subject6}的题目"
  14. second_prompt =PromptTemplate(input_variables=["subject6"],template=template)
  15. second_chain =LLMChain(llm=llm, prompt=second_prompt)
  16. # 链接两条链,verbose=True可以显示推理过程
  17. overall_chain =SimpleSequentialChain(chains=[first_chain, second_chain],
  18. verbose=True) # verbose=True 可以显示链条的推理过程
  19. # 执行链,只需要传入第一个参数
  20. catchphrase = overall_chain.run("数学")print(catchphrase)
复制代码
7、Agents组件

在 LangChain 中 Agents 的作用就是根据用户的需求,来访问一些第三方工具(比如:搜索引擎 或者 数据库),进而来解决相关需求问题。
为什么要借助第三方库?
Agent代理
Toolkit工具包
Tool工具
AgentExecutor代理执行器
  1. # 现在我们实现一个使用代理的例子:假设我们想查询一下中国目前有多少人口?我们可以使用多个代理工
  2. 具,让Agents选择执行。
  3. # 需要安装依赖库 pip install wikipedia
  4. # 加载内置工具 llm-math 和 wikipedia
  5. import os
  6. from langchain_community.llms import QianfanLLMEndpoint
  7. from langchain.agents import load_tools, initialize_agent, AgentType
  8. from langchain_core.prompts import PromptTemplate
  9. os.environ['QIANFAN_AK']="换成你自己的API KEY"
  10. os.environ['QIANFAN_SK']="换成你自己的SECRET KEY"
  11. llm =QianfanLLMEndpoint(model="ChatGLM2-6B-32K")
  12. tools =load_tools(["llm-math","wikipedia"], llm=llm)
  13. agent =initialize_agent(tools=tools,
  14. llm=llm,
  15. agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
  16. verbose=True)
  17. prompt_template ="那个国家面积最大?"
  18. prompt = PromptTemplate.from_template(prompt_template)
  19. result = agent.run(prompt)print(result)
复制代码
如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
(, 下载次数: 0)


(, 下载次数: 0)


第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】







原文地址:https://blog.csdn.net/Z987421/article/details/150007250




欢迎光临 AI创想 (https://llms-ai.com/) Powered by Discuz! X3.4