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

LangChain 入门

LangChain 简介

LangChain是一个用于开发由大型语言模型驱动的应用程序的框架。它旨在帮助开发者更高效地构建基于LLM的复杂应用,通过提供模块化和标准化的工具链来简化开发流程。

LangChain自身并不开发LLMs,它的核心理念是为各种LLMs实现通用的接口,把LLMs相关的组件“链接”在一起

主要功能

  • Prompts:优化提示词(提示词工程)
  • Models:调用各类模型
  • History:管理会话历史记录(记忆)
  • Indexes:管理和分析各类文档
  • Chains:构建功能的执行链条
  • Agent:构建智能体

LangChain安装

pip install langchain langchain-community dashscope chromadb

如果使用本地Ollama托管部署的模型 还需要安装Ollama支持包

pip install langchain-ollama

安装较慢建议使用清华镜像源

pip install langchain langchain-community dashscope chromadb langchain-ollama -i https://pypi.tuna.tsinghua.edu.cn/simple
  • langchain: 核心包
  • langchain-community: 社区支持包,提供了更多第三方模型调用(如阿里千问模型需要这个包)
  • dashscope:阿里云通义千问的Python SDK
  • chromadb: 轻量向量数据库(RAG需要)

模型组件 Models

LangChain目前支持三种类型的模型:LLMs(大语言模型)、Chat Models(聊天模型)、Embedding Models(嵌入模型)

  • LLMs:是技术范畴的统称,指基于大参数量、海量文本训练的Transform架构模型,核心能力是理解和生成自然语言,主要服务于文本生成场景
  • 聊天模型:是应用范畴的细分,是专为对话场景优化的LLMs,核心能力是模拟人类对话的轮次交互,主要服务于聊天场景
  • 文本嵌入模型:文本嵌入模型接收文本作为输入,得到文本的向量

调用示例
需要注意,要提前配置好环境变量,环境变量名称为DASHSCOPE_API_KEY 值为百炼平台创建的APIKey,与使用OpenAI使用的API_Key相同

另外qwen3或3.5系列模型为聊天模型,使用Tongyi()接口调用的是LLMs模型接口

from langchain_community.llms.tongyi import  Tongyi# 需要在环境变量中设置API Key  DASHSCOPE_API_KEY# 实例化模型  不能使用qwen3或3.5系列模型, 因为qwen3和3.5为聊天模型 qwen-max或qwen-plus为LLMs模型
llm = Tongyi(model="qwen-plus")# 调用invoke向模型提问
res = llm.invoke(input="讲个笑话")print(res)

调用成功,可以得到结果
image

调用本地Ollama模型

from langchain_ollama import OllamaLLMllm = OllamaLLM(model="qwen3:4b")res = llm.invoke(input="讲个笑话")print(res)

模型的流式输出

如果需要流式输出结果,需要将模型的invoke方法改为stream方法即可

  • invoke方法:一次性返回完整结果
  • stream方法:逐段返回结果,流式输出
from langchain_community.llms.tongyi import Tongyillm = Tongyi(model="qwen-plus-2025-12-01")res = llm.stream(input="你是谁,简单说一下")for chunk in res:print(chunk, end="", flush=True)

聊天模型 Chat Models

聊天消息包含下面几种类型,使用时需要按照约定传入合适的值:

  • AIMessage:就是AI传输的消息,可以是针对问题的回答。(OpenAI库中的assistant角色)
  • HumanMessage:人类消息就是用户消息。(OpenAI库中的user角色)
  • SystemMessage:可以用于指定模型具体所处的环境和背景,如角色扮演。可以在这里给出具体的指示,比如“作为一个代码专家”,或“返回json格式”(OpenAI库中的system角色)
from langchain_community.chat_models.tongyi import ChatTongyi
from langchain_core.messages import HumanMessage,SystemMessage,AIMessage# 初始化模型
chat = ChatTongyi(model="qwen3.5-27b")# 构造对话消息
messages = [SystemMessage(content="你是一个唐朝诗人"),HumanMessage(content="写一首唐诗"),
]# 流式输出
for chunk in chat.stream(input=messages):print(chunk.content, end="", flush=True)

简写形式
image

文本嵌入模型 Embeddings Models(文本嵌入模型)

Embeddings Models嵌入模型的特点: 将字符串作为输入,返回一个浮点数列表(向量)

在NLP中,Embedding的作用就是将数据进行文本向量化。

from langchain_community.embeddings import DashScopeEmbeddings# 初始化嵌入模型对象 默认使用模型是 text-embedding-v1
embed = DashScopeEmbeddings()# 生成文本的嵌入向量(用于生成单条文本向量表示)
print(embed.embed_query("Hello World!"))
# 生成文本的嵌入向量(用于生成多条文本向量表示)
print(embed.embed_documents(["Hello World!", "你好,世界!"]))

总结

image

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

相关文章:

  • AI为什么会撒谎——一个律师被ChatGPT骗了
  • 俗语俗话 --- 什么是IPP协议
  • C++学习(9)(类和对象(2)多态 虚函数)
  • 跟我学C++中级篇—标准库中的CAS接口分析
  • 告别“全自动”幻觉!Dify v1.13.0 发布,定义企业级 AI 落地的人机协作标准
  • 落地即实用|企业健身房器材配置方案定制适配,拒绝无效投入 - 冠顶工业设备
  • oeasy Python 102 三向_旋转head_航向轴_pitch_俯仰轴_bank_横滚轴
  • [拆解LangChain执行引擎]支持自然语言查询的长期存储
  • CF555E Case of Computer Network TJ
  • 告别售后乱象|BH售后服务中心认准原厂保障更省心 - 冠顶工业设备
  • pip在venv环境安装依赖包的问题
  • 深入解析Java字符串:从不可变性到高效构建,全面掌握String核心操作
  • 鸿蒙应用开发深度探索:从基础到实战与面试准备
  • 产后焕新,温柔自愈|武汉普拉提产后修复,陪宝妈重拾轻盈体态 - 冠顶工业设备
  • 数据库-分类介绍
  • 2026年2月佛山新中式家具工厂,餐厅系列家具材质对比解析 - 品牌鉴赏师
  • 股市赚钱学概论:答疑:凭什么认为股票能涨
  • 2026年调味羊肉馅/牛肉馅厂家信誉综合参考 - 品牌宣传支持者
  • 合规好用的干式细胞复苏仪厂商推荐,上海地区靠谱的有哪些 - 工业品网
  • 想找靠谱的汽车脚垫制造厂,广州车百强值得推荐吗? - 工业推荐榜
  • 唐山舒同眼视光中心近视矫正价格多少,是否在可接受范围? - 工业设备
  • 深度学习Yolov8模型 训练无人机视角罂粟检测数据集 通过训练出的无人机航拍罂粟检测数据集权重 建立基于深度学习Yolov8罂粟识别检测系统
  • 通过aws rust sdk 连接oss
  • 20260206动态树LCT - Link
  • 最新中国十大品牌全案公司权威排行榜(附选型指南) - 品牌排行榜
  • 食品品牌全案公司推荐:新消费专精+爆品战略(机构对比) - 品牌排行榜
  • 盘点常用的满意度调研网站有哪些:头部机构汇总(选型指南) - 品牌排行榜
  • 推荐下江苏专业做流体仿真服务的公司?2026原创优选指南 - 冠顶工业设备
  • 肌肉劳损吃保健品哪个品牌好?2026专业品牌测评(选购指南) - 品牌排行榜
  • 深圳尚米网络|简历AI解析+岗位自动评估,告别手动比对 - 搭贝