Skip to content
r-PavPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

Tag RAG(按自定义标识符进行一次,二次切分)

实现的功能

  • 传入数据:各类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

1) 上传文件入库

准备一个文本文件,例如 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
}

2) 查询(只返回 tag)

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

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages