Zotero → PanAI 3.5 集成方案

核心思路是让 Zotero 既作为文献入库管道,又作为查询触发界面。有三个层次可以选择:

层次一:单向数据管道(最简,推荐先行)

Zotero → PanAI 文档库

Zotero 提供本地 REST API(默认端口 23119),无需插件即可调用:

# 从 Zotero 本地 API 拉取条目
import httpx

ZOTERO_API = “http://localhost:23119/api
# 获取所有条目(含附件路径)
items = httpx.get(f”{ZOTERO_API}/users/0/items”,
params={“format”: “json”, “limit”: 100}).json()

for item in items[“items”]:
# 提取 PDF 路径 → 送入 PanAI 的文档入库 pipeline
if item[“itemType”] == “attachment”:
pdf_path = item[“data”].get(“path”)
# → 调用你的 /ingest 接口

同步触发方式:

• 在 Zotero 中安装 Zotero Actions & Tags 插件,为条目打 #panai-ingest 标签时自动触发 webhook
• 或用 Python 定时轮询 /items?since={version} 增量同步

层次二:双向接口(中等复杂度)

在 Zotero 中直接查询 PanAI

用 Zotero Better Notes 或 Zutilo 的自定义脚本功能,在笔记面板中嵌入查询:

// Zotero Better Notes 自定义模板
// 选中文段 → 自动发送至 PanAI API
const selectedText = Zotero.BetterNotes.api.editor.getSelectedText();
const response = await fetch(“http://localhost:8000/api/query“, {
method: “POST”,
headers: { “Content-Type”: “application/json” },
body: JSON.stringify({
query: selectedText,
filter: { tradition: “nee-lee” } // PanAI 的 metadata filter
})
});
const result = await response.json();
// 将答案插入笔记

这样在阅读文献时,划选段落即可调用 PanAI 的 RAG 检索,答案直接写入 Zotero 笔记。

层次三:Zotero 作为 Neo4j 知识图谱的前端(深度集成)

将 Zotero 的收藏夹分类映射到 PanAI 的 Neo4j 概念节点:

Zotero Collection: “Witness Lee / Life-Study”
└── 自动映射 → Neo4j (:Author {name:”Witness Lee”}) -[:HAS_SERIES]-> (:Series {name:”Life-Study”})

Zotero Tag: “divine-dispensing”
└── 自动映射 → (:Concept {name:”divine dispensing”, layer:”L3″})

同步脚本(FastAPI 侧):

@app.post(“/zotero/sync”)
async def sync_from_zotero(payload: ZoteroWebhook):
# 1. 提取 Zotero metadata
meta = extract_zotero_metadata(payload)

# 2. 更新 Neo4j 知识图谱
await neo4j.run(“””
MERGE (d:Document {zotero_key: $key})
SET d.title = $title, d.year = $year
MERGE (a:Author {name: $author})
MERGE (a)-[:WROTE]->(d)
“””, **meta)

# 3. 触发 Elasticsearch 重新索引
await es.index(index=”ministry_docs”, body=meta)

推荐实施路径

阶段1(本周): 本地 REST API 单向拉取 → 测试 PDF 入库
阶段2(下周): Better Notes 模板 → PanAI 查询嵌入 Zotero 阅读流
阶段3(后续): Zotero collection/tag → Neo4j 节点自动映射

关键前提:Zotero 需在设置 → 高级 → 开启本地 API,并记录 API Key。

你现在 PanAI 3.5 的 /ingest 接口是否已经稳定?如果有,我可以直接帮你写 Zotero → FastAPI 的完整同步脚本。