Post

基于大语言模型的论文管理系统设计

基于大语言模型的论文管理系统设计

alt textchats@mongoDB

alt textchatitems@mongoDB

公告板

  1. 数据库了解s
  2. 向量化调整s
  3. 向量化 向量数据库 向量化搜索s
1
2
3
4
5
docker exec -it mongo bash # 进入mongoDB容器
mongo -u myusername -p mypassword --authenticationDatabase admin
use fastgpt
show collections

※读点书

  1. SOTA@wikipedia@0928
  2. 資料科學常見觀念:指標的侷限以及 SOTA 潛藏的陷阱@0928
  3. 【Day 26】當今最強大的SOTA模型ChatGPT(上)-prompt?instruction?RLHF?
  4. 视觉大语言模型最新综述!全面盘点SOTA模型~
  5. 一文看懂:MCP(大模型上下文协议)@0928
  6. ※大模型应用与Agent应用开发技术栈-全景图
  7. ※[Day 18] - 文字向量化的前世今生:簡介
  8. NLP 系列-2:文字向量化 - tfidf
  9. NLP-(1)-文本向量化
  10. 评估RAG

alt text部署图

alt text流程图

docker-list@fg

  • fastgpt@前后端api@port3000
  • airproxy@llm代理层
  • pg@postgreSQL@带pgvector扩展
  • sandbox@安全沙箱执行环境
  • redis@缓存会话与存储
  • fastgpt-mcp-server@介于fastgpt-aiproxy之间的控制中心
  • mongo@非结构化数据(聊天,日志,零时数据)@rs0副本集配置,方便后续高可用
  • aiproxy_pg@aiproxy专用的PostgreSQL,与pg分离避免数据混合

COP

标题:大语言模型智能体在论文管理系统中的应用研究与实现

Title: Research and Implementation of Large Language Model Agents in Paper Management Systems

摘要

本论文旨在通过研究现有的大语言模型技术、检索增强生成框架和提示工程,设计 一个集成大语言模型技术、检索增强生成框架和内容管理系统的智能论文管理平台。该 系统利用大语言模型技术实现论文管理系统的智能化,支持通过聊天交互方式获取论文 相关知识。同时,通过检索增强生成框架的检索、生成机制,缓解大语言模型在生成过 程中可能出现的幻觉现象和上下文记忆问题。论文还探讨了如何通过优化提示工程来提 升大语言模型的回复质量,并采用 ROUGE/BLEU 算法评估模型的性能。最终,系统为 学术研究者提供了一个高效、智能的工具,帮助他们更好地管理文献、获取信息并提高 论文阅读效率。

关键词: 大语言模型, 检索增强生成, 内容管理系统, 提示工程, 论文

向量化,词嵌入

Abs

This paper aims to design an intelligent paper management platform that integrates existing large language model (LLM) technology, Retrieval-Augmented Generation (RAG) framework, and a content management system (CMS) through research. The system leverages LLM technology to automate paper management, supporting the acquisition of paper-related knowledge via chat interaction. Additionally, through the retrieval and generation mechanisms of the RAG framework, the system mitigates issues such as hallucinations and context memory problems that may arise during the generation process. The paper also explores how optimizing prompt engineering can improve the response quality of large language models and uses ROUGE/BLUE algorithms to evaluate model performance. Ultimately, the system provides an efficient and intelligent tool for academic researchers, helping them better manage literature, access information, and enhance research productivity.

Key Words: LLM,RAG,CMS,Paper

1.绪论

1.1 背景及意义

随着高等教育的普及和科研需求的增加,学术研究不再局限于硕博群体,越来越多 的本专科生也需要具备基本的学术素养。据国家统计局数据显示,2023 年我国本科及 专科毕业生总数达到 1047 万人1。这意味着,仅仅是尚未接受系统科研训练的大学生 群体,就已形成千万级别的潜在学术用户,他们在课程论文、综述写作、毕业设计等环 节,都存在着查阅论文以选定研究方向和撰写学术报告的刚性需求。而如果进一步考虑 硕士、博士及博士后等科研主力人群,这一数字将更加庞大。然而,尽管科研能力培养 对学术发展至关重要,部分高校在本科阶段的论文阅读与学术研究训练仍存在明显不 足2。官媒报道显示,部分高校几乎没有专门的论文阅读与研究方法指导课程,这导 致许多学生在进入科研领域时面临信息检索困难、选题不清晰、文献综述质量较低等问 题3

在大数据与人工智能技术快速发展的背景下,大语言模型(Large Language Model, LLM)正成为解决这一问题的重要工具4。近年来,LLM 在自然语言处理(Natural Language Processing,NLP)领域展现出卓越的能力,包括语言理解、文本生成、语义分 析、中心思想提取等核心任务。自 2022 年 OpenAI 推出 ChatGPT 以来,LLM 在学术研 究、内容创作、编程辅助等领域的应用得到了广泛关注,并逐渐成为新一代智能知识管 理工具。然而,尽管 LLM 在科研领域展现出巨大的潜力,其应用仍面临一些关键的局 限性56。在没有外部知识库支持的情况下,LLM 在知识时效性、推理能力、上下文 记忆、计算资源消耗以及交互适配性方面的不足,往往限制了其在实际科研场景中的有 效应用。例如,模型的知识库仅能覆盖训练时的内容,难以应对快速变化的学术研究需 求;此外,模型在处理多步推理、复杂逻辑分析等任务时,仍存在较大挑战。更重要的是,LLM 的上下文记忆能力有限,导致长时间交互中的一致性差,影响用户体验和任 务的连续性。尤其在论文管理系统中,这些局限性可能导致系统无法始终提供最新的研 究成果,或在论文解读和推荐过程中产生逻辑不严谨或缺乏依据的结论。

为了解决这些问题,学界提出了多种优化方案,其中两项关键技术尤为重要。一是 提示工程(Prompt Engineering),其核心目标是通过优化输入提示,提高 LLM 的生成质 量,使其能够给出更精准、可靠的回答78。提示工程已形成一套完整的理论体系,并 在实际应用中不断得到验证,成为大模型应用开发的基础方法之一。二是检索增强生成 (Retrieval-Augmented Generation, RAG),该方法通过结合信息检索技术,使 LLM 能够基 于外部知识库提供更准确的回答,同时具备可溯源性910。RAG 不仅提高了 LLM 处理 长文本的能力,也增强了其信息可信度,使其在学术搜索、智能问答等任务中具备更强 的实用性。工业界主流专注在论文阅读的大模型产品,国外主要包括 TXYZ、Scholarcy、 Humata、Sider、perplexity,国内主要包括密塔 AI、包阅 AI、Kimi。不过国外产品由于 网络原因,时常面临出现无法稳定使用的情况,而国内的产品文档大多存储在线上知识 库,很难保证隐私与独立性。

与此同时,内容管理系统(Content Management System, CMS)已成为工业界广泛 应用的内容管理解决方案1112。CMS 通过结构化存储、权限管理、全文检索等功能, 为大规模文档管理提供了稳定、高效的支撑。全球众多知名企业和机构均基于 CMS 进 行内容管理,如《纽约时报》利用 Drupal 搭建的 CMS 处理每天数百万篇新闻文章,耐 克(Nike)采用基于微服务架构的 CMS 管理全球电商内容,IBM 则使用定制 CMS 支 持多业务部门的内容发布与安全管理。随着人工智能技术的发展,将 LLM 组件集成到 CMS 中,已成为智能化内容管理的新趋势,能够显著提升用户交互体验,提高信息获 取的精准度和效率。

1.2 领域现状与相关工作

LLM 以 Transformer 架构为基础13,通过大规模预训练和微调,在文本生成、信息 检索、代码生成等任务上展现出强大的能力。目前,主流的通用大语言模型包括 OpenAI 的 GPT 系列、Anthropic 的 Claude、Google DeepMind 的 Gemini、Meta 的 LLaMA 以及 Mistral 等,大多提供成熟的 api 接口,在获得 api key 的基础上可以供开发者调用各种模型接口。大语言模型应用已经深入多个行业,并在知识管理与信息检索方面展现出重 要价值。例如,在代码生成领域,GitHub Copilot 和 Code Llama 通过 LLM 辅助开发者 提升编程效率。在科研文献管理方面,基于大模型的智能论文管理系统正在成为研究者 的重要工具。这些系统不仅能够提供论文检索和智能摘要功能,还能够结合 RAG 技术 优化文献推荐,提升学术搜索的精准度。近年来,AI 驱动的科研助手逐渐受到关注,如 Paper-QA 这一类项目探索如何利用 LLM 自动分析学术论文、提取关键信息,甚至帮助 研究者进行论文写作和可视化数据分析

随着大规模预训练语言模型的出现,尤其是 GPT-3 等大型模型的发布,提示工程逐 渐成为自然语言处理领域的重要研究方向,其核心目的是通过设计有效的输入提示来 引导模型生成准确且符合预期的输出。提示工程在大模型中应用已扩展到多个领域,如 文本生成、问答系统、情感分析等,常见方法有提示模板设计、微调技术等8,并且在 GPT-3 上通过实验验证了少量示例(few-shot)和零示例(zero-shot)任务下,适当设计 的提示能够使得模型在各种复杂任务中表现优异,证明了大语言模型不仅能够在传统监 督学习中取得优异表现,还能通过提示灵活适应少样本或零样本任务7。。

检索增强生成(Retrieval-Augmented Generation, RAG)技术通过在生成过程中引入 外部知识库,有效缓解了 LLM 生成幻觉的问题,提高了知识的准确性和可溯源性14。 此外,多模态融合技术的发展,使得大语言模型能够同时处理文本、图像、音频等多种 数据,提高了对复杂信息的理解能力。在推理能力优化方面,研究者们提出了思维链 (Chain of Thought, CoT)和思维树(Tree of Thought, ToT)等方法,通过模拟人类的推 理过程,显著提升了模型在数学推理、复杂问答等任务上的表现1516

基于以上技术和应用的发展趋势,本研究的核心目标是构建一个结合大语言模型、 RAG 技术与内容管理系统的论文管理系统,以智能化的方式提升论文存储、检索和理 解的效率。该系统不仅能够支持论文的自动拆解与向量化存储,还能够通过智能问答提 供有效来源支撑,从而为研究者提供更加高效稳定的知识获取体验。

1.3 论文目标与设计内容

本项目旨在设计并实现一个集成最新 AI 技术的 CMS,结合大语言模型智能体,特 别是用于学术研究的 Chat-on-Paper 软件系统,旨在帮助初学者快速阅读论文。该系统将通过智能化的辅导与支持,帮助学术新人解决论文存储、学科术语理解、交互式问答 等辅助,提升其科研效率。具体目标如下:

  1. 构建智能内容管理系统(CMS):系统将实现高效的学术内容存储、管理与检索功 能。结合 LLM 和 RAG 技术,能够根据用户存储的文献,进行向量化存储。
  2. 设计 Chat-on-Paper 功能:本系统的核心功能是 Chat-on-Paper,它能够与用户进行 实时对话,高质量回答论文相关问题,通过与指明章节、关键词,Chat-on-Paper 还 能够基于原文给出依据。
  3. 缓解大模型长上下文记忆问题:针对大语言模型在处理长文本时,容易出现上下文 丢失或记忆不足的问题,项目将通过 RAG 技术试图缓解这一问题。
  4. 设计高质量提示工程并评估:在大语言模型的应用中提示工程的设计至关重要。本 项目将根据具体的任务需求,设计高质量的提示词并进行效果评估,以确保大模型 有更好的表现。

1.4 论文组织结构

本论文一共六个章节,组织架构如图 1.1 所示:

alt text

图 1.1 全文组织架构

第一章介绍了本研究的背景、意义、目标与设计内容,并概述了论文的结构安排; 第二章讨论了相关领域的理论基础,包括大语言模型智能体、提示工程、内容管理系统(CMS)、检索增强生成(RAG)等核心技术;第三章描述了大语言模型智能体辅助系统 的构建过程,包括系统的软件架构设计、用户界面展示及提示工程的设计;第四章展示 了系统在不同学术场景中的应用,分析具体案例,并评估系统的实际效果;第五章总结 了本文,提出了当前研究存在的问题,并展望了未来的研究方向。

2.背景知识与相关技术

2.1 大语言模型智能体

在对 LLM 进行开发和应用时,通常通过 API 调用或直接与 LLM 进行交互。配置 一些参数可以获得不同的提示成果,这些参数调整对于提高相应的可靠性十分重要,以 下是使用不同 LLM 提供程序时会遇到的常见设置:

参数描述
Temperature控制模型输出的随机性,数值与回复随机性成正比。
Top P限制输出的概率累积值以控制确定性,数值与确定性成反比。
Max Length限制模型生成的词元数量,防止生成过长或冗余的文本。
Stop Sequences设置一个或多个停止符号,当生成的文本中出现这些符号时停止输出。
Frequency Penalty对重复的 token 施加惩罚,频繁出现的词会被惩罚,减少重复。
Presence Penalty对所有重复的 token 施加惩罚,无论它们出现多少次。
表 2.1 大模型参数描述

Temperature。简单来说 temperature 的参数值越小,模型倾向于返回确定的结果。而 提高该参数模型则会返回更随机的结果,这通常适用于多样化或创造性任务场景,实际 上调小 temperature 等同于增加其他可能 token 的权重。论文阅读场景这类需要质量保障 的任务,可以设置更低的 temperature 值,以促使模型基于事实返回更真实和简洁的结 果。而 Top p 用来控制模型返回结果的确定性。在需要准确和事实答案的情况下,调低 此参数。通常是修改 Temperature 和 Top P 其中一个参数就行。

Max Lengthen 用来控制大模型生成的词元集合数(tokens),有助于防止大模型生 成冗长或不相关的响应并控制文本。Stop Sequences 是另一控制大模型响应长度和结构 的参数,可以指定生成数量上限。

Frequency Penalty 对下一个生成的 token 进行惩罚,和 token 在响应和提示中已出现的次数成正比,也就是 Frequency Penalty 越高,某个词再次出现的可能性越小,设置重 复数量多的 token 设置更高的惩罚可以减小响应中单词的重复。类似地 presence penalty 也是对重复的 token 施加惩罚,不同的是对所有重复的 token 都是相同,例如出现两次 和十次的 token 将受到同样的惩罚,设置此参数更低可以生成更专注、防止重复。

2.2 提示工程

提示工程的主题包括文本概括、信息提取、问答、文本分类、对话、代码生成、推 理。文本概括是指对一段文本形成摘要,信息提取则是从给定段落提取信息,问答是给 出上下文和问题要求给出答案,文本分类例如分类对话正向、负向、中性,对话又被称 作角色提示(Role Prompting),例如要求 AI 作为导师给出意见,代码生成则是要求大 模型实现某功能的代码,推理则是 LLM 面临最困难任务之一,例如数学运算。

评估大模型生成回答的经典算法包括 BLEU 和 ROUGE,这两种评估方法主要用于 衡量自动生成文本与参考文本之间的相似性,帮助我们评估生成内容的质量1718

BLEU 主要应用于文本生成,核心计算方法基于 n-gram 精确匹配度和惩罚因子。具 体公式如下:

\[\begin{equation} BLEU = BP \cdot \exp \left( \sum_{n=1}^{N} w_n \cdot \log P_n \right) \label{eq:bleu} \end{equation}\]
公式 1

其中:

\[\begin{equation} BP = \begin{cases} 1 & \text{if } c > r \\ \exp(1 - \tfrac{r}{c}) & \text{if } c \le r \end{cases} \label{eq:bp} \end{equation}\]
公式 2

其中,c 是生成文本的长度,r 是参考文本的长度。Pn 是 n-gram 精确匹配度,即生 成文本与参考文本在 n 个连续词组(n-gram)上的匹配比例。wn 是权重,一般情况下 对于不同的 n-gram(如 1-gram、2-gram 等)给予相同权重。

ROUGE 是一组评估自动文本生成质量的算法,特别用于摘要、文本生成等任务, 通过比较生成文本与参考文本之间的重叠度来评估模型的生成能力,主要侧重召回率。ROUGE 包括多个变体,其中最常用的是 ROUGE-N、ROUGE-L,分别用于计算 n-gram 的召回率、最长公共子序列(Longest Common Subsequence, LCS)的召回率。其公式为:

\[\begin{equation} ROUGE\text{-}N = \frac{\sum_{i=1}^{N} \text{Count}_{match}(n\text{-}gram_i)} {\sum_{i=1}^{N} \text{Count}_{ref}(n\text{-}gram_i)} \label{eq:rouge-n} \end{equation}\] \[\begin{equation} ROUGE\text{-}L = \frac{\text{LCS}(gen,\, ref)}{\text{length of ref}} \label{eq:rouge-l} \end{equation}\]

其中,Countmatch 是生成文本中与参考文本相匹配的 n-gram 个数,Countref 是参考文 本中的 n-gram 个数。LCS 表示生成文本和参考文本的最长公共子序列(LCS)的长度。

2.3 内容管理系统

内容管理系统(CMS)是一种用于创建、组织、存储和管理数字内容的软件系统, 广泛应用于企业、新闻媒体和电子商务等领域。其核心功能包括内容存储、用户权限管 理、版本控制、全文检索及内容推荐,帮助用户高效管理和检索海量信息。

随着技术的发展,CMS 已形成多种架构和技术方案。传统 CMS(如 WordPress、Drupal)适用于结构化内容的管理,提供完整的前后端功能。无头 CMS(Headless CMS)(如 Strapi、Contentful)强调前后端分离,通过 API 提供内容服务,能够更灵活地适应现代 Web 和移动端应用。基于微服务的 CMS(如 Nike 采用的 CMS 体系)则支持高并发与 大规模内容管理,满足企业级需求。

在论文管理系统的应用场景中,CMS 负责论文的存储与组织,并提供高效的查询 与管理接口。结合 LLM,可实现智能化的内容处理,例如自动生成论文摘要、分类论文 以及构建知识关联网络。此外,随着 Chatbot 组件在 CMS 中的广泛应用,如 Zendesk 和 HubSpot 通过 Chatbot 提供智能客服,论文管理系统也可以集成 LLM 组件,实现智能问 答和论文推荐,进一步提升学术研究的效率和体验。

2.4 检索增强生成

检索增强生成(Retrieval-Augmented Generation, RAG)是一种结合信息检索与生成 式 AI 的混合方法,旨在提升大语言模型(LLM)在长文本任务中的准确性和可控性。 RAG 通过先进的文档检索技术,将检索到的信息输入 LLM,使其能够基于真实数据生 成答案,从而缓解传统 LLM 生成“幻觉”问题。

alt text

图 2.1 RAG 流程图

RAG 主要包括两个关键步骤:首先是检索阶段(Retrieval),即从外部数据库或向量 存储中查找与查询最相关的文本;接着是生成阶段(Generation),将检索到的文本作为 上下文输入 LLM,引导其生成基于事实的答案。常见的 RAG 框架包括 FAISS、Weaviate 和 ChromaDB 等,这些工具能够高效处理大规模文本数据,实现快速检索与匹配。

在论文管理系统中,RAG 技术可以用于构建智能论文搜索与问答系统。用户输入 查询后,系统首先在论文数据库中检索相关内容,然后结合 LLM 生成精准的回答。算 法 1 是 RAG 基本的实现方案:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Algorithm 1: RAG-based PDF QA Initialization
Input:  PDF file D, OpenAI API Key
Output: Ready-to-use QA system
1: Load PDF D using PyPDFLoader
2: Split D into chunks T
3: Use embedding model to embed T as vectors E
4: Store E in PgVector vector DB
5: Build RAG chain using ChatOpenAI and retriever
6: Init chat history
7: while query q received do
8:     Answer q using RAG
9:     Retrieve top-k similar chunks from vector DB
10:    Update chat history
11: end while

3. 大语言模型应用研究&

3.1 软件架构

alt text

图 3.1 软件架构图

在调研现有的内容管理系统以及 RAG 框架的基础上,本系统设计了一套基于大语 言模型的论文辅助阅读软件架构,整体架构如图 3-1 所示。

用户界面采用 React 技术栈开发,提供简洁直观的论文阅读与交互界面。后端则基 于开源的 FastGPT 框架开发以应用 RAG 技术,实现上下文增强与问答能力。文档向量化 后存储于 PostgreSQL 数据库,数据库镜像使用支持向量索引的 pgvector/pgvector:0.8.0- pg15 版本,确保高效的语义检索能力;同时,系统也集成了 MongoDB(mongo:5.0.18) 用于日志与用户数据的非结构化存储。cms 部分主要实现文档的增删改查,基于 strapi 开发。

在大模型接入方面,系统通过接入 ChatECNU 提供的 API 接口服务,包括通用语言 模型 ecnu-plus、增强推理模型 ecnu-max,以及嵌入模型 ecnu-embedding,以提升内容召回与响应质量。通过上述模块的协同运行,系统实现了从论文上传、向量化存储、到交 互式问答的完整流程。

3.2 用户界面展示

登录之后,用户主要的活动有两个,第一个是上传文件到 cms,可选启用向量化的 文档。第二个是和 llm 进行交互,通过对话获取论文,回复通常包括引用、上下文、用 时。研究者需要从论文中获取知识时,需要将相关文献以 PDF 格式上传至 cms。在成功 上传之后,cms 将在后台自动对文档进行向量化存储。

alt text

图 3.2 登录界面

alt text

图 3.3 文件上传界面

alt text

图 3.4 文档向量化界面

alt text

图 3.5 聊天界面

3.3 提示工程设计

对论文阅读任务,可拆分为四个主要任务,包括文本概括、信息提取、问答和对话。 针对这些任务,零样本提示能够让模型无需示例直接完成任务,少样本提示通过少量示 例提升模型的理解能力,而 CoT 技术则帮助模型通过逐步推理解决复杂问题。同时,提 示词具体、明确、描述做什么而非不做什么这些通用技巧也十分重要。

3.4 cms

4. 论文对话系统设计和实现&

本章基于第三章优化的检索增强技术, 设计并实现了一套面向初学者的论文对话系统. 该系统旨在通过大语言模型技术, 并使用知识库内论文作为上下文, 为新研究者提供高反馈和交互式的入门辅助. 本章首先分析了具长上下文论文对话系统的功能需求与性能要求, 随后详细介绍了系统的整体架构设计和核心功能模块实现, 最后通过功能测试验证了其可行性和实用性.

4.1 具长上下文论文对话系统的需求分析&

具长上下文论文对话系统旨在通过矢量化技术, 以及外设知识库以增强大语言模型, 使其具备长上下文的对话能力. 当新研究者面对新领域文献无从下手, 系统能充当导师角色, 运用知识库内的论文引导研究者一步步理清思路, 逐渐习惯主动阅读论文. 具上下文论文对话系统主要的用例如图5-1所示, 本节从长上下文这一角度出发, 从功能性需求和非功能性需求两个方面进行分析.

alt text图4-1 具长上下文论文对话系统的用例分析

系统的功能需求主要有:

  • (1) 对话大语言模型: 系统提供大语言模型对话界面, 方面用户直接通过对话阅读论文, 并在交互式阅读论文的过程中逐渐得到引导, 根据每一次系统的反馈降低新研究者的负担.
  • (2) 本地文件管理: 系统提供本地的内容管理系统, 用户可在本地对打算用于系统的文件, 进行上传,删除,编辑,查询的基本操作.
  • (3) 本地知识库管理: 系统从本地的内容管理系统中, 可选择上传至知识库作为大模型的聊天上下文.上传后系统将对文本进行矢量化存储, 以运用算法分析与聊天内容的相关性.
  • (4) 检阅历史对话: 系统提供历史对话记录的存储与查询, 用户可通过输入或选择历史口令以定位对话, 直接在系统内查看完整的对话记录, 保留引用文献的记录.

系统的非功能需求主要有:

  • (1) 实时性: 系统需要能够以低延迟(<1分钟), 完成聊天交互, 以支持研究者能多次以低颗粒度的方式调整使用系统的策略
  • (2) 易用性: 系统界面需要简洁直观,扁平化使用户能快速配置和使用; UI采用常见主流的框架, 使用户快速适应
  • (3) 长上下文和可靠性: 系统能提供较长上下文的大语言模型聊天能力以应对论文对话, 并具备较高稳定性与容错能力, 在长时间运行中保持稳定

4.2 系统设计&

4.3 基于Rag的论文对话系统开发&

4.3.1 系统开发环境

类型软件/版本
OSWindows11
IDEVisual Studio Code 1.104.1
LanguageJava 21.0.7, Python 3.12.4, React 19.1.0

4.3.1 系统功能设计

本文采用React 框架开发用户界面。下面介绍系统主要功能的设计.

4.3.1 系统功能测试

4.4 本章小结&

5. 总结与展望

5.1 全文总结

在本文中,通过调研现有 LLM 应用和 RAG、提示工程技术,设计并实现了一个集 成 LLM、RAG 的论文管理系统。通过 RAG 的检索和生成机制,本系统能够一定程度 上提供 LLM 更长的上下文记忆,并主动提供文献,缓解大模型幻觉;结合提示工程中 的少样本提示、CoT 等技术优化大模型的回复,同时以 ROUGE/BLEU 算法作为参考验 证其有效性。

5.2 问题与展望

尽管通过 RAG 技术提供大模型更长上下文并一定程度上缓解大模型幻觉,但并非 完全消除,因此用户在使用大模型进行辅助文献阅读时仍然需要得到的大模型回复,未 来的研究可以进一步改善模型的鲁棒性。目前的系统只提供基础的主动式论文阅读辅 助功能,缺乏足够的个性化功能,无法根据用户的学术背景等信息提供定制化推荐和建 议,未来可以加强用户画像的构建,进一步提升系统的主动辅助能力,降低使用门槛。 另外,提示工程目前尚且需要人为引入,之后可以在自动生成方面进行研究。

附录

A.1 RAG 关键代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# 1.导入依赖
!pip install langchain pypdf sentence_transformers chromadb tiktoken openai

from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.document_loaders import TextLoader, PyPDFLoader
from langchain.text_splitter import  RecursiveCharacterTextSplitter
from langchain.vectorstores import Chroma
from langchain.chat_models import ChatOpenAI
from langchain.chains import ConversationalRetrievalChain

# 2.获取api_key
import os
os.environ["OPENAI_API_KEY"] = "sk-"

# 3.读取档案
# 获取当前脚本所在目录
script_dir = os.getcwd()

# 生成正确的路径
file_path = os.path.join(script_dir, "example_data", "alg.pdf")

# 选择合适的 loader
loader = PyPDFLoader(file_path) if file_path.endswith(".pdf") else TextLoader(file_path)

# 4.分割
# 选择splitter 并将文字切分多个chunk
splitter = RecursiveCharacterTextSplitter(chunk_size=5000, chunk_overlap=0) 
texts = loader.load_and_split(splitter)
print(f"分割后有 {len(texts)} 个文本块")

# 5.建立本地 db 嵌入模型
from langchain_openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(texts, embeddings)

# 6.对话 chain chatbot
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)

qa = ConversationalRetrievalChain.from_llm(ChatOpenAI(temperature=1), vectorstore.as_retriever())
chat_history = []
while True:
    query = input('\nQ: ') 
    if not query:
        break
    result = qa({"question": query + ' (用简体中文回答)', "chat_history": chat_history})
    print('A:', result['answer'])
    chat_history.append((query, result['answer']))

    results = vectorstore.similarity_search(query, k=5)  # 取前5个最相关文档
    for i, result in enumerate(results, start=1):
        page_number = result.metadata.get("page", "未知")  # 获取页码
        print(f"#{i} 文档内容 (第 {page_number+1} 页): {result.page_content[:500]}.\n")  # 只显示前500字符

A.2 OpenAI Chat API 参数配置(JSON 格式)

1
2
3
4
5
6
7
8
9
10
[language=yaml, caption={大模型参数配置}, label={lst:model-params}, frame=single]
{
  "temperature": 0.0,
  "top_p": 1.0,
  "max_tokens": 512,
  "stop": ["\n"],
  "frequency_penalty": 0.0,
  "presence_penalty": 0.0
}

A.3 ROUGE/BLEU 评估脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from rouge_score import rouge_scorer
from nltk.translate.bleu_score import sentence_bleu, SmoothingFunction

# 示例参考答案和模型输出
reference = "--" 
candidate = "--" 

# ROUGE 评估
def evaluate_rouge(ref, gen):
    scorer = rouge_scorer.RougeScorer(['rouge1', 'rouge2', 'rougeL'], use_stemmer=True)
    scores = scorer.score(ref, gen)
    return scores

# BLEU 评估
def evaluate_bleu(ref, gen):
    smoothie = SmoothingFunction().method4
    score = sentence_bleu([ref.split()], gen.split(), smoothing_function=smoothie)
    return score

# 执行评估
rouge_scores = evaluate_rouge(reference, candidate)
bleu_score = evaluate_bleu(reference, candidate)

for k, v in rouge_scores.items():
    print(f"{k}: Precision={v.precision:.4f}, Recall={v.recall:.4f}, F1={v.fmeasure:.4f}")

参考文献

  1. 国家统计局中华人民共和国 2023 年国民经济和社会发展统计公报 [M]. 2024 年 2 月 29 日发布2024. https://www.stats.gov.cn/sj/zxfb/202402/t20240228_1947915.html. ↩︎

  2. 王明涛, 李茜, 韩其恒. 指导教师是如何影响本科毕业论文质量的?——以上海财经大学金融学院为例 [J]. 军事高等教育研究, 2020, 42(4): 29-40. ↩︎

  3. 央视网大学四年不会写论文,问题出在哪?[N]. https://opinion.cctv.com/2024/07/04/ARTIcW6K9tURmpPfT3rXWJjt240704.shtml. 访问日期: 2024 年 06 月 12 日. 2024. ↩︎

  4. Zhao, W. X., Zhou, K., Li, J., Tang, T., Wang, X., Hou, Y., Min, Y., Zhang, B., Zhang, J., Dong, Z., A survey of large language models[J]. arXiv preprint arXiv:2303.18223, 2023, 1(2). ↩︎

  5. Ji, Z., Lee, N., Frieske, R., Yu, T., Su, D., Xu, Y., Ishii, E., Bang, Y. J.,Madotto, A., Fung, P. Survey of hallucination in natural language generation[C]. ACM computing surveys, 2023, 55(12): 1-38. ↩︎

  6. Zhao, H., Chen, H., Yang, F., Liu, N., Deng, H., Cai, H., Wang, S., Yin, D., Du, M. Explainability for large language models: A survey[C]. ACM Transactions on Intelligent Systems and Technology, 2024, 15(2): 1-38. ↩︎

  7. Brown, T., Mann, B., Ryder, N., Subbiah, M., Kaplan, J. D., Dhariwal, P., Neelakantan, A., Shyam,P., Sastry, G., Askell, A., Language models are few-shot learners[J]. Advances in neural information processing systems, 2020, 33: 1877-1901. ↩︎ ↩︎2

  8. Sahoo, P., Singh, A. K., Saha, S., Jain, V., Mondal, S., Chadha, A. A systematic survey of prompt engineering in large language models: Techniques and applications[J]. arXiv preprint arXiv:2402.07927, 2024. ↩︎ ↩︎2

  9. Zhao, P., Zhang, H., Yu, Q., Wang, Z., Geng, Y., Fu, F., Yang, L., Zhang, W., Jiang, J., Cui, B. Retrieval-augmented generation for ai-generated content: A survey[J]. arXiv preprint arXiv:2402.19473, 2024. ↩︎

  10. Gao, Y., Xiong, Y., Gao, X., Jia, K., Pan, J., Bi, Y., Dai, Y., Sun, J., Wang, H., Wang, H. Retrievalaugmented generation for large language models: A survey[J]. arXiv preprint arXiv:2312.10997, 20232. ↩︎

  11. Alalwan, J. A. Weistroffer, H. R. Enterprise content management research: a comprehensive review[J]. Journal of Enterprise Information Management, 2012, 25(5): 441-461. ↩︎

  12. Maroengsit, W., Piyakulpinyo, T., Phonyiam, K., Pongnumkul, S., Chaovalit, P., Theeramunkong, T.A survey on evaluation methods for chatbots[C]//Proceedings of the 2019 7th International conference on information and education technology. 2019: 111-119. ↩︎

  13. Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, Ł., Polosukhin, I. Attention is all you need[J]. Advances in neural information processing systems, 2017, 30. ↩︎

  14. Lewis, P., Perez, E., Piktus, A., Petroni, F., Karpukhin, V., Goyal, N., Küttler, H., Lewis, M., Yih, W.-t.,Rocktäschel, T., Retrieval-augmented generation for knowledge-intensive nlp tasks[J]. Advances in neural information processing systems, 2020, 33: 9459-9474. ↩︎

  15. Wei, J., Wang, X., Schuurmans, D., Bosma, M., Xia, F., Chi, E., Le, Q. V., Zhou, D., Chain-of-thought prompting elicits reasoning in large language models[J]. Advances in neural information processing systems, 2022, 35: 24824-24837. ↩︎

  16. Yao, S., Yu, D., Zhao, J., Shafran, I., Griffiths, T., Cao, Y., Narasimhan, K. Tree of thoughts: Deliberate problem solving with large language models[J]. Advances in neural information processing systems, 2023, 36: 11809-11822. ↩︎

  17. Papineni, K., Roukos, S., Ward, T., Zhu, W.-J. Bleu: a method for automatic evaluation of machine translation[C]//Proceedings of the 40th annual meeting of the Association for Computational Linguistics. 2002: 311-318. ↩︎

  18. Lin, C.-Y. Rouge: A package for automatic evaluation of summaries[J]//Text summarization branches out. 2004: 74-81. ↩︎

This post is licensed under CC BY 4.0 by the author.

Trending Tags