ymq
|
00262a6d2a
|
feat(rag-api): 对外B2B API+内部tools包装
- wwwroot/api/ 六个对外端点(Bearer Key 鉴权,路由授 any、业务鉴权在 api_core):
kb_create/kb_delete/doc_upload/doc_delete/tag_create/doc_set_tags/search
- rag/api_core.py: verify_api_key + make_api_env(org注入) + 六个业务核心
(复用 init.py 底层检索/入库能力,杜绝双实现分叉)
- 统一返回格式 {"status":"ok"|"error","data":...}
- rag/ingest.py: 入库管线从 upload_file.dspy 抽出共享(UI/API同一引擎)
- rag/tools.py: RAG_TOOL_SCHEMAS + exec_rag_tool(与API同构,供内部助手调用)
- rag_api_keys 表 model(key 只存 SHA256);管理端 api_key_create/list/revoke
- load_path.py 注册 7 个 API 端点(any) + 3 个管理端点(logined)
|
2026-09-03 15:51:19 +08:00 |
|
ymq
|
1c1ef65931
|
feat(rag): 机构rags目录+容量检查参数化+KB级角色权限
- 存储: 知识库文件存 {workspace_base}/{org}/rags/{kb}/ (机构目录下开设rags目录)
- 容量: rag_check_storage_quota 参数控制是否检查机构上限(默认不检查)
- 权限: rag_knowledge_bases 加 maintain_roles/search_roles; 空=同机构默认可用
维护入口(upload/delete/rename/tree/tags)校验maintain; 检索入口(search/file_list/file_serve)校验search
- file_serve.dspy: 下载/预览走校验端点, 堵住/idfile/猜路径越权
- 机构隔离: 跨机构KB一律拒绝
|
2026-09-02 12:09:16 +08:00 |
|
ymq
|
789960a1cf
|
refactor(schema): rag 模块全部数据表加 rag_ 前缀(模块跨应用复用防冲突)
- models/ 重建为正确表定义格式(summary+fields+indexes),覆盖全部 11 个表
修正原 models/ 误放 CRUD 格式副本(缺 summary)导致 json2ddl 100% 失败被静默忽略
- json/ 6 个 CRUD 定义 tblname 加前缀 + 文件改名
- 129 处 SQL/sor 表名加 rag_ 前缀(URL 路径 knowledge_bases_list 保持不变)
- 新增 init/migrate_rag_prefix.sql 幂等 RENAME TABLE 迁移
|
2026-08-25 14:24:37 +08:00 |
|
|
|
548fc6013e
|
feat: per-org storage quota enforcement — org_storage_limits table, upload rejection, UI display
|
2026-08-04 15:36:53 +08:00 |
|
|
|
5664508234
|
fix: wwwroot/json/models/conf at repo root (Sage module convention)
|
2026-07-24 13:39:39 +08:00 |
|
|
|
8bef57b89e
|
fix: move code into rag/ subpackage for find_packages()
|
2026-07-24 13:36:54 +08:00 |
|
|
|
796df405b4
|
fix: move CRUD json to json/, keep models/ for DB defs
|
2026-07-24 13:35:13 +08:00 |
|
|
|
84f3d6e284
|
init: RAG business module
|
2026-07-24 13:24:20 +08:00 |
|