-
传入数据:各类lora的tag
-
功能1:按照你输入的tag,检索知识库,输出与给定的tag匹配度最高的 一次切分后的tag组。
-
功能2:输入想要的角色/画风要求,大模型按照比例(默认:知识库:大模型 = 7:3)进行相似tag输出
- 入库切分规则:
- 第一次:按
!!!(全角感叹号 3 个)切分(默认) - 第二次:对每一段再按英文逗号
,切分(默认) - 二次切分后的每个片段视为一个 tag,写入向量库
- 第一次:按
- 回答输出格式:只输出 知识库中检索到的、切分好的 tag 标签
- 查询输出:当你查询某个 tag,会输出 包含该 tag 的“一次切分分组”里的全部 tag(保留分组边界)
PowerShell(Windows):
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt
# 必填:DashScope(Qwen)API Key
$env:OPENAI_API_KEY="API-key"
# 可选:OpenAI 兼容 Base URL(DashScope)
$env:OPENAI_BASE_URL="Base URL"
uvicorn app.main:app --reload --host 127.0.0.1 --port 8000如果激活脚本被策略拦住,可先执行:
Set-ExecutionPolicy -Scope Process Bypass
准备一个文本文件,例如 data.txt:
苹果,香蕉,水果!!!猫,狗,宠物!!!红色,蓝色,颜色
上传并入库:
curl.exe -F "file=@data.txt" http://127.0.0.1:8000/ingest清空知识库(重新上传前建议先清空):
curl.exe -X POST http://127.0.0.1:8000/reset返回示例(字段可能略有不同):
{
"source": "data.txt",
"split_rule": ["!!!", ","],
"total_tags": 9,
"unique_tags": 9,
"added": 9
}curl.exe -X POST http://127.0.0.1:8000/query -H "Content-Type: application/json" -d "{\"query\":\"宠物\",\"top_k\":10}"PowerShell 更推荐这样写(引号更省心):
curl.exe -X POST http://127.0.0.1:8000/query -H "Content-Type: application/json" -d '{"query":"宠物","top_k":10}'返回示例:
{
"model": "qwen3-max",
"answer": "猫,狗,宠物",
"selected_tags": ["宠物"],
"groups": [["猫", "狗", "宠物"]],
"top_k": 10,
"candidates": ["猫", "狗", "宠物", "颜色", "水果"]
}- 向量库使用本地持久化(TF-IDF 向量 + 余弦相似度),文件在
./vector_store.joblib