构建一个“论文检索 + 推理”知识库服务,支持用户上传 PDF/LATEX 源码后,秒级检索并获得基于内容的问答、摘要、引用等功能
文章目录
- 1 总体目标 / Overall Goal
- 2 数据管线 / Data Pipeline
- 3 检索策略 / Retrieval Strategy
- 4 服务切分 / Service Decomposition
- 5 Agent & Prompt 设计 / Agent & Prompt
- 6 核心功能 / Core Features
- 7 评测与监控 / Evaluation & Monitoring
- 8 面试亮点 / Interview Selling Points
1 总体目标 / Overall Goal
ZH:构建一个“论文检索 + 推理”知识库服务,支持用户上传 PDF/LATEX 源码后,秒级检索并获得基于内容的问答、摘要、引用等功能。
EN: Build a “paper-RAG” service where users upload PDF/LaTeX, then get sub-second search plus content-grounded QA, summaries, and citations.
2 数据管线 / Data Pipeline
阶段 | 关键动作 (ZH) | Key Steps (EN) |
---|---|---|
采集 | S3/GCS 触发 RAGFlow ingest | Trigger ragflow ingest on S3/GCS events |
解析 | ① PDF→markdown ② LaTeX→AST→markdown;补 bib 引用 | Parse PDF→md; LaTeX→AST→md; keep bib entries |
分块 | 400–800 tokens;公式单独切块并转为 $\LaTeX$ 字符串 | Chunk 400–800 tokens; isolate formulas |
元数据 | title, authors, year, doi, venue, sec_title | Rich metadata for filters |
嵌入 | MCP-Embed service;BGE-Large-zh-v1.5 for CN/EN;可热插入 MiniLM、Llama-Embed | MCP-Embed; hot-swappable embedders |
索引 | Infinity DB:Dense + BM25,enable_hybrid=true | Hybrid index in Infinity DB |
3 检索策略 / Retrieval Strategy
ZH
- Stage-1 召回
- BM25:速命中关键词(算法名、公式编号)。
- Dense:Cosine k=40 捕获语义同义。
- 融合:
score = 0.3·BM25 + 0.7·Dense
,动态调参。 - 精排:BGE-Reranker-v2;如 GPU 紧张降为 MiniLM-L6。
EN
- Recall via BM25 & dense cosine (k = 40).
- Score fusion with 0.3 / 0.7 weights (tunable).
- Re-rank top-50 using BGE-Reranker-v2 (fallback MiniLM).
4 服务切分 / Service Decomposition
微服务 | 作用 (ZH) | Latency SLA | Endpoint |
---|---|---|---|
MCP-Embed | 文本→向量 | ≤ 20 ms | /embed |
MCP-Search | Hybrid 检索+精排 | ≤ 60 ms | /search |
MCP-Memory | 用户长/短期 KV | ≤ 5 ms | /memory/{uid} |
MCP-Summarise | 论文长文摘要 | ≤ 3 s (async) | /summarise |
5 Agent & Prompt 设计 / Agent & Prompt
SYSTEM: 你是论文助手,只能基于检索结果回答。
TOOLS:search_papers(query:str, top_k:int=20)cite(paper_id:str, span:str)
CONTEXT:
{retrieved_chunks}
QUESTION:
{user_query}
GUIDELINES:
1. 如需更多资料务必调用 search_papers。
2. 引用时用 (Author, Year) 并列出 span。
- 多轮 Function Calling:模型看不到答案→触发
search_papers
→检索结果以function
消息注入→模型生成最终答复。 - Memory 写回:把对话摘要、兴趣主题存
MCP-Memory
,下轮预填。 - Chunk 过长:先走 LLM map-reduce 压缩,保证 < 8 K tokens 上下文。
6 核心功能 / Core Features
- 语义搜索 / Semantic Search
- 基于内容的问答 (RAG-QA)
- 自动摘要 & 中英对照翻译
- 引用追踪 (click-to-source spans)
- 相似论文推荐(Dense Only 模式)
7 评测与监控 / Evaluation & Monitoring
指标 | 工具 | 频率 |
---|---|---|
nDCG@10 (BEIR-SciDocs) | nightly auto-eval | 每晚 |
Faithfulness (QAG) | Prompt-ed Llama-3 judge | 每晚 |
Latency P95 | Prometheus + Grafana | 实时 |
GPU 使用率 | NVML exporter | 实时 |
8 面试亮点 / Interview Selling Points
ZH
- 端到端视角:能说清数据→检索→Agent→监控整链路。
- 可替换组件:Embed/Rerank/LLM 全部热插拔,体现工程弹性。
- 效能权衡:给出双检索、融合权重、GPU 回退策略,说明你懂成本。
EN
- E2E vision: articulate full pipeline from ingestion to monitoring.
- Pluggability: swap embedders, rerankers and LLMs—design for change.
- Cost-latency trade-offs: hybrid search, dynamic weights, GPU fallback.
总结 / Wrap-up
我会先用 RAGFlow 搭建混合索引,MCP 服务封装嵌入与检索,Agent 通过 Function Calling 串起工具,实现秒级论文检索及推理;再用监控与评测闭环调优。这样既满足现阶段功能,也给后续模型或业务升级留足弹性。
相关文章:
构建一个“论文检索 + 推理”知识库服务,支持用户上传 PDF/LATEX 源码后,秒级检索并获得基于内容的问答、摘要、引用等功能
文章目录 1 总体目标 / Overall Goal2 数据管线 / Data Pipeline3 检索策略 / Retrieval Strategy4 服务切分 / Service Decomposition5 Agent & Prompt 设计 / Agent & Prompt6 核心功能 / Core Features7 评测与监控 / Evaluation & Monitoring8 面试亮点 / Inte…...

VLC-QT 网页播放RTSP
先看效果图,代码在文章末尾,包含源码,vlc-qt完整的库 环境说明:VS 2017 QTQt5.13.0 MSVC2017 32位 将vlc_install 目录下的bin,include,lib里所有的东西分别放在qt目录下 bin -> C:\Qt\Qt5.13.0\5.13.0\msvc2017\bin include->C:\Qt\Qt5.13.0\5.13.0\msvc201…...
for(auto a:b)和for(auto a:b)的区别
#include<iostream> using namespace std; int main() {string s( "hello world" );for (auto c:s)c t ;cout<<s<<endl; //结果为hello worldfor (auto &c:s)c t ;cout<<s<<endl; //结果为ttttttttttt }for(auto a:b)中b为一…...
第2章-12 输出三角形面积和周长(走弯路解法)
本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。注意:在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式:areas(s−a)(s−b)(s−c),其中s(abc)/2。 import math de…...
Caddy如何在测试环境中使用IP地址配置HTTPS服务
前言 在开发和测试环境中,我们经常需要搭建HTTPS服务进行测试。但通常Let’s Encrypt等证书颁发机构要求使用有效域名,不直接支持IP地址。本文将详细介绍如何使用Caddy在测试环境中通过IP地址配置HTTPS服务,使用自签名证书解决这一问题。 环…...
shell中与>和<相关的数据流重定向操作符整理
shell中与>和<相关的数据流重定向操作符整理 输出重定向操作符>>>2>2>>&> 或 >&&>> 输入重定向操作符<<<<<< 组合重定向2>&1 文件描述符相关重定向[n]< file 和 [n]> file>&- 和 <&…...

【航天远景 MapMatrix 精品教程】08 Pix4d空三成果导入MapMatrix
【航天远景 MapMatrix 精品教程】08 Pix4d空三成果导入MapMatrix 文章目录 【航天远景 MapMatrix 精品教程】08 Pix4d空三成果导入MapMatrix一、资料准备1.去畸变影像2.相机文件3.外方位元素二、创建工程1.新建工程2.导入照片3.编辑相机文件4.编辑外方位元素文件,导入外方位元…...

创建型设计模式之Prototype(原型)
创建型设计模式之Prototype(原型) 摘要: Prototype(原型)设计模式通过复制现有对象来创建新对象,避免重复初始化操作。该模式包含Prototype接口声明克隆方法、ConcretePrototype实现具体克隆逻辑ÿ…...

JNI开发流程
一. 引言 最近在做一个自己的项目,就是基于FastDDS封装一套JAVA库,让android和java应用可以使用dds的功能。 由于FastDDS是使用C编写的开源库,因此java的类库想要调用FastDDS的接口,需要额外编写一个JNI层的动态库对FastDDS的接口…...

STM32G4 电机外设篇(二) VOFA + ADC + OPAMP
目录 一、STM32G4 电机外设篇(二) VOFA ADC OPAMP1 VOFA1.1 VOFA上位机显示波形 2 ADC2.1 用ADC规则组对板载电压和电位器进行采样 3 OPAMP(运放)3.1 结合STM32内部运放和ADC来完成对三相电流的采样3.2 运放电路分析 附学习参考…...
RAG应用:交叉编码器(cross-encoder)和重排序(rerank)
文章目录 Sentence Transformers交叉编码器交叉编码器使用示例检索和重排序Sentence Transformers Sentence Transformers 支持两种类型的模型: Bi-encoders 和 Cross-encoders。Bi-encoders 更快更可扩展,但 Cross-encoders 更准确。虽然两者都处理类似的高水平任务,但何时…...

微服务难题?Nacos服务发现来救场
文章目录 前言1.什么是服务发现2.Nacos 闪亮登场2.1 服务注册2.2 服务发现 3.Nacos 的优势3.1 简单易用3.2 高可用3.3 动态配置 4.实战演练4.1安装 Nacos4.2 服务注册与发现示例代码(以 Spring Boot 为例) 总结 前言 大家好,我是沛哥儿。今天…...

C# 结合PaddleOCRSharp搭建Http网络服务
Windows打开端口: 控制面板 > 系统和安全 > 防火墙> 高级设置 → 入站规则 → 右侧选择 → 新建规则 → 端口 → 协议类型 TCP→ 端口 using System; using System.Drawing; using System.IO; using System.Net; using System.Text; using System.Threadi…...

【连接器专题】SD卡座规格书审查需要审哪些方面?
在审查SD卡座规格书时,我们需要考虑哪些方面? 首先在拿到一份SD卡座的详细规格书时,一般供应商给到的规格书中包括了一些基础信息、产品图纸信息、技术参数信息,同时有些供应商会给出产品可靠性测试报告。因此我们会从这几个要素去看规格书。 基础信息 基础信息一般会给变更…...
JS手写代码篇---手写节流函数
8、节流函数 什么是节流函数? 指规定一个单位时间,在这个单位时间内,只能有一次触发事件的回调函数执行,如果在同一个单位时间内某事件被触发多次,只有一次能生效。 与防抖函数有什么区别? 防抖函数是延…...
UE5 C++动态调用函数方法、按键输入绑定 ,地址前加修饰符
UE5 C动态调用函数方法、按键输入绑定 ,地址前加修饰符&,这个符号忘记输入的话,编译一直报错不通过 void ASnakeHead::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerIn…...

eBest智能价格引擎系统 助力屈臣氏饮料落地「价格大脑」+「智慧通路」数字基建
从价格策略到终端执行,数字化正在重构饮料行业竞争壁垒! 近日,eBest为屈臣氏饮料提供的智能价格引擎系统已正式上线并投入运营。同时,基于eBest SFA方案且与屈臣氏饮料业务场景深度耦合的Smart Field Operation智慧通路项目正式启…...
ubuntu mysql 8.0.42 基于二进制日志文件位置和GTID主从复制配置
目录 1 操作系统信息 2 MySql数据库版本 3 主机列表 4 MySQL服务器都安装依赖 5 主库服务器安装mysql软件步骤: 6 从服务器安装mysql软件步骤 7 基于二进制日志文件位置的主从复制配置 8 使用全局事务标识符进行主从复制(GTID) 9 部署过程遇到问题 1 操作系…...

Kettle 远程mysql 表导入到 hadoop hive
kettle 远程mysql 表导入到 hadoop hive (教学用 ) 文章目录 kettle 远程mysql 表导入到 hadoop hive创建 对象 执行 SQL 语句 -mysql 导出 CSV格式CSV 文件远程上传到 HDFS运行 SSH 命令远程登录 run SSH 并执行 hadoop fs -put 建表和加载数据总结 创…...

完整解析 Linux Kdump Crash Kernel 工作原理和实操步骤
完整解析 Linux Kdump Crash Kernel 工作原理和实操步骤 一、前言 在使用 Linux 操作系统进行内核开发或者系统维护时,内核 panic 是最常见的系统崩溃环节。如果想要在内核崩溃后立即分析环境和输出内核内存 dump,Kdump crashkernel 是最接近完美的解…...

菜鸟之路Day36一一Web开发综合案例(部门管理)
菜鸟之路Day36一一Web开发综合案例(部门管理) 作者:blue 时间:2025.5.28 文章目录 菜鸟之路Day36一一Web开发综合案例(部门管理)一.环境搭建二.开发规范三.部门管理3.1查询3.2删除3.3新增3.3修改根据id来…...
LangChain实战:MMR和相似性搜索技术应用
导读:在当今大数据和人工智能快速发展的背景下,向量数据库的搜索技术正成为技术人员必须掌握的核心技能。本文将深入探讨LangChain框架与Milvus向量数据库的整合实践,重点对比分析相似度搜索与最大边际相关性(MMR)搜索…...

第 1 章:学习起步
1. React Native前置知识要求 在开始学习React Native之前,有一些前置知识你需要了解。不过别担心,我会带你逐步掌握这些内容,让你顺利入门。 1.1. JavaScript是必须掌握的 学习React Native,JavaScript是基础。你需要了解Java…...

SQL查询——大厂面试真题
前言 本文总结了SQLite数据库的核心操作要点:1. 基础语法:SQL语句不区分大小写,多语句需用分号分隔,支持多种注释方式2. 表操作:包括创建表(定义主键、非空约束等)、插入/更新/删除数据、添加/…...

Linux-pcie ranges介绍
参考链接:https://elinux.org/Device_Tree_Usage#PCI_Host_Bridge pcie bar高低端BAR起始地址介绍 pcie设备树节点 / {compatible "rockchip,rk3588";interrupt-parent <&gic>;#address-cells <2>;#size-cells <2>;pcie3x4: p…...

⭐ Unity AVProVideo插件自带播放器 脚本重构 实现视频激活重置功能
一、功能概述 本笔记记录直接修改插件自带的场景播放其中 原始的 MediaPlayerUI 脚本,实现激活时自动重置播放器的功能。 我用的插件版本是 AVPro Video - Ultra Edition 2.7.3 修改后的脚本将具备以下特性: 激活 GameObject 时自动重置播放位置到开头 可配置是否在重置后自…...
互联网大厂Java求职面试:云原生微服务架构设计与AI大模型集成实战
互联网大厂Java求职面试:云原生微服务架构设计与AI大模型集成实战 面试场景设定 人物设定: 李明(技术总监):拥有15年分布式系统架构经验,主导过多个亿级用户系统的重构,对云原生和AI融合有深…...

详解K8s API Server 如何处理请求的?
详解K8s API Server 如何处理请求的? Kubernetes(K8s)是一个强大的容器编排系统,而API Server(kube-apiserver) 是它的核心组件之一。 如果把 K8s 比作一个国家,API Server 就是政府机构,所有资源的创建、修改、删除都要经过它审批! 🎯 API Server 的作用 📌 A…...

微调数据处理
1. 数据爬取 我们将爬取的1G文件都保存到all_m_files目录下 查看原始数据文件数量: find /root/all_m_files -type f | wc -l 2. 数据预处理 仅保留UTF-8 格式文件,且所有保留的代码文件长度必须大于20行 import os import pandas as pddef try_read…...
✨1.1.1 按位与运算替代求余运算优化场景
在计算机编程中,使用按位与运算(&)替代求余运算(%)可以提高效率的特殊场景是:当除数是 2 的整数次幂(即 ( b 2^n ),其中 ( n ) 为自然数)时。例如,( b …...