本地运行LangChain项目的完整指南

老铁们,今天我们来聊一聊如何在本地运行LangChain项目并提交你的第一段代码。对于开发容器来说,你可以查看.devcontainer文件夹。咱们的项目是通过Poetry v1.7.1+来管理依赖的。如果你用Conda,记得先创建并激活一个新的Conda环境,例如conda create -n langchain python=3.9

Poetry的安装

在安装Poetry之前,老铁们注意,如果你使用Conda或者Pyenv作为你的环境或包管理器,安装Poetry后需要告诉Poetry去使用virtualenv的Python环境,即运行命令poetry config virtualenvs.prefer-active-python true

项目包介绍

这个仓库包含多个包:

  • langchain-core: 为关键抽象定义的基础接口以及组合这些接口的逻辑。
  • langchain-community: 各种第三方组件的集成。
  • langchain: 构成你应用程序认知架构的链、代理和检索逻辑。
  • langchain-experimental: 包含实验性的组件和链。

老铁们需要各自为这些包配置开发环境。对于快速上手,咱们从langchain-community开始:

cd libs/community

本地开发依赖

要安装langchain-community的开发要求(例如运行langchain、例子、格式化、测试和覆盖率检查):

poetry install --with lint,typing,test,test_integration

然后验证依赖的安装:

make test

如果安装过程中遇到WheelFileValidationError for debugpy,确保你运行的是Poetry v1.6.1+。如果你还碰到这个问题,可以尝试禁用“现代安装”模式(poetry config installer.modern-installation false),然后重新安装依赖。

测试

langchainlangchain-communitylangchain-experimental中,一些测试依赖是可选的。单元测试覆盖不需要外部API调用的模块化逻辑。如果你添加了新的逻辑,别忘了加个单元测试。

运行单元测试:

make test

在Docker中运行单元测试:

make docker_tests

还可以进行集成测试和代码覆盖率测试。

格式化与Linting

在提交PR之前,本地运行格式化和Linting;CI系统也会检查的。代码格式化通过ruff完成。

运行格式化:

make format

Linting则结合了ruffmypy进行:

make lint

如果觉得Linting麻烦,可以联系项目维护者,他们可以帮到你。

拼写检查

通过codespell进行拼写检查,若想修正拼写:

make spell_fix

如果某个词被误报,你可以在pyproject.toml文件的代码拼写配置中忽略它。

关于可选依赖

langchainlangchain-communitylangchain-experimental依赖于可选依赖,以保持轻量。添加新的依赖时,假设它是可选的。

添加Jupyter Notebook

如果你要添加Jupyter Notebook示例,安装开发依赖:

poetry install --with dev

启动notebook:

poetry run jupyter notebook

运行poetry install后,langchain包会以可编辑模式安装在virtualenv中,方便你在notebook中引入新逻辑。

今天的技术分享就到这里,希望对大家有帮助。开发过程中遇到问题也可以在评论区交流~

—END—

你可能感兴趣的:(langchain,python)