基于大模型的中药方剂问答系统
项目概述
- 项目目的与价值
本项目旨在构建一个基于大语言模型(LLM)的中药方剂问答系统,专注于为用户提供专业的中医药方剂知识及问答服务。借助先进的自然语言处理技术和OpenAI GPT-4o-mini模型,系统能够准确理解用户的中医相关问题,并返回富有专业性的中药方剂解决方案,推动传统中医数字化、智能化进程。 - 核心问题解决
- 解决用户获取中药方剂专业知识难的问题,提供一个智能问答接口。
- 通过大模型生成专业、准确的中药方剂建议,提升传统中医知识的应用效率。
- 打通自然语言对话与中医药信息服务,实现人机交互的便捷性。
- 目标用户群体
- 中医师及中药学者,辅助诊疗及药方制定。
- 医学教育工作者与学生,作为学习和教学的辅助工具。
- 中医爱好者及普通患者,快速获取中医方剂知识和建议。
技术架构
- 主要技术栈
- 后端框架:Django(Python 3.9环境)
- 前端技术:HTML/CSS(模板引擎为Django自带的Template)
- 语言模型:集成调用OpenAI API,使用GPT-4o-mini模型
- 依赖管理及虚拟环境:使用virtualenv(.venv目录)
- 其它依赖:openai官方Python SDK、numpy、pytesseract、pymupdf等
- 项目框架与第三方依赖
- 使用Django 3.2.7作为web框架,具备标准的MVC架构设计。
- 利用OpenAI API进行与大模型的交互。
- 支持PDF文档转文本处理(datas目录下pdf_to_text.py和pdf_ocr_to_text.py),适配中医文献资料的知识抽取与预处理。
- 架构设计模式
- 采用Django的MTV(Model-Template-View)设计模式:
- Model:基础数据库模型预留(当前无定义模型,后续可扩展存储用户数据、问答记录等)
- View:处理用户请求,调用大模型接口,返回数据或渲染网页
- Template:负责前端页面展示与交互
- 数据库设计
- 目前无具体数据模型设计(
qa/models.py
文件为空),项目暂无数据库存储功能,但框架支持后续扩展。
功能模块
- 问答模块(qa应用)
- 网页首页(index)
- 渲染用户交互界面
index.html
,供用户输入问题。
- 渲染用户交互界面
- 聊天接口(chat)
- 接收用户发送的JSON格式请求,包含问题字段。
- 生成中药方剂相关的提示语,调用OpenAI接口进行语言模型推理。
- 返回模型生成的回答JSON,供前端展示。
- 大模型调用(get_llm_res)
- 客户端封装,利用
openai
包通过OpenAI API发送请求。 - API key和服务器地址配置固定,调用gpt-4o-mini模型。
- 负责问答的核心逻辑实现。
- 客户端封装,利用
- 数据处理模块(datas目录)
- PDF文本提取
pdf_to_text.py
:处理PDF文件转换为纯文本。pdf_ocr_to_text.py
:结合OCR技术(pytesseract)提取图片中嵌入的文字。
- 这些模块支持知识库建设及智能问答中的知识输入。
- 静态资源和前端模板
static/
目录存放静态资源,例如CSS或JS文件,可供前端加载。templates/index.html
为主要的用户交互页面,提供简洁美观的问答界面。
- 项目配置模块(xy25_rag)
- 项目主配置目录,包含
settings.py
、urls.py
、asgi.py
及wsgi.py
,定义项目全局配置与路由。 - 负责Web服务的启动和请求分发。
项目结构
xy25_llm_qa/
├── .idea/ # PyCharm等IDE配置文件
├── .venv/ # 虚拟环境及依赖库
├── datas/ # PDF文档处理及文本提取工具
│ ├── input/ # 输入文本文件
│ ├── ori/ # 原始PDF文件
│ ├── pdf_ocr_to_text.py # OCR转换脚本
│ └── pdf_to_text.py # PDF转文本脚本
├── qa/ # 主要功能app
│ ├── admin.py # 管理后台注册(空)
│ ├── apps.py # app配置
│ ├── models.py # 数据模型(未定义)
│ ├── qatools.py # 工具函数和大模型相关辅助代码
│ ├── urls.py # 路由配置
│ ├── views.py # 视图逻辑,处理请求及调用大模型
│ └── tests.py # 测试文件
├── static/ # 静态文件
├── templates/ # html模板
│ └── index.html # 主页模板
├── xy25_rag/ # 项目主配置和路由
│ ├── settings.py # 项目配置
│ ├── urls.py # 全局路径路由
│ ├── asgi.py # ASGI应用入口
│ └── wsgi.py # WSGI应用入口
├── manage.py # Django管理脚本
├── README.md # 项目说明文件
└── requirements.txt # 依赖包清单
- 关键文件说明
qa/views.py
:核心功能实现,包括首页渲染和chat接口,包含调用OpenAI接口逻辑。qa/urls.py
:定义访问路径,包含首页索引和聊天接口。templates/index.html
:前端展示页,提供用户界面。datas/pdf_to_text.py
和pdf_ocr_to_text.py
:辅助文档解析和转换。xy25_rag/settings.py
:Django主配置文件,涉及数据库、静态文件、模板等设置。.venv/
:隔离的Python虚拟环境,管理所有依赖包,确保环境可控。
部署和运行
- 环境要求
- Python 3.9版本
- 支持Django 3.2及以上版本
- 需要访问OpenAI API的网络环境,且需有效API密钥
- 推荐在Linux或MacOS等类Unix环境下部署,Windows亦可
- 安装步骤
- 克隆项目代码到本地。
- 进入项目根目录,创建并激活虚拟环境:
bash python3.9 -m venv .venv source .venv/bin/activate # Linux/MacOS .venv\Scripts\activate # Windows
- 安装依赖包:
bash pip install -r requirements.txt
- 配置
xy25_rag/settings.py
中OpenAI相关API KEY和服务地址(目前存在于代码中qa/views.py
,建议改为环境变量或配置项)。 - 初始数据库(虽然目前无模型定义,可以执行):
bash python manage.py migrate
- 配置说明
settings.py
包含Django常规配置,如数据库,静态文件目录,模板设置等。qa/views.py
中OpenAI Client初始化需要有效的API Key。项目建议通过环境变量或配置文件安全管理。- PDFs存放于
datas/ori/
,转换结果存入datas/input/
,做好数据预处理准备。 - 启动方式
- 运行Django开发服务器:
bash python manage.py runserver
- 访问浏览器打开
http://127.0.0.1:8000/
即可进入系统首页。可在前端页面输入中医药方剂相关问题,系统对接大模型返回答案。
项目亮点与技术价值
- 基于大模型的智能问答
直接调用OpenAI GPT-4o-mini模型,集成Chat Completions接口,以“资深中医医生”角色身份提供专业答复,实现了传统知识与现代AI的深度融合。 - 数据预处理能力
配备PDF转文本及OCR工具,可处理原始文献资料,为知识库建设奠定基础。 - 简洁高效的Django架构
利用Django框架简化开发,维护性好,易扩展,满足后续增加用户管理、问答记录存储等需求。 - 易用的界面设计
前端采用响应式设计,简洁美观,辅助非专业用户轻松提问和获取信息。
综上,基于大模型的中药方剂问答系统提供了一个结合AI与中医知识的高质量智能问答平台,实现专业领域的智能化服务,适用于医疗辅助、学术研究及普及推广等多场景应用。
如有问题请联系作者:https://qalangtao.com 。
600
![图片[1]-基于大模型的中药方剂问答系统](https://qalangtao.com/wp-content/uploads/2025/06/微信图片_20250618112828-1024x480.png)
![图片[2]-基于大模型的中药方剂问答系统](https://qalangtao.com/wp-content/uploads/2025/06/微信图片_20250618112841-1024x475.png)
![图片[3]-基于大模型的中药方剂问答系统](https://qalangtao.com/wp-content/uploads/2025/06/微信图片_20250618112844-1024x477.png)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END