Skip to content

开发指南

要求

名称 安装 用途
Python 3.10-3.12 下载 该库基于Python。
Poetry 说明 Poetry用于Python代码库中的包管理和虚拟环境管理。

入门指南

安装依赖

# 安装Python依赖。
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 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。你可以修改这些值以减少并发性。请参考配置文档