Skip to content

Becomingw/ChatwithRSNA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chat With RSNA

本项目旨在实现一个与放射学相关文献进行交互式聊天的应用,使用 Gradio 作为前端界面,结合 Python 后端逻辑完成。通过项目提供的功能,用户可以:

  • 浏览存储在本地的放射学文献元数据与摘要。
  • 输入 DOI 或索引来查看对应文献的标题、期刊信息、发表日期与摘要。
  • 在聊天界面向模型提问,获取基于文献内容的回答。
  • 通过 /find 命令来根据关键词或关键信息查找文献的 DOI。
  • 获取论文"一句话总结",帮助快速筛选感兴趣的文献。

目录


项目结构

├── app.py # Gradio 前端与后端逻辑的主入口
├── chatchat.py # 与大模型交互的核心逻辑,包括检索、摘要等功能
├── cleaned_literature_data.xlsx # 本地存储的文献元数据
├── Abstract/ # 存放每篇文献的摘要 .md 文件
├── images/ # 存放与文献相关的图片或 GIF
├── logo.ico # 网页图标
├── README.md # 项目的说明文件(本文件)
└── ... # 其他资源或配置文件

依赖安装

  1. Python 版本:推荐使用 Python 3.8 及以上。
  2. 安装项目依赖:
    pip install -r requirements.txt
    如果没有 requirements.txt,可以根据下面的依赖列表手动安装:
    • gradio
    • pandas
    • openai(或其他大模型接口相关库)
    • markdown(用于解析摘要 Markdown 到 HTML)
    • re(用于正则处理)
    • random
    • os

使用指南

  1. 将本项目克隆或下载到本地,并确保已经安装必要依赖。

  2. 将目标文献的 Excel 数据文件命名为 cleaned_literature_data.xlsx,存放在项目根目录下(如果你要修改文件名或路径,请在 app.pychatchat.py 与加载文献的代码对应改动)。

  3. 确保与每篇文献对应的摘要文件都放在 Abstract/ 目录下,文件名应按照 DOI.md(将 DOI 中的斜杠 “/” 替换为下划线 “_”)的规则命名。

  4. 运行应用程序:

    python app.py

    启动后,会在命令行输出一个链接或在本地开启一个服务器(默认端口为7860),点击链接即可访问 Gradio 前端页面,通常为 http://127.0.0.1:7860/。

  5. 在前端界面中,你可以:

    • 使用文本框输入问题,点击“发送”按钮,会将问题与当前文献摘要上下文安全送到模型端进行回答。
    • 点击“下一篇”按钮,会自动将索引跳到后一篇文献。
    • 在“文章索引”文本框中输入对应的索引数值后,点击“确认索引”按钮即可跳转到该索引对应的文献。
    • 在“输入DOI”文本框中输入 DOI,点击“确认DOI”即可直接查看对应文献。
    • 如果想要搜索文献,可以在聊天框中输入命令 “/find 关键词”,模型会尝试返回检索到的文献 DOI。
    • 如果希望快速了解一篇文献,可以在自动显示的“一句话总结”中获取简短概括。

主要文件说明

  1. app.py

    • 主入口文件,包含 Gradio 界面布局与交互逻辑。
    • 通过 load_article 函数读取并展示文献数据、摘要和图片等。
    • 通过 respond 函数对用户输入进行处理并与 chatchat.py 中的聊天函数对接。
    • 为每篇文献构建主题、期刊、发表日期与备注等信息。
    • 提供对 DOI 与索引的切换与确认功能。
  2. chatchat.py

    • 与大模型交互的核心文件,类 ChatClient 用于包装对大模型接口的调用。
    • Chat_agent 函数提供一个综合接口,根据用户输入决定是执行 DOI 检索(/find)还是普通对话。
    • only_one_sentence 函数可将整段摘要压缩为一句话用于简短概括。
    • find_doi 函数根据用户输入内容,在 cleaned_literature_data.xlsx 中检索相应文献信息并输出结果。
  3. cleaned_literature_data.xlsx

    • 封装了文献元数据的 Excel 表格,如 Title、DOI、Publication Date、Journal 等字段。
  4. Abstract/ 目录

    • 存放与每篇文献对应的摘要 .md 文件。
    • 正确命名方式:以文献的 DOI 替换掉斜杠“/”为下划线“_”后,拼成文件名(例如 “10.1148_radiol.2018180382.md”)。
    • app.py 中会根据 DOI 构造文件路径并读取摘要内容。
  5. images/ 目录

    • 用于存放与文献相匹配的图像,如 GIF、PNG、JPG 等。若对应文献有图片,则在界面中显示预览。

自定义功能说明

  1. /find 命令:

    • 允许用户在聊天框中输入 “/find 关键词” 来检索匹配的文献。
    • 目前仅能基于提供的 cleaned_literature_data.xlsx 实现简单检索。
  2. 论文“一句话总结”:

    • 系统默认在开始展示文献时,会调用 only_one_sentence 来输出简单概括。
    • 帮助用户快速定位当前文献的主题与研究方向。
  3. 文章索引切换:

    • 提供一个数值滑块或文本框,方便快速在文献列表中跳转。
  4. DOI 输入:

    • 提供一个文本框来输入感兴趣的文献 DOI,支持手动定位到恰当文献。

注意事项

  1. 请确保当地网络环境已连通对应大模型接口(如 openai 或其他接口)。
  2. 如果你需要换用其他大模型或本地模型,请在 chatchat.py 中替换相关调用接口(比如修改 KEYURLMODEL 等)。
  3. 如果遇到文件路径或编码错误,请确保 .md 文件的命名格式、Abstract 文件夹位置、编码格式等一致。
  4. 若想使用 GPU 加速或有更多并发需求,可在服务器上部署并自行进行性能调优和安全优化。

许可证

本项目遵循 MIT License 协议,在使用、复制、修改和发布本项目代码时需遵循 MIT 许可中的条款。由于本项目调用第三方大模型接口,请自行确认相关服务的使用权限与合规要求。

About

让大语言模型辅助RSNA的论文摘要阅读

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages