kbase-cli 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- kbase/__init__.py +3 -0
- kbase/cli.py +31 -0
- kbase/commands/__init__.py +4 -0
- kbase/commands/add_cmd.py +98 -0
- kbase/commands/ask_cmd.py +62 -0
- kbase/commands/config_cmd.py +63 -0
- kbase/commands/doctor_cmd.py +148 -0
- kbase/commands/init_cmd.py +13 -0
- kbase/commands/kb_cmd.py +60 -0
- kbase/commands/status_cmd.py +105 -0
- kbase/config/__init__.py +4 -0
- kbase/config/loader.py +42 -0
- kbase/config/model.py +8 -0
- kbase/domain/__init__.py +3 -0
- kbase/domain/ingest_service.py +29 -0
- kbase/domain/kb_manager.py +71 -0
- kbase/domain/kb_validator.py +26 -0
- kbase/domain/query_service.py +12 -0
- kbase/infra/__init__.py +3 -0
- kbase/infra/model_builders.py +145 -0
- kbase/infra/rag_adapter.py +402 -0
- kbase/infra/storage.py +17 -0
- kbase_cli-0.1.0.dist-info/METADATA +124 -0
- kbase_cli-0.1.0.dist-info/RECORD +26 -0
- kbase_cli-0.1.0.dist-info/WHEEL +4 -0
- kbase_cli-0.1.0.dist-info/entry_points.txt +2 -0
kbase/infra/storage.py
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def kbase_home() -> Path:
|
|
6
|
+
home = os.getenv("KBASE_HOME")
|
|
7
|
+
if home:
|
|
8
|
+
return Path(home).expanduser()
|
|
9
|
+
return Path.home() / ".kbase"
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def config_path() -> Path:
|
|
13
|
+
return kbase_home() / "config.toml"
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def kb_dir(name: str) -> Path:
|
|
17
|
+
return kbase_home() / "kbs" / name
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: kbase-cli
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A minimal Typer-based CLI for kbase.
|
|
5
|
+
Requires-Python: >=3.10
|
|
6
|
+
Requires-Dist: pydantic
|
|
7
|
+
Requires-Dist: raganything-mineru-cloud==1.2.10.post1
|
|
8
|
+
Requires-Dist: tomli-w>=1.2.0
|
|
9
|
+
Requires-Dist: tomli; python_version < '3.11'
|
|
10
|
+
Requires-Dist: typer>=0.12.0
|
|
11
|
+
Provides-Extra: dev
|
|
12
|
+
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
|
|
15
|
+
# kbase
|
|
16
|
+
|
|
17
|
+
最小可安装的 `Typer` 命令行项目骨架。
|
|
18
|
+
|
|
19
|
+
## 安装
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# 方式 1:同步项目依赖(含开发依赖)
|
|
23
|
+
uv sync --extra dev
|
|
24
|
+
|
|
25
|
+
# 方式 2:可编辑安装
|
|
26
|
+
uv pip install -e ".[dev]"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## 开发
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
uv run pytest tests/test_cli_help.py -q
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## 使用
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
kbase --help
|
|
39
|
+
kbase version
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 文档
|
|
43
|
+
|
|
44
|
+
- `docs/打包与交付(kbase-cli).md`:打包交付给他人使用的完整流程(含依赖安装、.env、检查点)
|
|
45
|
+
- `docs/发布到PyPI(kbase-cli).md`:发布到 PyPI 的标准流程(对齐 `scripts/build.*` 与 `scripts/publish_pypi.*`)
|
|
46
|
+
|
|
47
|
+
## 最小化适配(mineru-cloud 默认)
|
|
48
|
+
|
|
49
|
+
当前默认解析器为 `mineru-cloud`,保持现有 CLI 体验不变,仍使用:
|
|
50
|
+
|
|
51
|
+
- `kbase kb create/use/list`
|
|
52
|
+
- `kbase add file/dir`
|
|
53
|
+
- `kbase ask`
|
|
54
|
+
|
|
55
|
+
### 最小环境变量(推荐)
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# 必填:MinerU Cloud
|
|
59
|
+
export MINERU_API_TOKEN="your_mineru_token"
|
|
60
|
+
|
|
61
|
+
# 必填:LLM
|
|
62
|
+
export LLM_API_KEY="your_llm_key"
|
|
63
|
+
export LLM_BASE_URL="https://your-openai-compatible-base-url/v1"
|
|
64
|
+
export LLM_MODEL="gpt-4o-mini"
|
|
65
|
+
export VISION_MODEL="gpt-4o-mini"
|
|
66
|
+
|
|
67
|
+
# Embedding(默认在线)
|
|
68
|
+
export EMBED_PROVIDER="online"
|
|
69
|
+
export EMBED_MODEL="text-embedding-3-large"
|
|
70
|
+
export EMBED_DIM="3072"
|
|
71
|
+
export EMBED_BASE_URL="$LLM_BASE_URL"
|
|
72
|
+
export EMBED_API_KEY="$LLM_API_KEY"
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
可选:本地 Ollama `bge-m3`
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
export EMBED_PROVIDER="ollama"
|
|
79
|
+
export EMBED_BASE_URL="http://localhost:11434/v1"
|
|
80
|
+
export EMBED_MODEL="bge-m3"
|
|
81
|
+
export EMBED_DIM="1024"
|
|
82
|
+
export EMBED_API_KEY="ollama"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### 端到端命令示例
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# 1) 初始化
|
|
89
|
+
uv run kbase init
|
|
90
|
+
|
|
91
|
+
# 2) 创建并切换知识库
|
|
92
|
+
uv run kbase kb create mykb --use
|
|
93
|
+
|
|
94
|
+
# 3) 入库目录(支持 pdf/doc/docx/ppt/pptx/图片)
|
|
95
|
+
uv run kbase add dir "/Users/you/Desktop/test-docs" --recursive
|
|
96
|
+
|
|
97
|
+
# 4) 提问
|
|
98
|
+
uv run kbase ask "请总结这个目录里的核心结论"
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## 新增诊断与可观测命令
|
|
102
|
+
|
|
103
|
+
### 查看生效配置(脱敏)
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
uv run kbase config show
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
输出会脱敏展示 `LLM_API_KEY` / `MINERU_API_TOKEN` / `EMBED_API_KEY`,用于排查配置是否生效。
|
|
110
|
+
|
|
111
|
+
### 查看知识库状态(增强)
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
uv run kbase status
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
`status` 现在会展示:
|
|
118
|
+
|
|
119
|
+
- `docs`:文档数量
|
|
120
|
+
- `chunks`:总块数
|
|
121
|
+
- `doc_status_success/failed/pending`:处理状态分布
|
|
122
|
+
- `parse_cache_entries`:解析缓存条目
|
|
123
|
+
- `storage_files`:存储文件数
|
|
124
|
+
- `last_updated`:最近更新时间
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
kbase/__init__.py,sha256=4t_crzhrLum--oyowUMxtjBTzUtWp7oRTF22ewEvJG4,49
|
|
2
|
+
kbase/cli.py,sha256=0GPla3ZUNeJ2PiEEMiHHclQ7b8VFj40e4UE8Lk1o6Ns,826
|
|
3
|
+
kbase/commands/__init__.py,sha256=ecIxnpks6aFqTn9yB7i5J7Jchs2eypW0-LJN4RImidA,78
|
|
4
|
+
kbase/commands/add_cmd.py,sha256=lavtUQEBki3kG9QmijoeQgVZFPU2O7SKdqV8-ClpFXk,3589
|
|
5
|
+
kbase/commands/ask_cmd.py,sha256=-v6AwB4_9YWDAMUN4kgEEXhV3iCDIQXPqaPrlUyBS0U,1978
|
|
6
|
+
kbase/commands/config_cmd.py,sha256=cnBPC6I89FgNi1NE0hq00p4AewNd-czw7Ktv9M53LlY,2287
|
|
7
|
+
kbase/commands/doctor_cmd.py,sha256=X-d9SlQ9LKYYfTEzoVj-Q0NiGpdU9A_eZKNnX6H_Drc,5778
|
|
8
|
+
kbase/commands/init_cmd.py,sha256=9qwHjNRyoQ0MUpSmGXuFqQB2NcQL7QLBzfbSOoCeang,370
|
|
9
|
+
kbase/commands/kb_cmd.py,sha256=qHeyvms556T_gbLE9XDuBkEwizO8vglfRPwEJb18fao,2064
|
|
10
|
+
kbase/commands/status_cmd.py,sha256=BP2RQVy_CMDTU2wLTZXFvy1N0kWhE5WIrYPmY2lkfsk,3609
|
|
11
|
+
kbase/config/__init__.py,sha256=DhEf0ZvcicC3WlU7W6Smocn2YVBV46Rab9EElQIPNXU,125
|
|
12
|
+
kbase/config/loader.py,sha256=1pfK7Q7MG6XJc6lZ2-CelqHsSdy9wa2r-wKdwHb7NIg,1270
|
|
13
|
+
kbase/config/model.py,sha256=MG8m2xSVY9t7AhwoosPKM3YpccspboYK-DOYMWlyNKE,304
|
|
14
|
+
kbase/domain/__init__.py,sha256=f-I8yYOK_P5hEJddDnaWGKyZtCzjBUtwBjEDtZcxeX4,133
|
|
15
|
+
kbase/domain/ingest_service.py,sha256=_PvC6O71ZL3ppPnmCt-p5abNKCtXO6TZC5TYsNOdGGs,921
|
|
16
|
+
kbase/domain/kb_manager.py,sha256=QH1-U3ing5XFu1rJYJYAQTUjNZIQqrLJW0ek2lizpf4,1823
|
|
17
|
+
kbase/domain/kb_validator.py,sha256=-mxx-leaktheBicika17fm8iK17gxyBiVmorZHPMTmw,1009
|
|
18
|
+
kbase/domain/query_service.py,sha256=snihpx4ISMI-5hlo7lW9vIK64hEFKsZTH6yQ6zcivBU,432
|
|
19
|
+
kbase/infra/__init__.py,sha256=ROIqhJZN1uq0sBdhGO-fNn1jGN6aT0tfGEyl7xZ2rbE,115
|
|
20
|
+
kbase/infra/model_builders.py,sha256=tZGvCOVc6BPRbq-dFuV24qe3Hc0PlUGQ9z3zSzg5vbE,5026
|
|
21
|
+
kbase/infra/rag_adapter.py,sha256=oFeUNOIz68tjQ_O7ItQ0JG1YTg2WTuhNX8O8gLYzRiU,16668
|
|
22
|
+
kbase/infra/storage.py,sha256=JTZ_E2lS679OBVit7oL6eaz_rNmMA1BLZKhP8P3pIGw,325
|
|
23
|
+
kbase_cli-0.1.0.dist-info/METADATA,sha256=e7kz9c-lKLTyAtdsOnK3E3iMsfMF3K7e43wjVps5cLs,2807
|
|
24
|
+
kbase_cli-0.1.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
|
|
25
|
+
kbase_cli-0.1.0.dist-info/entry_points.txt,sha256=SLAXOlxv-W8e7TcslCXgBfAuMcz7lTB1PwN0et4sIUE,40
|
|
26
|
+
kbase_cli-0.1.0.dist-info/RECORD,,
|