{"repo":"Baldwinzc/citelocal-agent","free":true,"listed":false,"github":"https://github.com/Baldwinzc/citelocal-agent","clone":"git clone https://github.com/Baldwinzc/citelocal-agent.git","description":"100% local research agent for your papers - ask PDFs on your machine, page-accurate verified citations, cross-paper synthesis, Ollama-ready","language":"Python","stars":17,"topics":["ai-agent","arxiv","citations","langgraph","llm","local-first","ollama","pdf","privacy","rag"],"license":"MIT","category":"ai-agents","readme_excerpt":"citelocal-agent — 本地论文研究助手 中文 English 针对一堆论文(或任意本地文档)提问,得到 精确到页码、且经过校验的引用 答案 —— 全程在本机运行 。基于 LangGraph。 云端论文工具(ChatPDF、Elicit……)要你 上传 PDF 。citelocal-agent 不用:embedding 本地跑,论文不出本机( papers/ 已 gitignore),作答模型也可用 Ollama 本地跑。返回的答案是有据的 —— 每条引用都对照实际检索内容校验,精确到 PDF 页码 。 凭什么不一样 - 🔒 全本地 / 隐私 —— PDF 绝不上传;本地 embedding,可选本地 LLM(Ollama)。适合未发表或敏感论文。 - 📎 精确到页、且校验过的引用 —— 答案引用 paper.pdf (p.3) ;引用 locator 对照检索校验 ,幻觉的会被丢弃。 - 🔗 跨论文综合 —— agent 自主检索、改写查询、把多篇论文的事实综合进一个答案。 - 🙅 诚实拒答 —— 论文里没有就说没有(相关性阈值),不编。 - 🧪 真检索 —— 混合 dense(bge)+ BM25 → RRF → cross-encoder 重排。 - 💬 CLI + Web UI 、🔭 检索 trace 、📊 评估 ,多格式(PDF / Markdown / RST / 文本)。 快速开始 一键装机 （用 uv 装好 Python + venv + 依赖，幂等、不覆盖已有 .env ）： 装好后用统一的 citelocal 命令（等价于 python -m citelocal agent. ，省去记模块路径）： 手动安装（conda / pip） 把 ingest --path 指向任意装有你自己 .pdf / .md / .rst / .txt 的文件夹即可。 运行示例 一个 跨论文 问题 —— agent 检索、列出来源、改写再检索,然后从两篇论文带页码作答(真实输出): 超范围问题会被拒答;离线时 python scripts/check retrieval.py 可无 key 查看检索栈。 Web UI 小型聊天前端(FastAPI + 静态 Tailwind),展示答案、意图徽章、引用 chips、被丢弃的未支撑引用、可折叠检索 trace。 python -m citelocal agent.web → http://127.0.0.1:8000。 API: - POST /api/ask {question, session id?, collection?} → {kind, intent, answer, question, citations, unsupported, trace} - POST /api/ask/stream —— 同样的请求体,SSE 流式:每个图节点一个 step 事件,最后一个 final 事件 - GET /api/sources {collection?} → {sources} ; GET /health → {status} 传 session id 保持多轮对话(按线程 checkpointer),传 collection 让一个服务承载多个知识库。 设 DOCAGENT API KEY (沿用旧包名前缀)后 /api/ 需带 X-API-Key ; RATE LIMIT REQUESTS / RATE LIMIT WINDOW 控制按客户端限流。 Dock","default_branch":null,"files":null,"tree":[],"storefront":"/r/Baldwinzc","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Baldwinzc/citelocal-agent/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}