在上一篇文章中,我们系统地了解了 LangChain 是什么、能做什么、核心模块有哪些,现在你可能有以下疑问:

  • 项目环境该怎么搭建?
  • 各个包之间有什么依赖关系?
  • 第一个 LangChain 应用应该从哪里写起?

本文将带你从零开始,搭建一个基于 LangChain 的 Python 开发环境,带你写出第一个 支持 OpenAI 模型的聊天机器人程序

一、LangChain包依赖关系

1.1 LangChain中的包

LangChain 框架被划分为多个独立包,用户可以根据实际需求自由选择所需模块,如果想要安装LangChain主包可以运行:

pip install langchain

LangChain主包虽然涵盖了框架的大部分功能,但其最大价值在于能够与各类模型提供商和主流数据库无缝集成,LangChain 主包本身并不包含这些第三方集成包的内容,下图表示了LangChain包之间的依赖关系。

langchain-core:除 langsmith 外,LangChain 中的其他所有包都依赖于该核心包,它提供了所有模块共享的基础类。

langchain:包含了langchain-core。

langchain-openai:OpenAI 相关工具的集成包

langchain-community:尚未独立拆分的第三方集成包。

langgraph:基于图的任务流程管理工具包,可以和LangChain无缝集成,也可以不使用LangChain单独安装

langsmith:LLM 应用的全生命周期管理平台,既可以与 LangChain 配合使用,也可以独立用于非 LangChain 的大模型应用场景。

二、项目搭建

2.1 Python环境

使用Python 版本为 3.10.11

python --version
Python 3.10.11

将pip的镜像源设置为腾讯云镜像,加快下载速度

pip config set global.index-url https://mirrors.cloud.tencent.com/pypi/simple
Writing to /Users/apple/.config/pip/pip.conf
pip config list
global.index-url='https://mirrors.cloud.tencent.com/pypi/simple'

2.2 创建虚拟环境

在开发 Python 项目时,首先创建项目文件夹:

mkdir langchain-study

创建虚拟环境,虚拟环境可隔离项目依赖,避免版本冲突

cd langchain-study
python -m venv env

激活虚拟环境

source env/bin/activate

2.3 PyCharm设置虚拟环境

打开项目,在 Settings 中配置 Python 虚拟环境,创建本地解释器。

选择之前创建的Python虚拟环境。

选择之前创建的虚拟环境中的Python解释器。

2.4 依赖版本管理

首先,创建依赖管理文件 requirements.txt

touch requirements.txt

requirements.txt 中添加 LangChain 所需依赖,其中 python-dotenv 用于加载 .env 环境变量配置。

langchain==0.2.17
langchain-community==0.2.19
langchain-core==0.2.43
python-dotenv==1.0.1

导入依赖

pip install -r requirements.txt

2.5 创建配置文件

在项目根目录下创建 .env 文件,添加 OpenAI 的 API 地址和密钥

# OpenAI大模型
OPENAI_API_KEY=**
OPENAI_API_BASE=https://api.***.***/v1

三、第一个聊天机器人

新建一个 Python 文件,就可以开始编写第一个聊天机器人程序了。

代码如下:

import dotenv
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI # 读取env配置
dotenv.load_dotenv() # 1.创建提示词模板
prompt = ChatPromptTemplate.from_template("{question}") # 2.构建GPT-3.5模型
llm = ChatOpenAI(model="gpt-3.5-turbo") # 3.创建输出解析器
parser = StrOutputParser() # 4.执行链
chain = prompt | llm | parser
print(chain.invoke({"question": "请以表格的形式返回三国演义实力最强的十个人,并进行简要介绍"}))

执行结果:

四、总结

本文介绍了LangChain框架的包依赖结构及其模块划分,明确了主包 langchain 与核心包 langchain-core、第三方集成包如 langchain-openailangchain-community 之间的关系,并简要介绍了 langgraphlangsmith 这两个生态工具的功能与使用场景。

在项目实操部分,我们从零开始搭建了一个LangChain开发环境,涵盖了虚拟环境的创建、依赖版本管理、PyCharm解释器配置及.env配置文件的设置,并通过一个简单的聊天机器人示例,展示了 LangChain 与 OpenAI 模型的基础集成流程。

通过本文,相信你应该已经掌握了如何快速构建一个基于LangChain的Python开发环境,构建自己的第一个AI应用。后续将继续深入介绍LangChain的核心模块和高级用法,敬请期待。

LangChain框架入门02:环境搭建的更多相关文章

  1. 【个人笔记】003-PHP基础-01-PHP快速入门-03-PHP环境搭建

    003-PHP基础-01-PHP快速入门 03-PHP环境搭建 1.客户端(浏览器) IE FireFox CHROME Opera Safari 2.服务器 是运行网站的基本 是放置程序代码的地方 ...

  2. Android入门之环境搭建

    欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/1376935560.html 原创:An ...

  3. scala 入门Eclipse环境搭建

    scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld IDE选择并下载: scala for eclipse 下载: http://scala-ide.org/downloa ...

  4. dubbo框架及dubbo环境搭建

    https://blog.csdn.net/liuhaiabc/article/details/52781351 dubbo框架及dubbo环境搭建

  5. 新手嘛,先学习下 Vue2.0 新手入门 — 从环境搭建到发布

    Vue2.0 新手入门 — 从环境搭建到发布 转自:http://www.runoob.com/w3cnote/vue2-start-coding.html 具体文章详细就不搬了,步骤可过去看,我这就 ...

  6. scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld

    scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld 学习了: http://blog.csdn.net/wangmuming/article/details/3407911 ...

  7. 总结Vue 第四天:vue-cli(Vue2.0 新手入门 — 从环境搭建到发布)

    总结Vue 第四天:vue-cli(Vue2.0 新手入门 - 从环境搭建到发布) 一.Vue CLI----(Vue2.0 新手入门 - 从环境搭建到发布): ■   CLI是Command-Lin ...

  8. MyBatis01:框架概述、环境搭建及入门案例、自定义框架

    课程介绍 第一天:mybatis的入门 mybatis的概述 mybatis的环境搭建 mybatis入门案例 自定义mybatis框架(目的:了解mybatis的执行细节) 第二天:mybatis基 ...

  9. JAVA WEB快速入门之环境搭建

    前言 我是一直致力于:.NET技术栈.WEB前端.架构设计相关的开发与管理工作,但因国内大环境影响及公司技术方向发生转变(由.NET全部转为JAVA),需要熟练掌握JAVA WEB相关的知识,故我也得 ...

  10. spring+springMVC+mybatis的框架项目基础环境搭建

    上一个项目在后台用到spring+springMVC+mybatis的框架,先新项目初步需求也已经下来,不出意外的话,应该也是用这个框架组合. 虽然在之前activiti相关的学习中所用到的框架也是这 ...

随机推荐

  1. 网络编程:阻塞I/O和线程模型

    线程 进程模型在处理用户请求的过程中,进程切换上下文的代价比较高,而,一种轻量级的模型可以处理多用户连接请求,那就是线程模型. 线程(thread)是运行在进程中的一个"逻辑流", ...

  2. CAP 关键细节点与ACID、BASE的比较

    极客时间:<从 0 开始学架构>:想成为架构师,你必须掌握的CAP细节 1.CAP 关键细节点 埃里克·布鲁尔(Eric Brewer)在<CAP 理论十二年回顾:"规则& ...

  3. B1009 说反话

    给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小 ...

  4. WebSocket 实时通信(二)

    WebSocket 即时消息推送系统 1. 项目概述 1.1 项目背景 在现代 Web 应用中,实时通信功能越来越重要,例如在线聊天.实时通知.股票行情更新等.本项目基于 WebSocket 技术,构 ...

  5. Target JRE version (1.8.0_201) does not match project JDK version (java version "1.7"), will use sources from JDK: 1.8

    问题描述:IntelliJ IDEA 启动项目时,常常提示Target JRE version (1.8.0_201) does not match project JDK version (java ...

  6. GHCTF 2025 web 萌新初探wp

    ctf萌新第一次写wp,如有错误请师傅们指出 [GHCTF 2025]SQL??? 打开靶机是一个用户查询的页面,结合题目名称猜测是sql注入,但是常规方法都试过了没办法注入,当时也是很懵逼,后来一个 ...

  7. Svelte 5 状态管理全解析:从响应式核心到项目实战

    Svelte 5 的状态管理以 "编译时优化" 为核心,通过 响应式声明(Reactive Declarations) 和 状态容器(Stores) 的组合,实现了简洁高效的状态控 ...

  8. Lustre 与 JuiceFS :架构设计、文件分布与特性比较

    在 AI 模型训练.高性能计算等对 I/O 敏感的场景中,底层文件系统的架构和性能将直接影响训练效率.资源利用率与整体成本. Lustre 作为传统高性能文件系统,以极致性能著称:而 JuiceFS ...

  9. 江铃晶马 X 袋鼠云:搭建企业级数据资产中心,推进打造“智数晶马”

    江铃集团晶马汽车有限公司(简称:晶马汽车)系江铃集团全资子公司,属集团六大整车企业之一.晶马汽车是以大.中.轻型客车(含新能源客车).乘用车(不含轿车).专用车等车型研发.生产.销售和服务为核心的整车 ...

  10. 袋鼠云数据湖平台「DataLake」,存储全量数据,打造数字底座

    一.什么是数据湖? 在探讨数据湖技术或如何构建数据湖之前,我们需要先明确,什么是数据湖? 数据湖的起源,应该追溯到2010年10月.基于对半结构化.非结构化存储的需求,同时为了推广自家的Pentaho ...