Open-source knowledge-base ingestion and retrieval service.
Project description
by-qa
by-qa 是一个按模块组织的开源知识与问答服务仓库,当前包含:
knowledge_base:知识库管理、导入结果落库和检索knowledge_build:文件解析、切片和 embedding 构建qa.instant:即时问答核心编排能力
项目采用可选依赖安装,不同模块可以按需安装和启用。
模块概览
Knowledge Base
knowledge_base 提供知识库管理、文档导入、文件读取和检索能力,适合用作知识数据的存储与检索承载层。
相关文档:
Knowledge Build
knowledge_build 提供 3 个知识构建相关接口:
file-to-markdownbuild-markdown-indexfile-to-markdown-index
需要特别说明的是,当前 knowledge_build 更偏向示例实现,适合本地联调、协议参考和轻量验证。如果要保证生产检索效果,更推荐接入第三方知识构建能力,再把 markdown、chunk 和 embedding 结果导入 knowledge_base。
相关文档:
Instant QA
qa.instant 提供即时问答的代码级能力入口,保留了单跳、多跳、上下文管理和流式事件模型。当前不包含深度问答、HTTP/SSE 对外接口和 worker 适配层。
相关文档:
安装
只安装知识库:
pip install by-qa[knowledge]
只安装知识构建:
pip install by-qa[knowledge-build]
只安装问答:
pip install by-qa[qa]
安装全部模块:
pip install by-qa[all]
如果使用 uv:
uv sync --extra knowledge
uv sync --extra knowledge-build
uv sync --extra qa
uv sync --all-extras
开发环境推荐:
uv sync --extra dev --extra knowledge --extra knowledge-build --extra qa
启动
项目入口会根据当前已安装模块动态注册 API。
本地启动:
uv run python -m by_qa.main
或:
by-qa
默认健康检查接口:
GET /health
健康检查响应中会包含当前已启用和被跳过的模块信息,便于确认模块是否按预期加载。
配置
项目通过仓库根目录的 .env 文件读取配置,参考示例:
cp .env.example .env
常见配置分组包括:
- 服务启动配置
- 知识库存储配置
- embedding 配置
- 即时问答模型与运行时配置
如果只使用 knowledge_build,通常只需要 embedding 相关配置;如果使用 knowledge_base,还需要 openGauss、MinIO 等运行配置。
测试
知识库单元测试:
bash scripts/knowledge_base/run_unit_tests.sh
知识构建单元测试:
bash scripts/knowledge_build/run_unit_tests.sh
问答单元测试:
bash scripts/qa/run_unit_tests.sh
运行全部代码质量检查:
uv run pre-commit run --all-files
CI 与发布
当前仓库已配置:
- GitHub Actions CI
- PyPI 发布
- GitHub Releases 发布
正式发布由 v* tag 触发,并会校验 tag 版本与 pyproject.toml 中的版本一致。
仓库结构
src/by_qa/
├── core/
├── knowledge_base/
├── knowledge_build/
├── knowledge_common/
└── qa/
当前边界
当前仓库已经开源并维护的是:
knowledge_baseknowledge_buildqa.instant
当前还不在开源范围内或未恢复为对外能力的包括:
qa.deep- 即时问答对外 Web API
- 生产级知识构建流水线
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file by_qa-0.1.0.tar.gz.
File metadata
- Download URL: by_qa-0.1.0.tar.gz
- Upload date:
- Size: 277.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
879cfc69c6c31483ef586cfd089a04822ceb9ad81067bc724d1c4cf15cbf17ef
|
|
| MD5 |
8db9a9fd14cb45cd4fe323c7aebe52d6
|
|
| BLAKE2b-256 |
c97c5ba0028174a9e2b0cccf1a4b06e83fa52ad92480aa1ae82fff5ed9f27fcf
|
Provenance
The following attestation bundles were made for by_qa-0.1.0.tar.gz:
Publisher:
release.yml on beyonai/by-qa
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
by_qa-0.1.0.tar.gz -
Subject digest:
879cfc69c6c31483ef586cfd089a04822ceb9ad81067bc724d1c4cf15cbf17ef - Sigstore transparency entry: 1246588620
- Sigstore integration time:
-
Permalink:
beyonai/by-qa@4f87615d150c9d781cd40b74e355e0b5c78d57dc -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/beyonai
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4f87615d150c9d781cd40b74e355e0b5c78d57dc -
Trigger Event:
push
-
Statement type:
File details
Details for the file by_qa-0.1.0-py3-none-any.whl.
File metadata
- Download URL: by_qa-0.1.0-py3-none-any.whl
- Upload date:
- Size: 107.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bb918a4847eb24e0cdd5a8bc01a3465def0197e36976bd655e46a57c9794acd
|
|
| MD5 |
daaf5d932ab732f0df80bae646f65c29
|
|
| BLAKE2b-256 |
9994385ba8e6c00368d33474c7dde86601cfc2d4d1fe31aecc605a7ce9f82a7a
|
Provenance
The following attestation bundles were made for by_qa-0.1.0-py3-none-any.whl:
Publisher:
release.yml on beyonai/by-qa
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
by_qa-0.1.0-py3-none-any.whl -
Subject digest:
8bb918a4847eb24e0cdd5a8bc01a3465def0197e36976bd655e46a57c9794acd - Sigstore transparency entry: 1246588642
- Sigstore integration time:
-
Permalink:
beyonai/by-qa@4f87615d150c9d781cd40b74e355e0b5c78d57dc -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/beyonai
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4f87615d150c9d781cd40b74e355e0b5c78d57dc -
Trigger Event:
push
-
Statement type: