老铁们,今天我们来聊一聊如何在本地运行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
),然后重新安装依赖。
测试
在langchain
、langchain-community
和langchain-experimental
中,一些测试依赖是可选的。单元测试覆盖不需要外部API调用的模块化逻辑。如果你添加了新的逻辑,别忘了加个单元测试。
运行单元测试:
make test
在Docker中运行单元测试:
make docker_tests
还可以进行集成测试和代码覆盖率测试。
格式化与Linting
在提交PR之前,本地运行格式化和Linting;CI系统也会检查的。代码格式化通过ruff
完成。
运行格式化:
make format
Linting则结合了ruff
和mypy
进行:
make lint
如果觉得Linting麻烦,可以联系项目维护者,他们可以帮到你。
拼写检查
通过codespell
进行拼写检查,若想修正拼写:
make spell_fix
如果某个词被误报,你可以在pyproject.toml
文件的代码拼写配置中忽略它。
关于可选依赖
langchain
、langchain-community
和langchain-experimental
依赖于可选依赖,以保持轻量。添加新的依赖时,假设它是可选的。
添加Jupyter Notebook
如果你要添加Jupyter Notebook示例,安装开发依赖:
poetry install --with dev
启动notebook:
poetry run jupyter notebook
运行poetry install
后,langchain
包会以可编辑模式安装在virtualenv中,方便你在notebook中引入新逻辑。
今天的技术分享就到这里,希望对大家有帮助。开发过程中遇到问题也可以在评论区交流~
—END—