- 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)
13 lines
505 B
Plaintext
13 lines
505 B
Plaintext
# 对外 API:文件删除(级联清理向量/chunks/文件)
|
||
# POST /rag/api/doc_delete.dspy Authorization: Bearer <api-key>
|
||
# body/query: {doc_id}
|
||
from rag import api_core as C
|
||
_ctx, _e = await C.verify_api_key(request)
|
||
if _e:
|
||
return C._err(_e, code="unauthorized")
|
||
_ns = await C.read_json_body(request, params_kw)
|
||
if not C.require_scope(_ctx, "doc.delete"):
|
||
return C._err("api key lacks scope: doc.delete", code="forbidden")
|
||
env = C.make_api_env(_ctx)
|
||
return await C.doc_delete(env, _ns)
|