搜索
首页科技周边人工智能Gemini 2.0,烧瓶和矢量嵌入的医疗聊天机器人

在AI时代,聊天机器人彻底改变了我们与技术的互动方式。也许最有影响力的用途之一是医疗保健行业。聊天机器人能够提供快速,准确的信息,并帮助个人更有效地管理自己的健康。在本文中,我们将学习如何使用Gemini 2.0,Flask,HTML和Bootstrap开发医疗聊天机器人。该项目旨在创建一个个性化的,用户友好的自定义平台,以准确和速度回答与健康相关的查询。

学习目标

  • 了解具有Gemini 2.0的医疗聊天机器人的关键组件和架构,以及如何增强医疗保健互动。
  • 了解如何将Gemini 2.0集成到医疗聊天机器人中,以提供适合患者需求的准确,上下文感知的响应。
  • 探索使用HTML和Bootstrap设计响应式且用户友好的聊天机器人界面的使用。
  • 在设置和部署个性化医疗聊天机器人方面获得动手实践经验。
  • 发现Faiss在提高聊天机器人功能的搜索效率中的作用。

目录

  • 什么是Gemini 2.0?
  • Facebook AI相似性搜索
  • 设置环境
  • HTML医疗聊天机器人的前端代码
  • 构建文件驱动的AI问题答案系统
  • 结论
  • 常见问题

什么是Gemini 2.0?

Gemini 2.0于2024年12月宣布,是由Google DeepMind开发的Google大语言模型(LLM)系列的最新迭代。它引入了多种关键增强功能,包括多模式输出,本机工具使用和代理能力,将其定位为用于不同应用程序的多功能AI模型。

Gemini 2.0以其前身Gemini 1.5为基础,扩展了处理和生成文本,图像,视频和音频的能力。它为更自然的交互式用户体验添加了本地图像创建和多语言文本对语音输出。

Gemini 2.0最出色的功能之一是其代理AI,它允许系统独立计划和执行任务。像Project Astra这样的实验项目通过与搜索和地图等Google服务集成以提供实时,上下文帮助来证明此功能。另一个示例是Mariner Project Mariner,这是一个镀铬扩展名,可自动浏览Web以执行在线购物等任务。

双子座2.0的主要特征

  • 多模式输出: Gemini 2.0流程并生成多种数据类型,包括文本,图像,音频和视频,从而实现了更自然和上下文的交互。
  • 本机工具使用:该模型与各种工具和平台无缝集成,从而在不同的应用程序上增强了其效用。
  • 代理能力: Gemini 2.0引入了能够以最少的人为干预执行复杂任务的AI代理,这标志着朝着更自主的AI系统迈出的一步。

Gemini 2.0的版本

Gemini 2.0有多个版本,每个版本都针对特定用例量身定制:

  • Gemini 2.0 Flash实验:一个针对速度和效率的实验模型,适合快速执行。
  • Gemini 2.0 Pro:专为各种任务而设计,在性能和成本之间提供平衡。
  • Gemini 2.0 Ultra:针对高度复杂的任务进行了优化,为苛刻的应用提供了出色的性能。

烧瓶

  • 烧瓶是Python中轻量级的Web框架,非常适合构建可扩展有效的Web应用程序。
  • 在聊天机器人中,烧瓶处理后端操作,包括与Gemini 2.0集成的API集成,路由和管理用户交互。
  • 它的简单性和灵活性使其非常适合快速开发和集成任务。

HTML和Bootstrap

  • HTML构成了聊天机器人界面的结构基础,可确保语义和可访问的Web设计。
  • Bootstrap是CSS框架,通过提供响应迅速和美观的设计组件来增强界面。它确保聊天机器人在台式机到智能手机的设备之间无缝地工作。

医疗聊天机器人的主要功能

  • 对话界面:聊天机器人通过双子座2.0提供动力的自然,类似人类的互动。
  • 用户友好的设计:支持自举的响应式设计可确保任何设备上的易用性。
  • 健康查询支持:能够解决从症状到一般健康建议的各种医疗问题。
  • 可访问性:旨在易于适用于所有技术能力的用户。

Facebook AI相似性搜索

Meta(以前是Facebook)开发了Faiss作为开源库,用于有效的相似性搜索和密集矢量的聚类。机器学习通常使用FAIS,特别是用于涉及大规模矢量搜索和最近邻居检索的任务。 Faiss优化了处理高维数据,使其非常适合诸如建议系统,自然语言处理和图像检索等应用。

简而言之,faiss可以启用索引密集的向量,并在它们上迅速支撑近似或精确搜索。它使用产品量化,HNSW(层次可导航的小世界图)和IVF(倒文件索引)技术来平衡速度和准确性之间的权衡。这些技术在搜索结果中以很高的精度降低了计算复杂性和内存使用情况。但是,Faiss进一步支持CPU和GPU加速度,使其适用于数百万甚至数十亿个用于处理数据集的向量。

Faiss的主要优势之一是其多功能性。它提供了多种索引策略,使用户能够为其特定用例选择最合适的方法。例如,平面索引提供精确的搜索功能,而基于量化的索引优先考虑效率。它的Python和C API使其可容纳广泛的开发人员,并且其模块化设计使其轻松地集成到现有的机器学习管道中。

在此处了解有关矢量数据库的更多信息。

流程图说明:医疗聊天机器人工作流程

以下是流程图:

Gemini 2.0,烧瓶和矢量嵌入的医疗聊天机器人

  • 开始:用户从医疗聊天机器人的主页(index.html)开始。
  • 上传PDF以建立知识库
    • 用户通过文件上传功能上传PDF文件。
    • 后端处理PDF并构建知识库,将其存储在向量存储(vector_store.pkl)中以进行未来查询。
    • 如果上传无效的文件,系统将处理错误并提示用户获取有效文件。
  • 询问医疗问题
    • 用户通过询问医疗问题(/ask)功能提交医疗问题。
    • 如果存在知识库,则系统将检索相关文档。
    • 如果不存在知识库,则会显示错误消息或启动重定向。
  • 产生响应
    • 检索相关文档并将其传递给双子座模型以生成响应。
    • 该模型处理输入并提供准确的医疗响应。
  • 显示或重定向
    • 生成的响应显示给用户或重定向到适当的页面以进行进一步交互。
  • 结束:用户收到响应,并可能选择进一步互动或结束会话。

此工作流程可确保使用Gemini模型获得无缝医疗聊天机器人体验,可确保使用Gemini模型进行平稳的用户互动,有效的错误处理和准确的响应生成。

设置环境

首先安装所需的依赖项,配置API键并设置前端,以准备医疗聊天机器人的环境。

安装需求.txt

 pip install -r https://raw.githubusercontent.com/gouravlohar/medical-chatbot/refs/heads/heads/master/requirements.txt

API键

从这里获取您的Gemini 2.0 API键。

Gemini 2.0,烧瓶和矢量嵌入的医疗聊天机器人

HTML医疗聊天机器人的前端代码

此HTML代码构成了医疗聊天机器人应用程序的前端用户界面。它创建一个交互式网页,用户可以:

  • 上传PDF文件,为聊天机器人提供其他上下文。
  • 发送聊天消息与基于AI的医疗聊天机器人进行互动。

该界面使用引导程序进行样式和jQuery,以动态处理用户交互。它包含诸如聊天机器人的打字指示器和无缝消息显示之类的功能。该代码与烧瓶后端集成在一起,以处理用户输入并返回AI生成的响应。

 



  <meta charset="“" utf-8>
  <meta http-equiv="“" x-ua content="“" ie="edge”">
  <meta name="“" viewport content="“" width="设备宽度,初始尺度=">
  <meta name="“描述”" content="“" python>

  <title>医疗聊天机器人</title>
  <link rel="“快捷方式”" type="“" image href="%E2%80%9C">
  <link href="%E2%80%9C" https: protected display="swap“" rel="“" stylesheet>
  
    :根 {
       - 学位:线性学位(135DEG,#6E8EFB,#4834D4);
      -Chat-BG:#111827;
      --Message-BG:#1F2937;
       - 用户 - 梅斯奇 -  bg:#3730a3;
      -Text-primary:#fff;
      -Text-ecredary:#9CA3AF;
    }

    身体 {
      字体家庭:“ inter”,sans-serif;
      背景色:var( -  chat-bg);
      颜色:var( - 文本主要);
      最小值:100VH;
      显示:Flex;
      挠性方向:列;
    }

    .chat-c​​ontainer {
      最大宽度:1200px;
      保证金:0自动;
      填充:2REM;
      弹性:1;
      显示:Flex;
      挠性方向:列;
    }

    。标题 {
      文字平衡:中心;
      边缘底:1REM;
      字体大小:2REM;
      字体重量:600;
      颜色:var( - 文本主要);
    }

    。警告 {
      文字平衡:中心;
      边缘底:2REM;
      字体大小:1REM;
      颜色:var( - 文本限制);
    }

    .Messages-container {
      弹性:1;
      溢出Y:自动;
      填充:1REM;
      滚动行为:平滑;
    }

    。信息 {
      边缘底:1REM;
      不透明度:0;
      变换:翻译(20px);
      动画:Fadein 0.3s易于前进;
    }

    .message-content {
      填充:1REM;
      边界拉迪乌斯:1REM;
      最大宽度:80%;
    }

    .user-message .message-content {
      背景:var( - 用户 - 默塞-bg);
      左翼:自动;
    }

    .bot-message .message-content {
      背景:var(-message-bg);
    }

    .input-container {
      填充:1REM;
      背景:var( -  chat-bg);
      边界顶:1PX实心RGBA(255、255、255、0.1);
    }

    .chat输入{
      背景:var(-message-bg);
      边界:无;
      边界拉迪乌斯:1.5REM;
      填充:1REM 1.5REM;
      颜色:var( - 文本主要);
      宽度:计算(100%-120px);
    }

    。
      背景:var( - 主要学位);
      边界:无;
      边界拉迪乌斯:1.5REM;
      填充:1REM 2REM;
      颜色:白色;
      字体重量:600;
      过渡:所有0.3 s selie;
    }

    .SEND BUTTON:悬停
      变换:translatey(-2px);
      盒子阴影:0 5px 15px RGBA(110、142、251、0.4);
    }

    .Typing-indicator {
      显示:Flex;
      差距:0.5REM;
      填充:1REM;
      背景:var(-message-bg);
      边界拉迪乌斯:1REM;
      宽度:拟合;
    }

    .Typing-dot {
      宽度:8px;
      身高:8px;
      背景:var( - 文本限制);
      边界拉迪乌斯:50%;
      动画:键入1.4s无限的轻松入门;
    }

    .Typing-dot:nth-​​child(2){
      动画 - 延迟:0.2s;
    }

    .Typing-dot:nth-​​child(3){
      动画 - 赛:0.4s;
    }

    @KeyFrames键入{
      0%,
      100%{
        变换:translatey(0);
      }

      50%{
        变换:translatey(-10px);
      }
    }

    @keyframes fadein {
      到 {
        不透明度:1;
        变换:translatey(0);
      }
    }

    / *消息格式 */
    .bot-message strong {
      颜色:#818CF8;
      字体重量:600;
    }

    .bot-message ul {
      左填充:1.5REM;
      保证金:0.5REM 0;
    }
  



  <div>
    <div>欢迎来到医疗聊天机器人</div>
    <div>注意:这是一个AI聊天机器人,可能会犯错误。请验证提供的信息。</div>
    {%带有消息= get_flashed_messages()%}
      {%如果消息%}
        <div>
          {{消息[0]}}
        </div>
      {%endif%}
    {%endWith%}
    <form method="“">
        上传pdf文件
        <input type="“" file name="“" pdf_files>
      </form>
</div>
      <button type="“提交”">上传pdfs </button>
    
    <div>
      
    </div>
    
<script> $(document).ready(function(){ $(“#聊天形式”)。提交(function(event){ event.preventDefault(); VAR问题= $(“#chat-Input”)。val(); if(Question.trim()===“”)返回; 让usermessage =` <div> <div> $ {问题} `; $(“#Messages-container”)。附录(usermessage); $(“#聊天输入”)。val(“”); 令打字机=` <div> <div> <div> <div> `; $(“#Messages-container”)。附录(TypingIndicator); $ .ajax({ 类型:“ post”, URL:“/ask”, 数据: { “提示”:问题 },, 成功:功能(数据){ $(“。键入 - 指示剂”)。remove(); 让清洁data =数据 .replace(/\* \*(。 .replace(/\ n/g,“ <br>”) .replace(/ - (。 令botmessage =` <div> <div> $ {cleaneddata} `; $(“#Messages-container”)。附录(botmessage); } }); }); }); </script>

以上是Gemini 2.0,烧瓶和矢量嵌入的医疗聊天机器人的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
使用Langchain Text Splitters -Analytics Vidhya拆分数据的7种方法使用Langchain Text Splitters -Analytics Vidhya拆分数据的7种方法Apr 19, 2025 am 10:11 AM

Langchain文本拆分器:优化LLM输入以提高效率和准确性 我们上一篇文章介绍了Langchain的文档加载程序。 但是,LLM具有上下文窗口大小的限制(以代币测量)。 超过此限制会截断数据,comp

免费生成的AI课程:开创创新的未来免费生成的AI课程:开创创新的未来Apr 19, 2025 am 10:01 AM

生成的AI:革命性的创造力和创新 生成的AI通过按下按钮来创建文本,图像,音乐和虚拟世界来改变行业。 它的影响跨越视频编辑,音乐制作,艺术,娱乐,HEA

使用通用句子编码器和Wikiqa创建QA模型使用通用句子编码器和Wikiqa创建QA模型Apr 19, 2025 am 10:00 AM

利用嵌入模型的力量来回答高级问题 在当今信息丰富的世界中,立即获得精确答案的能力至关重要。 本文展示了使用强大的提问(QA)模型

前十名必须阅读机器学习研究论文前十名必须阅读机器学习研究论文Apr 19, 2025 am 09:53 AM

本文探讨了十个彻底改变人工智能(AI)和机器学习(ML)的开创性出版物。 我们将研究神经网络和算法的最新突破,并解释驱动现代AI的核心概念。 Th

替换SEO机构的11个AI工具 - 分析Vidhya替换SEO机构的11个AI工具 - 分析VidhyaApr 19, 2025 am 09:49 AM

AI在SEO中的崛起:超过SEO代理商的前11个工具 AI的快速发展已深刻地重塑了SEO景观。 旨在提高顶级搜索引擎排名的企业正在利用AI优化其在线策略的能力。 来自AU

前10个免费的AI游乐场供您在2025年尝试-Analytics Vidhya前10个免费的AI游乐场供您在2025年尝试-Analytics VidhyaApr 19, 2025 am 09:45 AM

探索2024年最好的免费AI游乐场:综合指南 访问正确的工具和平台是在不断发展的人工智能(AI)领域学习和创新的关键。 AI游乐场提供了绝佳的机会

矢量数据库中索引算法的详细指南矢量数据库中索引算法的详细指南Apr 19, 2025 am 09:41 AM

介绍 向量数据库是专门的数据库,旨在有效地存储和检索高维矢量数据。 这些向量代表数据点的特征或属性,范围从数十到数千个维度,具体取决于

反向扩散过程是什么? - 分析Vidhya反向扩散过程是什么? - 分析VidhyaApr 19, 2025 am 09:40 AM

稳定的扩散:揭示反向扩散的魔力 稳定的扩散是一种强大的生成模型,能够从噪声中产生高质量的图像。此过程涉及两个关键步骤:正向扩散过程(在上一个A中详细介绍

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器