Browse Source

feat: 提交

master
yuanjs@qutke.com 2 months ago
parent
commit
62988fae05
  1. 2
      .gitignore
  2. 51
      knowledge/人工智能.md
  3. 53
      knowledge/医院信息.md
  4. BIN
      knowledge/医院信息.pdf
  5. 37
      knowledge/医院信息.txt
  6. 65
      knowledge/口腔科.md
  7. 4
      knowledge/测试.txt
  8. 60
      knowledge/神经内科.md
  9. 11
      knowledge/科室信息.md
  10. BIN
      knowledge/科室信息.pdf
  11. 7
      knowledge/科室信息.txt
  12. 24
      ui/.gitignore
  13. 16
      ui/index.html
  14. 1773
      ui/package-lock.json
  15. 24
      ui/package.json
  16. 1091
      ui/pnpm-lock.yaml
  17. 1
      ui/public/vite.svg
  18. 14
      ui/src/App.vue
  19. BIN
      ui/src/assets/logo.png
  20. 1
      ui/src/assets/vue.svg
  21. 381
      ui/src/components/ChatWindow.vue
  22. 10
      ui/src/main.js
  23. 79
      ui/src/style.css
  24. 24
      ui/vite.config.js
  25. BIN
      尚硅谷-Java+大模型应用-硅谷小智(医疗版).pdf

2
.gitignore

@ -1,4 +1,4 @@
ReadMe.md
README.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/

51
knowledge/人工智能.md

@ -0,0 +1,51 @@
# 人工智能:从计算逻辑到社会变革的深度演进
## 一、人工智能的技术溯源与发展脉络
人工智能的思想萌芽可追溯至古希腊时期,哲学家亚里士多德提出的 “三段论” 逻辑体系,为后世符号逻辑的发展奠定了基础。1950 年,艾伦・图灵在《计算机器与智能》中提出 “图灵测试”,首次为人工智能的定义提供了可操作的标准,标志着现代人工智能研究的开端。1956 年夏季,达特茅斯学院的历史性会议上,约翰・麦卡锡正式提出 “人工智能”(Artificial Intelligence, AI)这一术语,一群学者围绕 “如何用机器模拟人类智能” 展开讨论,形成了符号主义、连接主义和行为主义三大早期研究流派。
**符号主义学派**以数理逻辑为核心,认为智能可以通过符号系统的规则推理实现。典型代表是纽厄尔和西蒙开发的 “逻辑理论家”(Logic Theorist)程序,成功证明了罗素《数学原理》中的部分定理。**连接主义学派**受神经科学启发,专注于神经网络模型的研究。1958 年,弗兰克・罗森布拉特提出感知机(Perceptron),虽然单层感知机存在线性不可分的局限,但为深度学习的发展埋下了伏笔。**行为主义学派**强调智能体与环境的交互,代表人物布鲁克斯提出 “包容架构”(Subsumption Architecture),其开发的机器人 “艾伦” 通过分层控制实现复杂行为,无需符号推理。
20 世纪 70 年代至 80 年代,人工智能经历了两次 “寒冬”。第一次源于计算能力的限制与符号系统的脆弱性,如肖特利夫开发的医疗诊断系统 MYCIN 虽在特定领域表现出色,但难以应对复杂真实环境;第二次则因神经网络研究陷入瓶颈,明斯基在《感知机》中指出其理论缺陷,导致相关研究经费锐减。直到 1986 年,鲁梅尔哈特和欣顿提出反向传播(Backpropagation)算法,解决了多层神经网络训练的难题,连接主义重新崛起。
进入 21 世纪,大数据与云计算的普及为人工智能提供了新的发展动能。2012 年,欣顿团队在 ImageNet 图像识别竞赛中使用深度卷积神经网络(AlexNet),将错误率从 26% 降至 15%,引发了深度学习的热潮。此后,循环神经网络(RNN)、长短时记忆网络(LSTM)、Transformer 架构等相继问世,推动自然语言处理、计算机视觉等领域实现跨越式发展。例如,OpenAI 开发的 GPT 系列模型,从 GPT-1(2018)的 1.17 亿参数到 GPT-4(2023)的超万亿参数,展现了深度学习在语言理解与生成上的惊人潜力。
## 二、人工智能的多元应用场景与产业变革
人工智能正以颠覆性力量重塑各个行业,其应用场景呈现出爆发式增长的态势。
**医疗健康领域**,AI 在医学影像分析、药物研发和个性化治疗中发挥关键作用。谷歌旗下的 DeepMind 开发的 AlphaFold2,成功破解了困扰生物学 50 年的蛋白质折叠难题,加速了新药研发进程;联影智能的 uAI 系统可对 CT、MRI 影像进行自动病灶检测,辅助医生将诊断效率提升 30% 以上。在疫情期间,AI 算法还被用于预测病毒传播路径、优化医疗资源分配,展现了其在公共卫生应急中的价值。
**金融行业**,AI 驱动的智能风控、量化投资和智能客服成为主流趋势。蚂蚁集团的 RiskAI 风控系统,通过实时分析数千万个风险变量,将欺诈交易识别准确率提升至 99.9% 以上;桥水基金的 Pure Alpha 基金利用机器学习模型进行全球宏观经济预测,年化回报率显著高于传统策略。智能客服如京东金融的 “JDD - 智能管家”,日均处理咨询量超百万次,节省人力成本 40%。
**制造业**,AI 与物联网、数字孪生技术结合,推动 “智能制造” 升级。特斯拉的超级工厂采用视觉识别 AI 引导机械臂进行精准焊接,将车身组装误差控制在 0.1 毫米以内;西门子的 MindSphere 平台通过 AI 算法优化生产线排程,使设备综合效率(OEE)提升 15%。预测性维护方面,GE 的 Predix 系统利用振动数据预测风机故障,将非计划停机时间减少 70%。
**交通出行领域**,自动驾驶成为 AI 最受关注的应用之一。Waymo 的第五代自动驾驶系统通过多传感器融合与强化学习,在复杂城市道路累计行驶超 2000 万英里,事故率仅为人类驾驶的 1/10;中国的百度 Apollo 开放平台已吸引超 200 家生态伙伴,在北京、上海等地开展 Robotaxi 商业化试点。智能交通管理方面,杭州的 “城市大脑” 通过 AI 优化红绿灯配时,使主干道通行速度提升 15%。
**教育领域**,AI 催生了自适应学习、智能教学助手等新模式。Knewton 的智能学习平台根据学生答题数据实时调整内容难度,使学习效率提升 40%;科大讯飞的 “智学网” 通过 AI 分析试卷,为教师提供精准学情报告,覆盖全国超 1.5 万所学校。虚拟助教如微软的 “小冰”,可模拟人类教师进行语言教学,具备情感交互与个性化反馈能力。
## 三、人工智能的伦理挑战与社会影响
随着 AI 技术的广泛应用,其带来的伦理问题与社会影响日益凸显,亟需建立跨学科、跨领域的治理框架。
**算法偏见与公平性问题**是首要挑战。亚马逊曾尝试开发 AI 招聘系统,却被发现对女性求职者存在系统性歧视,原因是训练数据中男性简历占比高达 80%;美国 COMPAS 量刑算法被指控对黑人候选人存在偏见,错误率比白人高 45%。这些案例表明,数据采集的偏差与算法设计的缺陷可能加剧社会不平等,需建立数据审核机制与公平性评估标准。
**隐私安全与数据治理**面临严峻考验。AI 模型训练依赖海量数据,人脸识别、智能家居等应用场景中,用户生物特征、行为轨迹等敏感信息存在泄露风险。欧盟《通用数据保护条例》(GDPR)确立的 “被遗忘权” 与 “数据可携带权”,为 AI 的数据使用划定了边界;联邦学习、同态加密等技术的兴起,提供了 “数据不出本地” 的解决方案,如微众银行的联邦学习平台已在金融风控中实现数据隐私保护下的模型共建。
**就业结构与劳动力市场变革**引发广泛关注。世界经济论坛《2023 年未来就业报告》预测,到 2025 年,AI 将创造 9700 万个新岗位,同时取代 8500 万个现有岗位,编程、数据分析等技能需求激增,而行政、客服等重复性岗位面临缩减。各国需加强职业教育与终身学习体系建设,如德国的 “双元制” 职业培训引入 AI 课程,中国推出 “人工智能工程技术人员” 新职业,推动劳动力技能转型。
**人机交互的伦理边界与情感异化风险**不容忽视。社交机器人如 Character.ai 可模拟人类情感交流,用户可能对其产生情感依赖,甚至影响现实人际关系;深度伪造(Deepfake)技术制作的虚假视频,已被用于政治造谣与网络诈骗,2020 年美国众议院通过《深度伪造责任法案》,要求标注 AI 生成内容。如何平衡技术创新与伦理底线,需要哲学、法律、社会学等多学科的共同参与。
## 四、人工智能的未来图景:技术融合与全球治理
展望未来,人工智能将呈现多技术融合、多场景渗透的发展趋势,同时需要全球协同治理以确保其向善发展。
**技术融合方向**,AI 与量子计算、生物技术的结合将开启新的可能性。量子机器学习算法有望突破传统算力限制,如谷歌的 Sycamore 量子计算机已实现对特定优化问题的 “量子霸权”;脑机接口(BCI)与 AI 的融合,如 Neuralink 的植入式设备,可能实现人脑与计算机的直接交互,推动 “增强智能”(Augmented Intelligence)的发展。生物启发式 AI 则模仿生物体的进化机制,如 DeepMind 的 “神经进化” 算法,通过模拟自然选择优化神经网络结构。
**应用场景拓展**,AI 将深入解决全球性挑战。在气候变化领域,微软的 “行星计算机” 整合全球环境数据,通过 AI 模拟碳循环路径,助力碳中和目标;在太空探索中,NASA 的 “火星 2020” 任务使用 AI 驱动的自主导航系统,使毅力号火星车能实时规避障碍,完成复杂探测任务。教育、医疗等公共服务领域,AI 将进一步向偏远地区渗透,如中国的 “智慧乡村” 项目通过 AI 远程诊断系统,提升基层医疗水平。
**全球治理体系构建**成为当务之急。欧盟《人工智能法案》(AI Act)率先对高风险 AI 系统实施分级监管,禁止用于社会评分、实时生物识别监控等应用;联合国教科文组织 2021 年通过《全球人工智能伦理框架》,强调人权、环境与可持续发展的优先性。各国需加强政策协调,建立跨国数据流动机制、技术标准互认体系,如 “二十国集团人工智能治理原则” 提出的 “负责任创新” 理念,为全球合作提供了初步框架。
在这场深刻的科技革命中,人工智能既是工具,也是镜子 —— 它折射出人类的智慧与局限,更考验着我们构建包容性未来的能力。正如图灵在 70 年前的预言:“我们只能看到很短的未来,但可以看到那里有许多事情需要去做。” 面对 AI 带来的机遇与挑战,人类需要以理性为锚,以伦理为帆,在技术创新与社会平衡的航程中,驶向更具人性温度的智能时代。
这段文本涵盖了 AI 的技术史、应用场景、伦理问题及未来展望。若你需要调整主题、补充细节或修改篇幅,请随时告知。

53
knowledge/医院信息.md

@ -0,0 +1,53 @@
医院名称:
北京协和医院
医院地址:
(东单院区)北京市东城区帅府园一号,邮编:100730
(西单院区)北京市西城区大木仓胡同41号,邮编:100032
门诊开放时间:
工作日:8:00 - 17:30
急诊:24小时开放
服务热线:
(东单院区)010-69151188
(西单院区)010-69158100
医院简介:
北京协和医院是集医疗、教学、科研于一体的现代化综合三级甲等医院,是国家卫生健康委指定的全国疑难重症诊治指导中心,最早承担外宾医疗任务的医院之一,也是高等医学教育和住院医师规范化培训国家级示范基地,临床医学研究和技术创新的国家级核心基地。以学科齐全、技术力量雄厚、特色专科突出、多学科综合优势强大享誉海内外。在国家三级公立医院绩效考核中排名第一。
东单院区乘车路线:
1. 106,108,110,111,116,到东单路口北
2. 41,104,快到东单路口南
3. 1,52,728,802,到东单路口西
4. 10,20,25,37,39,到东单路口东
5. 103,104,420,803,到新东安市场
6. 地铁1号线或5号线到东单站,A或B出口向北
西单院区乘车路线:
1. 68到辟才胡同东口
2. 22,46,102,105,109,603,604,626,690,808,826,到西单商场
3. 1,10,37,52,70,728,802,到西单路口东
4. 地铁1号线或4号线到西单站,F1或G出口向北
东单院区预约号取号地点:
东院区老门诊楼一层大厅挂号窗口或新门诊楼各楼层挂号/收费窗口取号
西单院区预约号取号地点:
西院区门诊楼一层大厅挂号窗口取号

BIN
knowledge/医院信息.pdf

Binary file not shown.

37
knowledge/医院信息.txt

@ -0,0 +1,37 @@
医院名称:
北京协和医院
医院地址:
(东单院区)北京市东城区帅府园一号,邮编:100730
(西单院区)北京市西城区大木仓胡同41号,邮编:100032
门诊开放时间:
工作日:8:00 - 17:30
急诊:24小时开放
服务热线:
(东单院区)010-69151188
(西单院区)010-69158100
医院简介:
北京协和医院是集医疗、教学、科研于一体的现代化综合三级甲等医院,是国家卫生健康委指定的全国疑难重症诊治指导中心,最早承担外宾医疗任务的医院之一,也是高等医学教育和住院医师规范化培训国家级示范基地,临床医学研究和技术创新的国家级核心基地。以学科齐全、技术力量雄厚、特色专科突出、多学科综合优势强大享誉海内外。在国家三级公立医院绩效考核中排名第一。
东单院区乘车路线:
1. 106,108,110,111,116,到东单路口北
2. 41,104,快到东单路口南
3. 1,52,728,802,到东单路口西
4. 10,20,25,37,39,到东单路口东
5. 103,104,420,803,到新东安市场
6. 地铁1号线或5号线到东单站,A或B出口向北
西单院区乘车路线:
1. 68到辟才胡同东口
2. 22,46,102,105,109,603,604,626,690,808,826,到西单商场
3. 1,10,37,52,70,728,802,到西单路口东
4.地铁1号线或4号线到西单站,F1或G出口向北
东单院区预约号取号地点:
东院区老门诊楼一层大厅挂号窗口或新门诊楼各楼层挂号/收费窗口取号
西单院区预约号取号地点:
西院区门诊楼一层大厅挂号窗口取号

65
knowledge/口腔科.md

@ -0,0 +1,65 @@
# 北京协和医口腔科详细介绍:
北京协和医院口腔科历经100余年的发展壮大,已经成为集医疗、教学、科研于一体的国内知名综合医院口腔科室。
科室成立于1922年,洛克菲勒基金会将其定位为:为一流临床医学院校提供服务与支持的口腔医学专业科室。毕业于美国明尼苏达大学牙科学院的Bert Anderson任首任主任,老协和时代曾经有多位毕业于美国一流牙科院校和国内华西口腔医学院的知名专家学者在此工作执教,并开展了一系列与临床医学相关的科学研究。1953年宋儒耀和王巧璋教授夫妇在原有的牙病治疗室的基础上组建了独立的口腔科,并先后担任口腔科主任。宋儒耀教授时任中华口腔科杂志主编,中华医学会口腔科分会主任委员;王巧璋教授、俞家振教授任中华医学会口腔科分会常委、中华口腔科杂志编常委。王巧璋教授提出的 “糖原的内因致龋学说”,1977 年列为中国医学科学重要科研成果。王巧璋教授是中国儿童牙病学和预防牙医学的创始人。先后建立口腔科生化免疫、病理、实验外科、医用激光等实验室,为口腔科后备人才储备打下坚实基础。口腔外科方面:旋髂深动静脉为蒂的游离髂骨瓣移植修复下颌骨、以颞浅动静脉为蒂的颞骨瓣修复下颌骨缺损的研究均属于领先水平。1994年口腔科与哥伦比亚大学合作建立了我国第一个牙种植中心,并首先开展了此方面的临床及基础研究工作。2002年5月以后,随着北京协和医院与邮电总医院的合并,口腔科得到了进一步的发展壮大。
科室现状
随着学科的发展,进一步完善了专业组设置,现设有口腔颌面外科学专业组、牙体牙髓病学专业组、牙周病学专业组、口腔修复学专业组、口腔正畸学专业组,口腔种植学专业组、儿童口腔病学专业组、口腔黏膜病学专业组以及无痛牙科治疗中心。目前的口腔科拥有约60台口腔综合治疗台、12张病床、103名医护人员(包括医生56名、护士42名、技术人员5名)。博士生导师3人,硕士生导师3人。学科人才梯队趋于合理,其中教授和主任医师7人、副教授和副主任医师10人、主治医师27人、住院医师12人。
宿玉成主任任第六届(2018-2022)口腔种植专业委员会主任委员。赵继志主任任第一届(2016-2019)、第三届(2022-至今)口腔激光医学专业委员会主任委员。万阔主任任第二届(2019-2022)镇痛镇静专业委员会主任委员。周炼副主任任第四届(2023-至今)中华口腔医学会唇腭裂专委会副主任委员。
北京协和医院口腔科经过百年发展,在口腔医疗领域取得了显著成就。拥有合理的人才梯队、高精尖的仪器、设备,及精湛的技术和为人民服务的医学人文精神。作为大型综合医院的口腔科,北京协和医院口腔科具有学科专业能力强、综合性强,多学科协作优势明显等特点,可以为患者提供从口腔疾病治疗到全身健康管理的综合服务。
## 科室地址
东院门诊:东院门诊楼7层。
## 专家团队
### 赵继志
口腔医学系主任 主任医师 教授 Professor
擅长 : 口腔颌面部肿瘤、畸形的诊治及整形美容修复 Diagnosis and treatment of oral and maxillofacial tumors, malformations, plastic and cosmetic surgery.
口腔医学系主任 ,教授、主任医师、医学博士。任中华口腔医学会口腔激光医学专委会主委、全科口腔医学专委会常委、颌面外科专委会委员。擅长口腔激光治疗、口腔颌面部肿瘤的诊治及颌面部缺损与畸形的整形与修复,尤其在对伴有全身系统疾病的患者和一些疑难病的诊治上积累了丰富经验,曾任口腔科主任。
详细介绍
赵继志,教授、主任医师、医学博士。1988年毕业于北京医科大学口腔系,1998年获中国协和医科大学医学博士学位。2003~2005年在加拿大不列颠哥伦比亚大学进修学习。兼任中华口腔医学会口腔激光医学专委会主委、全科口腔医学专委会常委、颌面外科专委会委员,《中华口腔医学杂志》、《华西口腔医学杂志》、《中国美容医学杂志》等专业杂志编委。从事口腔颌面外科临床工作近三十年,擅长口腔激光治疗、口腔颌面部肿瘤的诊治及颌面部缺损与畸形的整形与修复,尤其在对伴有全身系统疾病的患者和一些疑难病的诊治上积累了丰富经验。曾任北京协和医院口腔科主任。
### 赖钦声
主任医师 教授 Professor
擅长 : 口腔颌面部肿瘤、损伤、涎腺疾病、颞下颌关节疾病、口腔颌面部发育畸形 Oral and maxillofacial tumors, trauma, salivary gland diseases, temporomandibular joint diseases, oral and maxillofacial malformations
赖钦声,口腔医学教授,男,1957年毕业于北京医学院口腔医学系本科,1985年被批准为硕士生导师。四十多年来一直从事口腔颌面外科的临床、教学和科研工作,对口腔科学的发展和建设做出了积极的贡献,取得了重要成果。对口腔颌面部肿瘤、损伤、涎腺疾病、颞下颌关节疾病、口腔颌面部发育畸形等的诊断和治疗均有丰富的经验和较高的水平。
详细介绍
赖钦声,口腔学教授,男,1933年12月生,山东省烟台市人。1957年毕业于北京医学院口腔医学系本科,1985年被批准为硕士生导师,四十多年来一直从事口腔颌面外科的临床、教学和科研工作,对口腔科学的发展和建设做出了积极的贡献,取得了重要成果。对口腔颌面部的各种[疾病](http://www.haodf.com/jibing/neike/list.htm),如[口腔颌面部肿瘤](http://www.haodf.com/jibing/kouqianghemianbuzhongliu.htm)、损伤(上、下颌骨及颧骨[骨折](http://www.haodf.com/jibing/guzhe.htm))、[涎腺疾病](http://www.haodf.com/jibing/xianxianjibing.htm)(腮腺、颌下腺及舌下腺的[肿瘤](http://www.haodf.com/jibing/zhongliu.htm)和炎症)、颞下颌关节疾病、口腔颌面部发育畸形(唇裂、腭裂等)以及口腔颌面部的后天畸形和缺损等的诊断和治疗均有丰富的经验和较高的水平,做了大量的疑难手术,获得优良效果,挽救了病人的生命,恢复了病人的面容,解除了病人的[心理障碍](http://www.haodf.com/jibing/xinlizhangai.htm)。
### 万阔
口腔科主任 主任医师 教授 Professor
擅长 : 无痛牙科治疗、牙科恐惧治疗、口腔内科治疗(复杂根管治疗、牙周病治疗) Painless dental treatment, oral endodontics (complex root canal treatment, periodontal disease treatment)
口腔科主任 主任医师 教授
详细介绍
北京协和医院口腔科主任。1993年毕业于北京大学口腔医学院,1993年毕业至今工作于北京协和医院,现任职主任医师,教授。中华口腔医学会镇静镇痛专业委员会主任委员,中华口腔医学会口腔医学标准工作专家委员会委员,中国医师协会科普分会委员,中国妇幼保健协会口腔保健专业委员会顾问委员,中国口腔医学继续教育杂志编委,北京口腔医学会常务理事,北京口腔医学会镇静镇痛专业委员会主任委员,北京口腔医学会牙体牙髓病专业委员会常务委员,北京口腔医学会口腔急诊专业委员会常务委员。国内最早实施牙科无痛治疗与镇静技术的学者之一,在该领域发表论文27篇,主编专著1部,译著1部,参编教材1部,并主导或参加多个国内诊疗规范和操作指南的制定。于2003年组建了国内第一个系统治疗“牙科恐惧症”的团队,成立“北京协和医院无痛牙科治疗中心”。

4
knowledge/测试.txt

@ -0,0 +1,4 @@
北京协和医院是一所历史悠久的医院。它在医疗领域有着卓越的成就。
医院拥有众多知名专家。他们为患者提供了高质量的医疗服务。
医院的设施先进。这为诊断和治疗提供了有力支持。
此外,医院还注重科研和教学。培养了许多优秀的医学人才。

60
knowledge/神经内科.md

@ -0,0 +1,60 @@
# 北京协和医院神经内科详细介绍:
  北京协和医院神经内科成立于1921年,历经90余载风雨,已经成为全国久负盛名的神经专科,是国内最早的神经病学专业博士、硕士学位授予点及博士后工作站之一。在处理和解决疑难杂症和重症方面处于国内领先地位 。现拥有11个专业组(临床神经生理、脑电图与癫痫、痴呆与认知障碍、脑血管病、帕金森及运动障碍、神经病理、神经肌肉病、感染与脑脊液细胞学、神经免疫、神经遗传和睡眠),开设9个特色门诊(神经肌肉病门诊、肌张力障碍和肉毒毒素治疗门诊、帕金森病和老年痴呆门诊、癫痫门诊、脑血管病门诊、运动神经元病、重症肌无力门诊、多发性硬化门诊和头痛门诊等),为广大患者提供高水平的医疗服务。连续6年在复旦大学专科声誉排行榜上名列神经内科专科声誉第一名。
  科室专业设置齐全,技术力量雄厚。临床基本功扎实,总体实力强,特别在处理和解决疑难杂症和重症方面处于国内领先地位,吸引了大量来自全国各地的疑难病患者。科室现有床位90余张,每年门急诊接治患者超过16万人次,住院患者1600余人次。神经内科专科实验室设置齐全,肌电图与脑诱发电位、神经病理、脑电图、经颅超声多普勒、神经生化和免疫、分子生物学实验室均为国内翘楚,为患者诊治提供高水平的实验室辅助检查。
  重视开展以临床为导向的科学研究,旨在探索创新性诊疗方法,提高临床诊疗水平。研究内容覆盖了神经系统疾病的主要领域,临床与基础研究相辅相成,促进学科水平的提高。近5年来共承担科研课题40余项,其中国家级科研课题20项,合计科研经费超过3000万元。近5年获包括国家科技进步二等奖、中华医学科技进步奖二等奖及多项省部级在内的科研成果奖。
  科室承担大量教学任务。承担北京协和医学院八年制医大本科生、研究生、进修医师的教学工作,是北京市住院医师规范培训基地。每年举办5个国家级继续教育学习班,有神经系统疾病高级进展学习班;经颅多普勒超声学习班;肌电图和脑诱发电位学习班;脑电图和癫痫诊疗进展学习班;肌张力障碍诊断治疗学习班等。为全国输送了大量神经内科专科人才。
  科室现有医生 57人,其中教授11人、副教授17人、主治医生18人、住院医生11人,其中博士生导师7人,硕士生导师8人。现有各级护理人员50人。科室重视人才培养,老一辈知名专家老当益壮,中青年专家年富力强,年轻医师迅速成长。90%的高级教师有在国外学习和进修的经历。现任科室主任崔丽英教授担任现任中华医学会神经病学分会主任委员(第七届)及《中华神经科杂志》主编,并曾担任中华医学会神经病学分会第四届主任委员,科室20人次在中华医学会各专业学组任职,10余人担任多家国内核心期刊杂志副主编及编委。
## 科室地址
东院门诊:东院门诊楼6层。
## 专家团队
### 彭斌
副院长 主任医师 教授 博士研究生导师 Professor
擅长 : 神经系统常见病多发病 专业特长:脑血管病及神经系统危重疾病 Common and frequent neurologic diseases, especially cerebrovascular disease and critical patients with neurological diseases.
详细介绍:
彭斌,男,主任医师,教授,神经内科主任,博士研究生导师。
1992年华西医科大学毕业后至北京协和医院神经内科工作至今。曾在澳大利亚悉尼大学乔治国际卫生中心皇家阿尔弗雷德王子医院和美国密歇根大学医学院学习。在神经系统常见病、疑难病的诊治方面具有较丰富的经验。从事脑血管病和神经危重症研究,对脑梗死急性期治疗、脑小血管病、脑出血、颅内动脉狭窄、脑静脉血栓形成及卒中二级预防等有较深入的研究。国内外发表学术论文100余篇。
### 崔丽英
主任医师 教授 博士研究生导师 Professor
擅长 : 运动神经元病、周围神经病、肌肉病等神经系统的各种疑难杂症 Complex and rare neurological disorders such as motor neuron disease, peripheral neuropathy, and myopathy, etc.
详细介绍:
崔丽英,曾任神经内科主任。中华医学会神经病学分会主任委员,全国肌电图和临床神经电生理学组名誉组长,国际临床神经电生理联盟(IFCN)执委。中国医师协会神经内科分会副会长,北京医师协会神经病学分会会长。北京医学会神经病学分会前任主任委员。中华神经科杂志总编,中华医学英文版和协和杂志等六个杂志副主编等。曾获第九届“吴阶平-保罗·杨森药学研究奖”—神经病学专业一等奖。卫生部突贡中青年专家,北京市教育工会“教育先锋”,北京市有突出贡献的科学、技术、管理人才。北京市高等学校教学名师奖等荣誉。
主要从事运动神经元病、神经肌肉病和神经系统各种疑难杂症的诊治和临床神经电生理的应用和研究。国内外发表学术论文500余篇,著书20余本。
### 朱以诚
神经内科主任 神经病学系主任 主任医师 博士研究生导师 Professor
擅长 : 脑血管病,脑小血管病,血管性帕金森,血管性认知功能障碍,遗传性及其他罕见病因脑血管病(CADASIL等遗传性脑小血管病、青年卒中、脑静脉系统疾病等),脑白质病等。 Cerebrovascular disease, cerebral small vessel disease, vascular parkinsonism, vascular congnitive impairment, hereditary or cerebrovascular disease or cerebrovascular rare diseases , white matter diseases.
详细介绍
朱以诚,女,主任医师,教授,神经内科主任,神经病学系主任,博士研究生导师。
1995年上海医科大学毕业后至北京协和医院工作至今,经过了系统严格的神经系统疾病诊疗训练,在神经系统常见病、罕见病的诊治方面具有较丰富的经验。尤其专注于脑血管病、脑小血管病、血管性帕金森,血管性认知功能障碍,遗传性及其他罕见病因脑血管病(CADASIL等单基因遗传脑小血管病、青年卒中、脑静脉系统疾病等)的临床诊疗,并开展新诊疗技术研究。参与北京协和医院罕见病多学科诊疗,作为主要参加者搭建国家罕见病注册登记系统,致力于罕见病诊疗和研究工作。主持国家自然科学基金、863计划、国家十三五重大专项等科研课题,获得国家科学技术进步二等奖1项,北京市科学技术一等奖1项,二等奖1项。入选国家“百千万人才工程”,被授予“有突出贡献中青年专家”荣誉称号。

11
knowledge/科室信息.md

@ -0,0 +1,11 @@
北京协和医院科室详细介绍:
1、内科学系:心内科、呼吸与危重症医学科、消化内科、肾内科、血液内科、风湿免疫科、感染内科、全科医学科(普通内科)、肿瘤内科、MICU、老年医学科、内分泌科、重症医学科(ICU)、儿科、神经内科、心理医学科、皮肤科、变态(过敏)反应科、急诊科、中医科、康复医学科、临床营养科、罕见病医学科。
2、外科学系:基本外科、骨科、心外科、胸外科、泌尿外科、神经外科、血管外科、整形美容外科、乳腺外科、肝脏外科、麻醉科。
3、其他科室:妇产科、眼科、耳鼻喉科、口腔科、超声医学科、病理科、检验科、放射科、放射治疗科、核医学科、输血科、药剂科、病案科、国际医疗部、健康医学部(体检中心)、临床药理研究中心。

BIN
knowledge/科室信息.pdf

Binary file not shown.

7
knowledge/科室信息.txt

@ -0,0 +1,7 @@
北京协和医院科室详细介绍:
1、内科学系:心内科、呼吸与危重症医学科、消化内科、肾内科、血液内科、风湿免疫科、感染内科、全科医学科(普通内科)、肿瘤内科、MICU、老年医学科、内分泌科、重症医学科(ICU)、儿科、神经内科、心理医学科、皮肤科、变态(过敏)反应科、急诊科、中医科、康复医学科、临床营养科、罕见病医学科。
2、外科学系:基本外科、骨科、心外科、胸外科、泌尿外科、神经外科、血管外科、整形美容外科、乳腺外科、肝脏外科、麻醉科。
3、其他科室:妇产科、眼科、耳鼻喉科、口腔科、超声医学科、病理科、检验科、放射科、放射治疗科、核医学科、输血科、药剂科、病案科、国际医疗部、健康医学部(体检中心)、临床药理研究中心。

24
ui/.gitignore

@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

16
ui/index.html

@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="icon" type="image/svg+xml" href="/vite.svg"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>硅谷小智(医疗版)</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css">
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>

1773
ui/package-lock.json

File diff suppressed because it is too large

24
ui/package.json

@ -0,0 +1,24 @@
{
"name": "xiaozhi-ui",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"dependencies": {
"@element-plus/icons-vue": "^2.3.1",
"axios": "^1.7.7",
"element-plus": "^2.8.4",
"uuid": "^10.0.0",
"vue": "^3.5.13"
},
"devDependencies": {
"@vitejs/plugin-vue": "^5.0.5",
"vite": "^5.4.8"
}
}

1091
ui/pnpm-lock.yaml

File diff suppressed because it is too large

1
ui/public/vite.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

14
ui/src/App.vue

@ -0,0 +1,14 @@
<template>
<ChatWindow/>
</template>
<script setup>
import ChatWindow from '@/components/ChatWindow.vue'
</script>
<style>
html,
body {
overflow: hidden;
}
</style>

BIN
ui/src/assets/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

1
ui/src/assets/vue.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="37.07" height="36" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 198"><path fill="#41B883" d="M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0h47.36Z"></path><path fill="#41B883" d="m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0H0Z"></path><path fill="#35495E" d="M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0H50.56Z"></path></svg>

After

Width:  |  Height:  |  Size: 496 B

381
ui/src/components/ChatWindow.vue

@ -0,0 +1,381 @@
<template>
<div class="app-layout">
<div class="sidebar">
<div class="logo-section">
<img src="@/assets/logo.png" alt="硅谷小智" width="160" height="160" />
<span class="logo-text">硅谷小智医疗版</span>
</div>
<el-button class="new-chat-button" @click="newChat">
<i class="fa-solid fa-plus"></i>
&nbsp;新会话
</el-button>
</div>
<div class="main-content">
<div class="chat-container">
<div class="message-list" ref="messaggListRef">
<div
v-for="(message, index) in messages"
:key="index"
:class="
message.isUser ? 'message user-message' : 'message bot-message'
"
>
<!-- 会话图标 -->
<i
:class="
message.isUser
? 'fa-solid fa-user message-icon'
: 'fa-solid fa-robot message-icon'
"
></i>
<!-- 会话内容 -->
<span>
<span v-html="message.content"></span>
<!-- loading -->
<span
class="loading-dots"
v-if="message.isThinking || message.isTyping"
>
<span class="dot"></span>
<span class="dot"></span>
</span>
</span>
</div>
</div>
<div class="input-container">
<el-input
v-model="inputMessage"
placeholder="请输入消息"
@keyup.enter="sendMessage"
></el-input>
<el-button @click="sendMessage" :disabled="isSending" type="primary"
>发送</el-button
>
</div>
</div>
</div>
</div>
</template>
<script setup>
import { onMounted, ref, watch } from 'vue'
import axios from 'axios'
import { v4 as uuidv4 } from 'uuid'
const messaggListRef = ref()
const isSending = ref(false)
const uuid = ref()
const inputMessage = ref('')
const messages = ref([])
onMounted(() => {
initUUID()
// setInterval
watch(messages, () => scrollToBottom(), { deep: true })
hello()
})
const scrollToBottom = () => {
if (messaggListRef.value) {
messaggListRef.value.scrollTop = messaggListRef.value.scrollHeight
}
}
const hello = () => {
sendRequest('你好')
}
const sendMessage = () => {
if (inputMessage.value.trim()) {
sendRequest(inputMessage.value.trim())
inputMessage.value = ''
}
}
const sendRequest = (message) => {
isSending.value = true
const userMsg = {
isUser: true,
content: message,
isTyping: false,
isThinking: false,
}
//
if(messages.value.length > 0){
messages.value.push(userMsg)
}
//
const botMsg = {
isUser: false,
content: '', //
isTyping: true, //
isThinking: false,
}
messages.value.push(botMsg)
const lastMsg = messages.value[messages.value.length - 1]
scrollToBottom()
axios
.post(
'/api/xiaozhi/chat',
{ memoryId: uuid.value, message },
{
responseType: 'stream', // "text"
onDownloadProgress: (e) => {
const fullText = e.event.target.responseText //
let newText = fullText.substring(lastMsg.content.length)
lastMsg.content += newText //
console.log(lastMsg)
scrollToBottom() //
},
}
)
.then(() => {
//
messages.value.at(-1).isTyping = false
isSending.value = false
})
.catch((error) => {
console.error('流式错误:', error)
messages.value.at(-1).content = '请求失败,请重试'
messages.value.at(-1).isTyping = false
isSending.value = false
})
}
// UUID
const initUUID = () => {
let storedUUID = localStorage.getItem('user_uuid')
if (!storedUUID) {
storedUUID = uuidToNumber(uuidv4())
localStorage.setItem('user_uuid', storedUUID)
}
uuid.value = storedUUID
}
const uuidToNumber = (uuid) => {
let number = 0
for (let i = 0; i < uuid.length && i < 6; i++) {
const hexValue = uuid[i]
number = number * 16 + (parseInt(hexValue, 16) || 0)
}
return number % 1000000
}
//
const convertStreamOutput = (output) => {
return output
.replace(/\n/g, '<br>')
.replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;')
.replace(/&/g, '&amp;') // HTML
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')
}
const newChat = () => {
//
console.log('开始新会话')
localStorage.removeItem('user_uuid')
window.location.reload()
}
</script>
<style scoped>
.app-layout {
display: flex;
height: 100vh;
}
.sidebar {
width: 200px;
background-color: #f4f4f9;
padding: 20px;
display: flex;
flex-direction: column;
align-items: center;
}
.logo-section {
display: flex;
flex-direction: column;
align-items: center;
}
.logo-text {
font-size: 18px;
font-weight: bold;
margin-top: 10px;
}
.new-chat-button {
width: 100%;
margin-top: 20px;
}
.main-content {
flex: 1;
padding: 20px;
overflow-y: auto;
}
.chat-container {
display: flex;
flex-direction: column;
height: 100%;
}
.message-list {
flex: 1;
overflow-y: auto;
padding: 10px;
border: 1px solid #e0e0e0;
border-radius: 4px;
background-color: #fff;
margin-bottom: 10px;
display: flex;
flex-direction: column;
}
.message {
margin-bottom: 10px;
padding: 10px;
border-radius: 4px;
display: flex;
/* align-items: center; */
}
.user-message {
max-width: 70%;
background-color: #e1f5fe;
align-self: flex-end;
flex-direction: row-reverse;
}
.bot-message {
max-width: 100%;
background-color: #f1f8e9;
align-self: flex-start;
}
.message-icon {
margin: 0 10px;
font-size: 1.2em;
}
.loading-dots {
padding-left: 5px;
}
.dot {
display: inline-block;
margin-left: 5px;
width: 8px;
height: 8px;
background-color: #000000;
border-radius: 50%;
animation: pulse 1.2s infinite ease-in-out both;
}
.dot:nth-child(2) {
animation-delay: -0.6s;
}
@keyframes pulse {
0%,
100% {
transform: scale(0.6);
opacity: 0.4;
}
50% {
transform: scale(1);
opacity: 1;
}
}
.input-container {
display: flex;
}
.input-container .el-input {
flex: 1;
margin-right: 10px;
}
/* 媒体查询,当设备宽度小于等于 768px 时应用以下样式 */
@media (max-width: 768px) {
.main-content {
padding: 10px 0 10px 0;
}
.app-layout {
flex-direction: column;
}
.sidebar {
/* display: none; */
width: 100%;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: 10px;
}
.logo-section {
flex-direction: row;
align-items: center;
}
.logo-text {
font-size: 20px;
}
.logo-section img {
width: 40px;
height: 40px;
}
.new-chat-button {
margin-right: 30px;
width: auto;
margin-top: 5px;
}
}
/* 媒体查询,当设备宽度大于 768px 时应用原来的样式 */
@media (min-width: 769px) {
.main-content {
padding: 0 0 10px 10px;
}
.app-layout {
display: flex;
height: 100vh;
}
.sidebar {
width: 200px;
background-color: #f4f4f9;
padding: 20px;
display: flex;
flex-direction: column;
align-items: center;
}
.logo-section {
display: flex;
flex-direction: column;
align-items: center;
}
.logo-text {
font-size: 18px;
font-weight: bold;
margin-top: 10px;
}
.new-chat-button {
width: 100%;
margin-top: 20px;
}
}
</style>

10
ui/src/main.js

@ -0,0 +1,10 @@
import { createApp } from 'vue';
import App from './App.vue';
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';
const app = createApp(App);
app.use(ElementPlus);
app.mount('#app');

79
ui/src/style.css

@ -0,0 +1,79 @@
:root {
font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
line-height: 1.5;
font-weight: 400;
color-scheme: light dark;
color: rgba(255, 255, 255, 0.87);
background-color: #242424;
font-synthesis: none;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
a {
font-weight: 500;
color: #646cff;
text-decoration: inherit;
}
a:hover {
color: #535bf2;
}
body {
margin: 0;
display: flex;
place-items: center;
min-width: 320px;
min-height: 100vh;
}
h1 {
font-size: 3.2em;
line-height: 1.1;
}
button {
border-radius: 8px;
border: 1px solid transparent;
padding: 0.6em 1.2em;
font-size: 1em;
font-weight: 500;
font-family: inherit;
background-color: #1a1a1a;
cursor: pointer;
transition: border-color 0.25s;
}
button:hover {
border-color: #646cff;
}
button:focus,
button:focus-visible {
outline: 4px auto -webkit-focus-ring-color;
}
.card {
padding: 2em;
}
#app {
max-width: 1280px;
margin: 0 auto;
padding: 2rem;
text-align: center;
}
@media (prefers-color-scheme: light) {
:root {
color: #213547;
background-color: #ffffff;
}
a:hover {
color: #747bff;
}
button {
background-color: #f9f9f9;
}
}

24
ui/vite.config.js

@ -0,0 +1,24 @@
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { fileURLToPath, URL } from 'node:url'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue()
],
server: {
proxy: {
'/api': {
target: ' http://localhost:8080',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ''), // 去掉 /api 前缀
},
},
},
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)),
},
},
})

BIN
尚硅谷-Java+大模型应用-硅谷小智(医疗版).pdf

Binary file not shown.
Loading…
Cancel
Save