这是一篇langchain0.3框架helloworld级别的入门教程,包含了python版本的选型、包下载以及helloworld代码案例。
一、langchain简介
langchain是一个用于开发由大语言模型(LLM,Large Language Model)驱动的应用程序开发框架,被业界称为大语言模型开发的“瑞士军刀”:langchain有大量的组件(components)以及第三方集成框架,可以快速实现业务功能开发。
需要注意的是,实际上langchain家族有三种框架:langchain、langsmith、langgraph
- langchain:langchain的核心就是"chain",也就是链式调用,还包含了agent、RAG技术等相关的核心API
- langsmith:可以用langsmith监控和评估应用程序,观察应用程序运行的细节。
- langgraph:它是一种编排框架,其核心就是“Agent”,相对于langchain将各种组件编排为一种“流线型”架构,langgraph将各种组件编排为一种图(graph)状架构,能够解决完成更复杂的任务。

二、版本选择
1、langchain版本选择
langchain是一个很新的框架,这两年随着大语言模型的兴起而兴起,版本迭代到现在(2025年3月28日),也才迭代到0.3.21版本,所以既然要学习就学习最新的,可以到 https://pypi.org/ 网站查看该包的发布情况

2、python版本选择
python版本应当适配选择的langchain版本,点击上图中的0.3.21版本详情页,在左下角可以看到对python版本的要求

python版本应当大于等于3.9,我这里选择了3.11.11,为什么选择这个版本呢?因为另外一个组件langgraph,在其文档中说明了使用3.11版本最适合
https://academy.langchain.com/courses/take/intro-to-langgraph/texts/58238105-getting-set-up

最后,要使用conda新建python运行环境,防止学习的过程中把环境搞乱了,conda的安装和使用可以参考:python版本管理神器:conda
三、Hello,World!
为了能够通过代码调用OpenAI服务,需要申请OpenAI的秘钥key。当然像是国内开源的大模型基本上也都兼容OpenAI的接口形式,所以也可以申请国内大模型的ApiKey替代,代码中可以显示指定使用的Key,但是每次指定都不方便,还容易泄露key,所以一般是使用环境变量的方式指定key。
1、环境变量设置
设置环境变量:
变量名 | 变量值 |
---|---|
OPENAI_API_BASE |
默认的OpenAI的值是https://api.openai.com ,国内的比如硅基流动则是https://api.siliconflow.cn ,其它的服务提供商有可能带有/v1 后缀,如果代码运行报错,可以尝试加上/v1 后缀试试。 |
OPENAI_API_KEY |
申请的秘钥。 |
设置完成环境变量后,可以在命令行中查看是否设置生效:
echo %OPENAI_API_BASE%
或者可以通过set
命令查看所有的环境变量列表。
需要注意的是,如果修改了环境变量的值,webstorm的命令行有可能有缓存导致报错,这时候需要重启webstorm就可以解决缓存问题,如果不行,就反复重启几次。
2、安装依赖
假设读者已经使用conda创建了新的python开发环境langchain0.3.21
,并且应用到了webstorm,则在webstorm的终端环境输出python --version
,则有如下显示

接下来在终端中运行命令:
pip install langchain[openai]==0.3.21
安装相关依赖(可能由于网络问题会比较慢,读者自行解决)
3、Hello,World!
新建一个Python文件,运行如下代码
import getpass
import os
if not os.environ.get("OPENAI_API_KEY"):
os.environ["OPENAI_API_KEY"] = getpass.getpass("Enter API key for OpenAI: ")
from langchain.chat_models import init_chat_model
model = init_chat_model("gpt-4o", model_provider="openai")
resp = model.invoke("Hello, world!")
print(type(resp))
print(resp.content)
if __name__ == '__main__':
pass
输出如下所示:
<class 'langchain_core.messages.ai.AIMessage'>
Hello! How can I assist you today?
这样,一个HelloWorld级别的代码示例就运行成功了。
END.
注意:本文归作者所有,未经作者允许,不得转载