ai-research-assistant
Zotero插件式AI科研助手,拖拽引用文献、GPT-4解读图表、一键保存对话为笔记
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Zotero插件式AI科研助手,拖拽引用文献、GPT-4解读图表、一键保存对话为笔记
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你是否有这样的经历:面对成百上千篇 PDF 文献,导师问一句「帮我梳理下这个领域近三年的研究趋势」,你只能从零开始一篇篇手动翻阅?这大概是每个研究生的噩梦。
Aria(AI Research Assistant,反写即为 A.R.I.A.)正是为解决这个痛点而生。它是一款深度集成进学术文献管理神器 Zotero 的 AI 插件,让 GPT-4 直接成为你的文献研究助理——可以回答关于你文献库的问题,可以帮你自动补全作者名和标签,甚至能「看懂」 PDF 上的图表。
独特的定位:不同于通用的 ChatGPT 或 Copilot,Aria 专为学术文献管理场景设计。它不是让你打开另一个网页去提问,而是直接在你管理文献的地方(Zotero)提供 AI 能力。这意味着:
作者的学术背景:项目由 Fan Li 开发,采用了 windingwind 的 Zotero 插件模板框架搭建,代码质量较高,且维护活跃。项目目前已收获 1700+ GitHub Stars,在 Zotero 插件生态中属于明星项目。
Aria 内部实现了完整的检索增强生成(Retrieval-Augmented Generation, RAG)流程:
用户提问 → 语义检索 Zotero 文献库 → 召回相关文献片段 → GPT-4 汇总回答 → 附上文献来源
具体来说,src/models/chains/search.ts 负责根据用户问题构造检索 query,在 Zotero 数据库中搜索匹配的条目(支持按年份、关键词等过滤),随后 src/models/chains/qa.ts 将召回的文献片段与用户问题组装成 prompt,交给 GPT-4 生成回答,并在回答中注明来源文献的 Zotero Item ID。整个流程基于 LangChain 实现,支持流式输出(Streaming)。
这意味着当你问「近三年关于大语言模型在医疗领域应用的研究有哪些」时,Aria 会:
Aria 采用了精心设计的路由 Agent 架构(src/models/chains/router.ts)。用户发起的对话并不直接丢给 GPT,而是先经过一个路由节点(Router),由 GPT 判断用户意图,将其分发到不同的执行链:
这种架构的优势在于:不同任务使用不同的 prompt 和工具组合,避免「万能 prompt」效果平庸的问题。例如 QA 链的 prompt 特别强调「只基于提供的文档回答,不要编造,不清楚就说不知道」,符合学术严谨性要求。
Aria 支持对 PDF 中的图片进行视觉理解。用户选中 PDF 中的某个区域,Aria 会调用 GPT-4 Vision 分析该区域的内容。这对于理解论文中的流程图、实验结果图、对比表格等特别有用——不用再对着模糊的截图干瞪眼,AI 直接帮你解读。
在添加文献时,Aria 提供作者名、标签、文献条目的智能自动补全建议。背后调用 Zotero Suggest API,结合用户文献库的历史数据,实现上下文感知的补全,大幅减少手动输入。
与 Aria 的对话可以一键保存为 Zotero 笔记(Note)或标注(Annotation),方便日后回顾整理。这一功能打通了 AI 对话与文献笔记体系,让研究过程可追溯、可复用。
| 层级 | 技术选型 |
|---|---|
| 插件框架 | Zotero Plugin Toolkit(基于 Chrome/Firefox 扩展) |
| 前端 UI | React 18 + TypeScript |
| 样式 | Tailwind CSS |
| 状态管理 | React Hooks(useStates、useMessages 等) |
| AI 推理 | OpenAI GPT-4o / GPT-4 Vision(via OpenAI SDK v4) |
| AI 编排 | LangChain + LangChain.js |
| 向量搜索 | WebAssembly 实现(libs/vector_search,基于 wasm-pack 构建) |
| 数据库 | IndexedDB(通过 Dexie.js 封装)+ Zotero SQLite |
| 构建工具 | esbuild(via zotero-plugin)+ TypeScript |
src/
├── models/ # AI 模型层
│ ├── assistant.ts # ResearchAssistant 主类,管理 OpenAI 会话
│ ├── chains/ # LangChain 执行链
│ │ ├── router.ts # 路由 Agent,判断意图并分发
│ │ ├── search.ts # Zotero 文献检索链
│ │ ├── qa.ts # 检索增强问答链
│ │ ├── summary.ts # 摘要生成链
│ │ └── vision.ts # GPT-4 Vision 分析链
│ ├── tools/ # LangChain Tools(搜索作者/标签/文献条目)
│ ├── vectorstore/ # WASM 向量搜索模块
│ └── messageStore.ts # 对话历史管理
├── apis/zotero/ # Zotero API 封装层
│ ├── item.ts # 文献条目操作
│ ├── collection.ts # 文献集操作
│ ├── citation.ts # 引用生成
│ ├── search.ts # 全文搜索
│ ├── suggest.ts # 智能补全
│ └── annotation.ts # 标注管理
├── db/ # 本地数据库(IndexedDB)
│ └── client.ts # Dexie.js ORM
├── views/ # React 视图层
│ ├── features/ # 功能组件(消息、反馈、通知等)
│ └── components/ # UI 基础组件
└── workers/ # Web Workers(后台处理)
Zotero 数据库 ←→ apis/zotero ←→ db/client.ts (IndexedDB)
↓
models/assistant.ts
↓
┌──────────────┼──────────────┐
router.ts qa.ts vision.ts
↓ ↓ ↓
GPT-4o (Router) GPT-4o (QA) GPT-4 Vision
↓ ↓ ↓
路由结果 回答+来源 图片解读
中等偏低。需要已安装 Zotero(6 或 7 版本各有独立 release),然后下载 .xpi 文件手动安装即可,不需要命令行,不需要配置 Docker。首次使用需配置 OpenAI API Key(支持自定义 Base URL,可接入兼容 OpenAI API 的第三方模型服务)。
适合有 Zotero 使用习惯的学术研究者。如果你已经用 Zotero 管理文献,Aria 是天然的增强工具;如果你是新手,需要先熟悉 Zotero 的文献管理逻辑。学习成本主要集中在理解如何将 AI 能力与文献库结合使用。
Aria 代表了一个重要趋势:将 AI 能力深度嵌入已有的专业工作流工具中,而不是让用户切换到 AI 原生的新工具。
学术文献管理是一个高度专业化、高频次的场景,Zotero 已有数十万活跃用户。Aria 选择了「站在巨人的肩膀上」的策略——不另起炉灶做文献管理,而是专注做好「AI + 文献库」这一件事。这种聚焦策略让它在 Zotero 插件生态中具有不可替代性。
GitHub Stars 1700+ 且持续增长,在学术工具类项目中属于相当不错的成绩。随着 GPT-4o 等多模态模型能力增强,以及本地大模型(如 Ollama)的普及,Aria 的扩展空间值得期待。
图1:Aria 主界面(拖拽文献到对话框中)

图2:Prompt Library 功能(使用预置提示词快速上手)

图3:拖拽引用功能(直接将 Zotero 文献条目拖入 AI 对话)

图4:GPT-4 Vision 视觉分析(AI 解读 PDF 中的图表)

图5:对话保存为笔记(AI 对话可一键转为 Zotero 笔记)
