跳到内容

开发指南

要求

名称 安装 目的
Python 3.10-3.12 下载 该库基于 Python。
Poetry 说明 Poetry 用于 Python 代码库中的包管理和 virtualenv 管理

快速入门

安装依赖项

# Install Python dependencies.
poetry install

执行索引引擎

poetry run poe index <...args>

执行查询

poetry run poe query <...args>

Azurite

一些单元测试和冒烟测试使用 Azurite 来模拟 Azure 资源。可以通过运行以下命令启动它

./scripts/start-azurite.sh

或者,如果已全局安装,则只需在终端中运行 azurite。有关如何安装和使用 Azurite 的更多信息,请参阅 Azurite 文档

生命周期脚本

我们的 Python 包使用 Poetry 来管理依赖项,并使用 poethepoet 来管理构建脚本。

可用的脚本是

  • poetry run poe index - 运行索引 CLI
  • poetry run poe query - 运行查询 CLI
  • poetry build - 这会调用 poetry build,它将构建一个 wheel 文件和其他可分发的工件。
  • poetry run poe test - 这将执行所有测试。
  • poetry run poe test_unit - 这将执行单元测试。
  • poetry run poe test_integration - 这将执行集成测试。
  • poetry run poe test_smoke - 这将执行冒烟测试。
  • poetry run poe test_verbs - 这将执行基本工作流程的测试。
  • poetry run poe check - 这将对整个软件包执行一系列静态检查,包括
  • 格式化
  • 文档格式化
  • 代码检查
  • 安全模式
  • 类型检查
  • poetry run poe fix - 这将对软件包应用任何可用的自动修复。通常这只是格式化修复。
  • poetry run poe fix_unsafe - 这将对软件包应用任何可用的自动修复,包括那些可能不安全的修复。
  • poetry run poe format - 显式地对整个软件包运行格式化程序。

故障排除

运行 poetry install 时出现 “RuntimeError: llvm-config failed executing, please point LLVM_CONFIG to the path for llvm-config”

确保已安装 llvm-9 和 llvm-9-dev

sudo apt-get install llvm-9 llvm-9-dev

然后在你的 bashrc 中,添加

export LLVM_CONFIG=/usr/bin/llvm-config-9

运行 poetry install 时出现 “numba/_pymodule.h:6:10: fatal error: Python.h: No such file or directory”

确保你已安装 python3.10-dev 或更一般地安装 python<version>-dev

sudo apt-get install python3.10-dev

LLM 调用不断超过 TPM、RPM 或时间限制

默认情况下,GRAPHRAG_LLM_THREAD_COUNTGRAPHRAG_EMBEDDING_THREAD_COUNT 都设置为 50。你可以修改这些值以降低并发性。请参阅配置文档