LangChain框架入门:概念介绍及环境配置
一、langchain框架及相关概念
1、大语言模型
LLM(大语言模型)的本质,是基于 Transformer 架构中的解码器部分构建的生成式模型,核心逻辑很简单 —— 根据上文输入的 token 序列,预测下一个最可能的 token,进而实现文本生成、补全等基础功能,是所有 AI 生成应用的底层核心。
2、chat model
而 Chat Model(聊天模型),则是大语言模型的场景化优化版本,我们日常在手机上使用的豆包、千问等智能对话工具,都属于这类模型。它与基础 LLM 的核心区别在于,更适配多轮对话场景,具备原生的上下文记忆能力:比如我们直接调用 OpenAI 的基础 API 接口时,模型无法记住上一轮的对话内容,每次调用都是独立的 “单次交互”;但在豆包等聊天模型中,我们可以连续提问、追问,模型能关联历史交互信息,实现连贯、自然的沟通体验,这就是 Chat Model 针对对话场景的优化所在。
3、langchain
我们今天要重点讲的 LangChain 框架是一套专门用于开发 LLM 相关应用的开源工具集。它的核心价值,就是把 “调用模型、编写提示词、解析输出结果、管理对话记忆” 等复杂且重复的开发流程,拆分成一个个标准化、可复用的 “即插即用” 组件。这样一来,我们无需从零造轮子,就能快速搭建实用的 AI 应用,高效解决开发中常见的「调用大模型但输出格式混乱」「重复编写提示词导致效率低下」「需要少样本引导模型输出符合预期结果」等痛点。
二、前置准备
1.1 环境搭建
我使用的requirement.txt依赖:
aiofiles==23.2.1
aiohttp==3.9.1
aiosignal==1.3.1
altair==5.2.0
annotated-types==0.6.0
anyio==3.7.1
async-timeout==4.0.3
attrs==23.1.0
beautifulsoup4==4.12.2
blinker==1.7.0
Brotli==1.1.0
cachetools==5.3.2
certifi==2023.11.17
charset-normalizer==3.3.2
click==8.1.7
dataclasses-json==0.6.3
distro==1.8.0
duckduckgo-search==3.9.9
exceptiongroup==1.2.0
frozenlist==1.4.0
gitdb==4.0.11
GitPython==3.1.40
greenlet==3.0.1
h11==0.14.0
h2==4.1.0
hpack==4.0.0
httpcore==1.0.2
httpx==0.25.2
hyperframe==6.0.1
idna==3.6
importlib-metadata==6.8.0
Jinja2==3.1.2
jsonpatch==1.33
jsonpointer==2.4
jsonschema==4.20.0
jsonschema-specifications==2023.11.2
langchain==0.1.9
langchain-community==0.0.24
langchain-core==0.1.26
langchain-openai==0.0.7
langsmith==0.1.6
lxml==4.9.3
markdown-it-py==3.0.0
MarkupSafe==2.1.3
marshmallow==3.20.1
mdurl==0.1.2
multidict==6.0.4
mypy-extensions==1.0.0
numpy==1.26.2
openai==1.12.0
orjson==3.9.15
packaging==23.2
pandas==2.1.3
Pillow==10.1.0
protobuf==4.25.1
pyarrow==14.0.1
pydantic==2.5.2
pydantic_core==2.14.5
pydeck==0.8.1b0
Pygments==2.17.2
python-dateutil==2.8.2
pytz==2023.3.post1
PyYAML==6.0.1
referencing==0.31.1
regex==2023.12.25
requests==2.31.0
rich==13.7.0
rpds-py==0.13.2
six==1.16.0
smmap==5.0.1
sniffio==1.3.0
socksio==1.0.0
soupsieve==2.5
SQLAlchemy==2.0.23
streamlit==1.31.1
tenacity==8.2.3
tiktoken==0.6.0
toml==0.10.2
toolz==0.12.0
tornado==6.4
tqdm==4.66.1
typing-inspect==0.9.0
typing_extensions==4.8.0
tzdata==2023.3
tzlocal==5.2
urllib3==2.1.0
validators==0.22.0
wikipedia==1.4.0
yarl==1.9.3
zipp==3.17.0
这里我用以上版本的langchain作为环境演示langchain框架常见的用法。
首先通过requirement.txt安装所需依赖,建议使用虚拟环境(避免版本冲突),命令如下:
pip install -r requirements.txt
1.2 API Key配置(避坑重点)
申请api的操作在通过api调用模型的博客中以做介绍。
本文使用阿里通义千问(qwen-plus)模型,需先获取DashScope API Key(获取地址),推荐用环境变量管理(避免硬编码泄露):
-
Windows:右键「此电脑」→「属性」→「高级系统设置」→「环境变量」,新建变量名
DASHSCOPE_API_KEY,值为你的API Key; -
设置后重启IDE/终端,确保环境变量生效。
更多推荐


所有评论(0)