写点什么

ChatPaper 全流程加速科研:论文阅读 + 润色 + 优缺点分析与改进建议 + 审稿回复

  • 2023-07-31
    浙江
  • 本文字数:9009 字

    阅读完需:约 30 分钟

ChatPaper全流程加速科研:论文阅读+润色+优缺点分析与改进建议+审稿回复

ChatPaper 全流程加速科研:论文阅读+润色+优缺点分析与改进建议+审稿回复





1.解决问题

面对每天海量的 arxiv 论文,以及 AI 极速的进化,我们人类必须也要一起进化才能不被淘汰。ChatPaper 是一款论文总结工具。AI 用一分钟总结论文,用户用一分钟阅读 AI 总结的论文。


它可以根据用户输入的关键词,自动在 arxiv 上下载最新的论文,再利用 ChatGPT3.5 的 API 接口强大的总结能力,将论文总结为固定的格式,以最少的文本,最低的阅读门槛,为大家提供最大信息量,以决定该精读哪些文章。也可以提供本地的 PDF 文档地址,直接处理。一般一个晚上就可以速通一个小领域的最新文章。我自己测试了两天了。这段代码虽然不多,但整个流程走通也花了我近一周的时间,今天分享给大家。

2.技术原理:

论文总结遵循下面四个问题:


  1. 研究背景

  2. 过去的方案是什么?他们有什么问题?

  3. 本文方案是什么?具体步骤是什么?

  4. 本文在哪些任务中,取得了什么效果?


基本上是大家做论文汇报的主要内容了。


实现细节:


  • 提取摘要和 introduction 的内容,因为 abstract 很少会告诉你过去的方案是什么,存在什么问题。

  • 然后提取 method 章节,总结方法的具体步骤

  • 最后提取 conclusion 章节,总结全文。


分三次总结和喂入,如果每个部分超过了长度,则截断(目前这个方案太粗暴了,但也没有更好的更优雅的方案)

3.使用步骤

3.1 以脚本方式运行

Windows, Mac 和 Linux 系统应该都可以


python 版本最好是 3.9,其他版本应该也没啥问题


  1. 在 apikey.ini 中填入你的 openai key。小白用户比较多,我直接给截图示意下可能会更好:



  1. 使用过程要保证全局代理!如果客户端时 clash 的话,可以参考这个进行配置:



  1. 安装依赖:最好翻墙,或者用国内源。


pip install -r requirements.txt
复制代码


4.1. Arxiv 在线批量搜索+下载+总结: 运行 chat_paper.py, 比如:


python chat_paper.py --query "chatgpt robot" --filter_keys "chatgpt robot" --max_results 3
复制代码


更准确的脚本是 chat_arxiv.py,使用方案,命令行更加简洁:


python chat_arxiv.py --query "chatgpt robot" --page_num 2 --max_results 3 --days 10
复制代码


其中 query 仍然是关键词,page_num 是搜索的页面,每页和官网一样,最大是 50 篇,max_results 是最终总结前 N 篇的文章,days 是选最近几天的论文,严格筛选!


注意:搜索词无法识别-,只能识别空格!所以原标题的连字符最好不要用! 感谢网友提供的信息


4.2. Arxiv 在线批量搜索+下载+总结+高级搜索: 运行 chat_paper.py, 比如:


python chat_paper.py --query "all: reinforcement learning robot 2023" --filter_keys "reinforcement robot" --max_results 3
复制代码


4.3. Arxiv 在线批量搜索+下载+总结+高级搜索+指定作者: 运行 chat_paper.py, 比如:


python chat_paper.py --query "au: Sergey Levine" --filter_keys "reinforcement robot" --max_results 3
复制代码


4.4. 本地 pdf 总结: 运行 chat_paper.py, 比如:


python chat_paper.py --pdf_path "demo.pdf"
复制代码


4.5. 本地文件夹批量总结: 运行 chat_paper.py, 比如:


python chat_paper.py --pdf_path "your_absolute_path"
复制代码


4.6. 谷歌学术论文整理: 运行 google_scholar_spider.py, 比如:


python google_scholar_spider.py --kw "deep learning" --nresults 30 --csvpath "./data" --sortby "cit/year" --plotresults 1
复制代码


此命令在 Google Scholar 上搜索与“deep learning”相关的文章,检索 30 个结果,将结果保存到“./data”文件夹中的 CSV 文件中,按每年引用次数排序数据,并绘制结果。


具体使用和参数请参考https://github.com/JessyTsu1/google_scholar_spider




另外注意,目前这个不支持综述类文章。


注意:key_word 不重要,但是 filter_keys 非常重要!一定要修改成你的关键词。


另外关于 arxiv 的搜索关键词可以参考下图:



  1. 参数介绍:


[--pdf_path 是否直接读取本地的pdf文档?如果不设置的话,直接从arxiv上搜索并且下载] [--query 向arxiv网站搜索的关键词,有一些缩写示范:all, ti(title), au(author),一个query示例:all: ChatGPT robot] [--key_word 你感兴趣领域的关键词,重要性不高] [--filter_keys 你需要在摘要文本中搜索的关键词,必须保证每个词都出现,才算是你的目标论文] [--max_results 每次搜索的最大文章数,经过上面的筛选,才是你的目标论文数,chat只总结筛选后的论文] [--sort arxiv的排序方式,默认是相关性,也可以是时间,arxiv.SortCriterion.LastUpdatedDate 或者 arxiv.SortCriterion.Relevance, 别加引号] [--save_image 是否存图片,如果你没注册gitee的图床的话,默认为false] [--file_format 文件保存格式,默认是markdown的md格式,也可以是txt] 
parser.add_argument("--pdf_path", type=str, default='', help="if none, the bot will download from arxiv with query")parser.add_argument("--query", type=str, default='all: ChatGPT robot', help="the query string, ti: xx, au: xx, all: xx,") parser.add_argument("--key_word", type=str, default='reinforcement learning', help="the key word of user research fields")parser.add_argument("--filter_keys", type=str, default='ChatGPT robot', help="the filter key words, 摘要中每个单词都得有,才会被筛选为目标论文")parser.add_argument("--max_results", type=int, default=1, help="the maximum number of results")parser.add_argument("--sort", default=arxiv.SortCriterion.Relevance, help="another is arxiv.SortCriterion.LastUpdatedDate") parser.add_argument("--save_image", default=False, help="save image? It takes a minute or two to save a picture! But pretty")parser.add_argument("--file_format", type=str, default='md', help="导出的文件格式,如果存图片的话,最好是md,如果不是的话,txt的不会乱")
复制代码

3.2 以 Flask 服务运行

  1. 下载项目并进入项目目录


git clone https://github.com/kaixindelele/ChatPaper.gitcd ChatPaper
复制代码


  1. 在项目根目录下的 apikey.ini 文件中填入您的 OpenAI 密钥。

  2. 配置虚拟环境并下载依赖


pip install virtualenv 安装虚拟环境工具virtualenv venv 新建一个名为venv的虚拟环境Linux/Mac下:source venv/bin/activate
Windows下:.\venv\Scripts\activate.bat
pip install -r requirements.txt
复制代码


  1. 启动服务


python3 app.py#启动 Flask 服务。运行此命令后,Flask 服务将在本地的 5000 端口上启动并等待用户请求。在浏览器中访问以下地址之一以访问 Flask 服务的主页:#http://127.0.0.1:5000/#或#http://127.0.0.1:5000/index
复制代码


访问 http://127.0.0.1:5000/ 后,您将看到主页。在主页上,您可以点击不同的链接来调用各种服务。您可以通过修改链接中的参数值来实现不同的效果。有关参数详细信息,请参阅上一步骤中的详细介绍



  • 特别的,这四个接口实际是封装了根目录下四个脚本的 web 界面。参数可以通过链接来修改。例如要运行“arxiv?query=GPT-4&key_word=GPT+robot&page_num=1&max_results=1&days=1&sort=web&save_image=False&file_format=md&language=zh”的话,相当于在根目录下调用 chat_arxiv.py 并返回结果。这个显示的结果和在命令行中调用的结果是一样的(即:python chat_arxiv.py --query "GPT-4" --key_word "GPT robot" --page_num 1 --max_results 1 --days 1 --sort "web" --save_image False --file_format "md" --language "zh")。您可以通过修改参数来获得其他搜索结果。

  • 如果以这种方式部署的话,结果会保存在同级目录下新生成的 export、pdf_files 和 response_file 三个文件夹里

3.3 以 docker 形式运行

  1. 安装 docker 和 docker-compose,可以参考以下链接

  2. https://yeasy.gitbook.io/docker_practice/install

  3. https://yeasy.gitbook.io/docker_practice/compose/install

  4. 找地方放项目根目录下的“docker-compose.yaml”文件,将 21 行的YOUR_KEY_HERE替换为自己的 openai_key

  5. 在同级目录下在命令行运行


   docker-compose up -d
复制代码


  1. 这样的界面代表一些正常,随后访问 https://127.0.0.1:28460/ 就可以从网页上打开了! !



  • 特别的,如果有改进项目的想法,您可以查看 build.sh、dev.sh、tagpush.sh 这三个脚本以及根目录 docker 目录下文件的作用,相信它们会对你容器化封装项目的思想有进一步提升

  • 所有的运行结果都被保存在 Docker 的 volumes 中,如果想以服务的形式长期部署,您可以将这些目录映射出来。默认情况下,它们位于 /var/lib/docker/volumes/ 下。您可以进入该目录并查看 chatpaper_log、chatpaper_export、chatpaper_pdf_files 和 chatpaper_response_file 四个相关文件夹中的结果。有关 Docker volumes 的详细解释,请参考此链接:http://docker.baoshu.red/data_management/volume.html。

4.在线部署

  1. Hugging Face 创建自己的个人账号并登录;

  2. 进入 ChatPaper 主仓库:https://huggingface.co/spaces/wangrongsheng/ChatPaper ,您可以在Files and Version 看到所有的最新部署代码;

  3. [可选]私有化部署使用:点击Duplicate this space ,在弹出的页面中将Visibility选择为Private,最后点击Duplicate Space,Space 的代码就会部署到你自己的 Space 中,为了方便自己每次调用可以不用填写 API-key,您可以将app.py#L845 修改为您的密钥:default="sk-abcdxxxxxxxx" ,点击保存文件就会立即重新部署了;

  4. [可选]公有化部署使用:点击Duplicate this space ,在弹出的页面中将Visibility选择为Public,最后点击Duplicate Space,Space 的代码就会部署到你自己的 Space 中,这样就可以完成一个公有化的部署。


注:公有化部署和私有化部署根据你的需求二选一即可!

5. 使用技巧


快速刷特定关键词的论文,不插图的话,每张篇文章需要花一分钟,阅读时间差不多一分钟。


本项目可以用于跟踪领域最新论文,或者关注其他领域的论文,可以批量生成总结,最大可生成 1000(如果你能等得及的话)。虽然 Chat 可能有瞎编的成分,但是在我的规范化提问的框架下,它的主要信息是保熟的。


数字部分需要大家重新去原文检查!


找到好的文章之后,可以精读这篇文章。


推荐另外两个精读论文的 AI 辅助网站:https://typeset.io/ 和 chatpdf。


和上面这两个工具的主要优势在于,ChatPaper 可以批量自动总结最新论文,可以极大的降低阅读门槛,尤其是我们国人。缺点也很明显,ChatPaper 没有交互功能,不能连续提问,但我觉得这个重要性不大~

6.常见报错

  1. pip 安装错误:



推荐关掉梯子,使用国内源下载:


pip install -r requirements.txt -i  http://pypi.douban.com/simple  --trusted-host pypi.douban.com
复制代码


  1. 调用 openai 的 chatgpt api 时出现 APIConnectionError, 如何解决?参考知乎回答:https://www.zhihu.com/question/587322263/answer/2919916984


直接在 chat_paper.py 里加上


os.environ["http_proxy"] = "http://<代理 ip>:<代理端口>"os.environ["https_proxy"] = "http://<代理 ip>:<代理端口>"


代理 ip 和端口需要你在 Windows 系统里面查找。



  1. API 被 OpenAI 禁了的报错:



这种情况只能用新号了。另外一定要注意一个号尽量不要多刷,节点一定要靠谱,千万不能用大陆和香港的节点,用了就寄。


  1. Https 通信错误:



这个报错大概率是节点不够干净。如果有大佬知道具体原因,欢迎挂 issues


issue174提供的方案是:


pip install urllib3==1.25.11
复制代码

7.chatgpt 分析报告

[0/13] 程序概述: get_paper.py

该文件是一个 Python 脚本,文件名为 get_paper.py,属于 ChatPaper 工程中的一个组成部分。它实现了一个 Paper 类和一个 main 函数。Paper 类代表了一篇论文,它可以从 PDF 文件中解析出论文的元信息和内容,并提供了一些函数用于获取论文信息,如获取文章标题,获取章节名称及内容等。主函数 main() 演示了如何使用 Paper 类处理 PDF 文件,根据 PDF 文件路径初始化 Paper 对象,并调用 parse_pdf() 函数解析 PDF 文件并获取相应的信息。

[1/13] 程序概述: chat_arxiv_maomao.py

该程序文件名为 chat_arxiv_maomao.py,猫娘版 chat_arxiv.py,其功能为使用 OpenAI API 进行聊天和从 arxiv 搜索引擎中查询论文信息,并将相应的论文保存为 PDF 格式和部分信息保存为图片格式。程序文件使用了许多 Python 的第三方库,如 arxiv、numpy、openai、fitz 等。程序中定义了 ArxivParams 以及 PaperReader 三个类,其中 ArxivParams 定义了从 arxiv 搜索论文时需要的各种参数;Paper 类用于解析 PDF 文件,提取论文信息并保存为本地 PDF 文件及多个图片文件,其中包括论文标题、pdf 路径、每个章节标题对应的 pdf 页码、每个章节的正文内容、摘要信息,以及保存为图片文件的论文第一页;Reader 类主要用于在 arxiv 搜索引擎中查询论文信息,根据查询信息和关键词得到论文列表,再根据列表中的论文信息获取论文 pdf 文件并保存。


核心区别在于猫娘限定款,但目前的主要语句没有猫娘的韵味,希望大家一起帮忙调试出一个有灵魂的猫娘 AI 论文秘书!给你留一个 pull 的位置!

[2/13] 程序概述: chat_paper.py

该程序文件名为 chat_paper.py,包含一个 Reader 类和 PaperParams 元组。该程序功能为根据读者输入的搜索查询和感兴趣的关键词,从 Arxiv 数据库中获取文章,并对文章进行摘要和总结。程序使用了 OpenAI 的 GPT-3 模型生成文本摘要,使用了 arxiv 包获取 Arxiv 数据库中的文章。程序会将摘要和总结以 markdown 文件的形式保存下来。


Reader 类包含了下载文章、筛选文章以及使用 GPT-3 生成文本摘要和总结的方法。主要方法有:


  • get_arxiv(): 使用 Arxiv 的 API 获取搜索结果。

  • filter_arxiv(): 筛选文章,并返回筛选后的结果。

  • download_pdf(): 从 Arxiv 下载筛选后的文章。

  • summary_with_chat(): 对每一篇下载下来的文章进行文本摘要和总结,并将结果以 markdown 文件的形式保存。


PaperParams 元组包含了程序运行所需要的参数,如下载文件保存路径、搜索查询、关键词、排序方式、筛选关键词等。程序中使用了多次 retry 来保证程序的稳定性。

[3/13] 程序概述: get_paper_from_pdf.py

本程序文件为 Python 脚本文件,文件名为 get_paper_from_pdf.py,主要是通过调用 fitz 库和 PIL 库的方法,从 PDF 文件中解析出文章的各个部分的文本内容,包括标题、摘要、章节标题和正文等,并且对 PDF 文件中的图片进行提取和保存,并返回图片的路径和扩展名。


具体实现是定义了一个 Paper 类,通过传入 PDF 文件的路径初始化 Paper 对象,然后封装了一系列方法,如解析 PDF 文件的方法 parse_pdf(),获取所有章节名称的方法 get_chapter_names(),获取文章中的图片路径的方法 get_image_path()等。最后在 main()函数中调用了 Paper 类的 parse_pdf()方法,并将解析出的各个部分的文本内容和图片路径打印输出。

[4/13] 程序概述: app.py

该程序文件为一个基于 Flask 框架实现的 Web 应用程序,提供了四个功能模块:arxiv、 paper、 response 和 reviewer,分别对应搜索 Arxiv 上的论文、搜索并分析论文、处理论文审稿评论和查找论文审稿人四个功能。其中,每个功能模块定义了相应的路由函数,并使用 process_request 函数处理请求参数,并将请求参数作为参数调用相应的功能主函数,输出结果。此外,home 函数为应用的首页,提供了应用简介、各功能模块的描述以及该应用的 GitHub 项目地址等信息。最后,在程序结尾,代码根据命令行参数来启动应用程序。

[5/13] 程序概述: chat_arxiv.py

这个程序的文件名是 chat_arxiv.py。这个程序实现了一个论文下载器。在论文知识库 arXiv 上搜索论文,并下载相应的 PDF 文件。程序将会接收用户的查询字符串、关键词、搜索页数、文件格式等参数,为这些参数构建一个名为 ArxivParams 的元组。接着,程序使用提供的参数调用 arXiv API,获取查询到的论文列表。程序遍历每篇论文,并下载它们的 PDF 文件。程序接收到 PDF 后,使用 fitz 库打开它,提取出目录,正文和元数据等信息。在 PDF 中查找到第一张图片,并将它保存成 PNG 格式的文件。程序遍历文本,找到所有的章节名称和图片,并将它们保存成字典,并存储在 Paper 对象里。最后调用 Gitee API 将文件上传到 Gitee 仓库里。

[6/13] 程序概述: chat_response.py

该程序文件是一个 Python 脚本,文件名为"chat_response.py",主要功能是根据输入的评论文件路径,使用 OpenAI 的 Chat API 生成对应的回复文本,并将回复输出到指定格式的文件中。


具体包括以下功能:


  1. 定义了一个 Response 类,包括了一些属性和方法,用于初始化和生成回复文本。

  2. 定义了一个 chat_response_main 函数,用于启动 Response 类生成回复文本。

  3. 通过导入 argparse、configparser、datetime、json、os、re、time 等模块,实现了参数解析、文件读写、时间处理、字符串匹配等操作。

  4. 使用了 numpy、openai、tenacity、tiktok 等第三方库,实现了文本编码、OpenAI Chat API 调用、重试机制、加密解密等功能。

  5. 使用了正则表达式对文本进行匹配处理,提取关键信息后进行逻辑处理和字符串拼接,形成回复文本。

  6. 实现输出格式为 txt、markdown 等格式的回复文件。


总之,该程序用于将审稿意见进行回复,实现了自动化生成回复文本的功能,从而提高了工作效率。

[7/13] 程序概述: chat_reviewer.py

该程序文件是一个基于 OpenAI Chat API 的文献审稿系统,可以通过输入论文的标题、摘要、和各章节内容,生成相应的评审意见。主要包括以下内容:


1.导入所需要的模块和包


2.自定义 namedtuple 类 ReviewerParams,包括 4 个属性:paper_path(论文路径),file_format(生成文件格式),research_fields(研究领域),language(输出语言)


3.自定义类 Reviewer,包括以下方法:


init: 初始化方法,用于设置属性


validateTitle:用于校验论文的路径


review_by_chatgpt:根据传入的论文列表,获取关键部分,发送至 OpenAI Chat API,生成评审意见


stage_1:审稿的第一阶段,根据传入的论文,提供标题、摘要、可提取的章节等信息并将其发送至 OpenAI Chat API,以获取用户选择的章节


chat_review:审稿的第二阶段,将用户选定的章节和关键部分发送至 OpenAI Chat API,以生成审稿意见


export_to_markdown:将审稿意见保存为 markdown 格式的文件


4.chat_reviewer_main:用于初始化程序,读取命令行参数后初始化 Reviewer 类,通过传入的论文路径或文件名,调用 Reviewer 类的 review_by_chatgpt 方法生成评审意见


该程序通过 OpenAI Chat API 调用人工智能模型,为用户提供便利的文献评审服务,同时又充分考虑到了对用户信息的保护,具有一定的可靠性和安全性。

[8/13] 程序概述: google_scholar_spider.py

这个程序文件是一个可从 Google Scholar 网站上获取特定关键字相关论文信息的爬虫,主要用于研究学术领域的热点话题。该爬虫的主要功能包括:


  1. 从命令行参数中获取关键字、结果数、CSV 文件路径、排序方式等信息;

  2. 根据关键字和年份(可选)构建 Google Scholar 查询链接;

  3. 使用 requests 库向链接发送请求,并对结果进行处理,包括获取标题、作者、被引用次数等;

  4. 按照排序方式对结果进行排序,将结果保存为 CSV 文件,并可选择在结果中生成柱状图。

[9/13] 程序概述: deploy/Public/app.py

该程序文件是一个 Python 脚本,文件名为 app.py。该脚本包含了多个模块的导入和多个类和函数的定义。其中,一些重要的模块包括 numpy、os、re、datetime、arxiv、openai、base64、requests、argparse、configparser、fitz、io、PIL、gradio、markdown、json、tiktoken、concurrent。主要的类包括 Paper 和 Reader,辅助函数包括 parse_text、api_key_check、valid_apikey、get_chapter_names、get_title、get_paper_info、get_image_path 等。该程序还涉及到一些第三方 API 的调用,例如 Arxiv、OpenAI 等。该程序实现了一些功能,例如解析 PDF 文件,提取文本内容并按照章节组织成字典,获取 PDF 中每个页面的文本信息,根据字体大小识别每个章节名称等。该程序还可以检查有效的 API 密钥,生成一份有效的 API 密钥列表。

[10/13] 程序概述: deploy/Public/optimizeOpenAI.py

该程序文件名为 optimizeOpenAI.py,是一个官方 ChatGPT API 的简单包装器,主要实现了和 ChatGPT 模型的交互功能,包括对话、重置对话、获取对话摘要等,以及对于 API 调用时间、API key 的管理和流程控制。其中提供了两个主要的方法:ask()用于获取 model 的回答信息,conversation_summary()用于获取对话的摘要信息。

[11/13] 程序概述: deploy/Private/app.py

该程序实现了一个名为chatPaper的应用,用户可以通过输入特定的关键词,将获取的论文进行自动摘要和筛选,并使用 OpenAI 进行 QA 问答,由机器智能生成答案。其中,程序分为若干个子功能,包括:将 PDF 中的第一张图另存为图片,获取 PDF 文件中每个页面的文本信息并将其按章节组织成字典返回,获取 PDF 文件的标题,获取 PDF 文件中的章节。程序引入了 numpy、os、re、datetime、arxiv、tenacity、base64、requests、argparse、configparser、PIL、gradio、fitz、io 和 optimizeOpenAI 等库函数。主入口为app.py

[12/13] 程序概述: deploy/Private/optimizeOpenAI.py

这是一个名为 optimizeOpenAI.py 的程序文件,是一个对官方 ChatGPT API 的简单包装器。该文件定义了一个名为chatPaper的类,该类包含了用于与 ChatGPT 交互的各种方法。它使用 OpenAI API 完成交互,并在输入和输出之间维护存储对话的本地转换。它使用一个优先队列来存储 API 密钥,以确保 API 请求不会超过每个密钥的最大使用限制。在一个对话中,用户可以不断地提出问题并回答 ChatGPT 提供的管道中的问题。此外,该文件还包含用于重置对话、截断对话、计算并返回每个对话的当前令牌成本的函数,以及用于获取已注册的 API 密钥、检查 API 的可用性以及生成会话摘要的函数。


  • 对程序的整体功能和构架做出概括。然后用一张 markdown 表格整理每个文件的功能(包括 get_paper.py, chat_arxiv_maomao.py, chat_paper.py, get_paper_from_pdf.py, app.py, chat_arxiv.py, chat_response.py, chat_reviewer.py, google_scholar_spider.py, deploy/Public/app.py, deploy/Public/optimizeOpenAI.py, deploy/Private/app.py, deploy/Private/optimizeOpenAI.py)。


整体功能和构架概括:ChatPaper 是一个文献管理工具,主要针对学术论文的查询、下载、管理和评审等方面进行了自动化处理和优化,主要功能包括:


  1. 论文的搜索和下载

  2. 论文的摘要和评审自动生成

  3. 论文的 PDF 文件解析和信息提取

  4. 学术文献信息的爬取和整合

  5. 学术论文开源代码的维护和管理


文件与功能对应表:


项目码源见文末

项目链接跳转


更多优质内容请关注公号:汀丶人工智能;会提供一些相关的资源和优质文章,免费获取阅读。




发布于: 16 小时前阅读数: 17
用户头像

本博客将不定期更新关于NLP等领域相关知识 2022-01-06 加入

本博客将不定期更新关于机器学习、强化学习、数据挖掘以及NLP等领域相关知识,以及分享自己学习到的知识技能,感谢大家关注!

评论

发布
暂无评论
ChatPaper全流程加速科研:论文阅读+润色+优缺点分析与改进建议+审稿回复_人工智能_汀丶人工智能_InfoQ写作社区