展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 编程开发 > 用Python和OpenAI打造交互式HTML聊天机器人

用Python和OpenAI打造交互式HTML聊天机器人

本教程详细介绍了如何将基于Python和OpenAIAPI的ChatGPT功能集成到HTML网页中,实现前后端双向通信。通过利用Flask等PythonWeb框架创建API接口,前端JavaScript可以通过HTTP请求发送用户输入并接收AI响应,从而构建一个功能完善、交互性强的聊天机器人应用。

本文目录

    使用Python和OpenAI API构建交互式HTML聊天机器人

    本教程详细介绍了如何将基于Python和OpenAI API的ChatGPT功能集成到HTML网页中,实现前后端双向通信。通过利用Flask等Python Web框架创建API接口,前端JavaScript可以通过HTTP请求发送用户输入并接收AI响应,从而构建一个功能完善、交互性强的聊天机器人应用。

    前言:Python后端与HTML前端的桥梁

    在开发Web应用程序时,常常需要将强大的后端逻辑(例如与OpenAI API交互)与用户友好的前端界面(HTML、CSS、JavaScript)结合起来。直接将Python脚本的输出展示在HTML页面上,并从HTML页面获取输入并回传给Python脚本,这在技术上是不可行的。浏览器执行的是HTML、CSS和JavaScript,而Python脚本运行在服务器端。为了实现两者之间的通信,我们需要引入一个中间层:Web服务器和API。

    本教程将指导您如何使用Python的Flask Web框架创建一个简单的API,该API将作为前端HTML页面与OpenAI API之间的桥梁,实现实时的聊天交互。

    核心概念:Web API与HTTP通信

    要连接Python后端和HTML前端,关键在于理解Web API(应用程序编程接口)和HTTP通信。

    • Web API:后端(Python)提供的一组URL,前端可以通过这些URL发送请求(例如用户消息)并接收响应(例如AI回复)。
    • HTTP通信:前端(JavaScript)使用fetch或XMLHttpRequest等API通过HTTP协议向后端API发送请求,并处理后端返回的HTTP响应。通常,数据会以JSON(JavaScript Object Notation)格式进行交换,因为它易于JavaScript解析和生成。

    步骤一:构建Python后端API (使用Flask)

    我们将使用Flask来创建一个轻量级的Web服务器,它将暴露一个API端点供前端调用。

    1. 安装Flask

    如果您尚未安装Flask,请通过pip安装:

    pip install Flask openai python-dotenv

    python-dotenv用于安全地管理API密钥。

    2. 修改Python脚本以创建Flask应用

    将您的OpenAI API调用逻辑封装在一个Flask路由中。为了安全起见,OpenAI API密钥应从环境变量中加载,而不是硬编码在代码中。

    app.py

    import os
    from flask import Flask, request, jsonify
    from flask_cors import CORS # 用于处理跨域请求
    import openai
    from dotenv import load_dotenv
    
    # 加载环境变量
    load_dotenv()
    
    app = Flask(__name__)
    CORS(app) # 允许所有来源的跨域请求,生产环境中应限制特定来源
    
    # 从环境变量中获取API密钥
    openai.api_key = os.getenv("OPENAI_API_KEY")
    
    def chat_with_gpt(prompt):
        """
        调用OpenAI API获取ChatGPT响应。
        """
        try:
            response = openai.chat.completions.create(
                model="gpt-3.5-turbo",
                messages=[{"role": "user", "content": prompt}]
            )
            return response.choices[0].message.content.strip()
        except Exception as e:
            print(f"Error calling OpenAI API: {e}")
            return "抱歉,AI服务暂时不可用。"
    
    @app.route('/chat', methods=['POST'])
    def chat_endpoint():
        """
        API端点,接收前端的用户消息,调用ChatGPT,并返回AI响应。
        """
        data = request.get_json()
        user_message = data.get('message')
    
        if not user_message:
            return jsonify({"error": "No message provided"}), 400
    
        bot_response = chat_with_gpt(user_message)
        return jsonify({"response": bot_response})
    
    if __name__ == '__main__':
        # 在开发模式下运行Flask应用
        # host='0.0.0.0' 允许从外部IP访问
        # port=5000 是默认端口
        app.run(debug=True, host='0.0.0.0', port=5000)

    .env文件 (与app.py同目录)

    OPENAI_API_KEY="YOUR_OPENAI_API_KEY"

    请将YOUR_OPENAI_API_KEY替换为您的实际OpenAI API密钥。

    3. 运行Python后端

    在终端中,导航到app.py所在的目录,然后运行:

    python app.py

    您会看到Flask服务器启动,通常在http://0.0.0.0:5000上监听请求。

    步骤二:修改HTML前端以与API通信

    现在,我们需要修改HTML文件中的JavaScript代码,使其不再使用硬编码的本地回复逻辑,而是通过HTTP请求与我们刚刚创建的Flask API进行通信。

    index.html

    
    
    
        
        
        AI Chatbot
        
    
    
    
        

    AI Chatbot

    步骤三:部署与测试

    1. 本地测试:

      • 确保您的Python Flask应用正在运行(python app.py)。
      • 在浏览器中打开index.html文件。
      • 在聊天框中输入消息,点击“发送”按钮或按回车键。您应该能看到消息发送到Python后端,然后AI的回复显示在页面上。
    2. VM部署:

      • 如果您将Flask应用部署在Google Cloud VM或其他云服务器上,请确保:
        • Flask应用在VM上运行,并且监听0.0.0.0(如app.run(host='0.0.0.0', port=5000))。
        • VM的防火墙规则允许外部流量访问Flask应用所使用的端口(例如5000)。
        • 在index.html的JavaScript代码中,将API_URL更改为VM的公共IP地址或域名,例如http://YOUR_VM_IP:5000/chat。
      • 将index.html文件也部署到VM上(例如通过一个简单的Web服务器,或者直接访问VM的IP地址如果您的Flask应用也提供静态文件服务)。最简单的方法是确保您的前端HTML文件能够通过浏览器访问到,并且能够正确地向您的VM上的Flask API发送请求。

    注意事项与最佳实践

    • API密钥安全: 绝不要将OpenAI API密钥直接暴露在前端JavaScript代码中。始终在后端(Python)处理API密钥,并通过环境变量加载。
    • 跨域资源共享 (CORS): 由于前端HTML文件通常运行在不同的域或端口(例如本地文件系统或另一个Web服务器),而后端Flask应用运行在localhost:5000,浏览器会阻止跨域请求。flask_cors库可以解决这个问题。在生产环境中,应将CORS(app)配置为只允许特定的前端源访问,而不是CORS(app)允许所有来源。
    • 错误处理: 在前端和后端都应加入健壮的错误处理机制。例如,当OpenAI API调用失败或网络请求出现问题时,应向用户显示友好的错误消息。
    • 用户体验: 在等待AI回复时,可以禁用输入框和发送按钮,并显示加载指示器,以提升用户体验。
    • 聊天历史: 当前示例仅处理单轮对话。要实现多轮对话,您需要在后端维护一个对话历史列表,并在每次调用OpenAI API时将其作为messages参数的一部分发送。
    • 部署: 对于生产环境,Flask应用通常会使用Gunicorn、uWSGI等WSGI服务器配合Nginx或Apache等反向代理服务器进行部署,以提高性能和稳定性。

    总结

    通过本教程,您已经成功地将一个独立的Python ChatGPT脚本改造为一个功能完善的Web API,并将其与HTML前端页面连接起来,实现了实时的、双向的聊天交互。这种前后端分离的架构是现代Web开发中的标准实践,它使得后端逻辑和前端界面可以独立开发和部署,极大地提高了开发效率和应用的可扩展性。掌握这种集成方式,将为您构建更复杂的Web应用打下坚实的基础。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发
    相关文章 更多
    精品专题 更多
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    IOS软件

    正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

    AI

    正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

    Mac软件 更多
    Aperty macOS版
    Aperty macOS版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw macOS版
    AionClaw macOS版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy macOS版
    Loomy macOS版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirBuddy 3 macOS版
    AirBuddy 3 macOS版

    AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

    AirServer macOS版
    AirServer macOS版

    AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

    AnyDesk macOS版
    AnyDesk macOS版

    AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

    WINDOWS 更多
    Aperty Windows版
    Aperty Windows版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw Windows版
    AionClaw Windows版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy Windows版
    Loomy Windows版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    讯飞绘文 网页版
    讯飞绘文 网页版

    讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

    AirServer Windows版
    AirServer Windows版

    AirServer Windows版可把电脑变成AirPlay、Google Cast和Miracast无线投屏接收端,适合会议演示、课堂教学及家庭大屏分享。发送设备通常无需另装客户端,并可同时接收和智能排列多个镜像会话。

    AlwaysUp Windows版
    AlwaysUp Windows版

    AlwaysUp是一款面向Windows的系统服务注册与程序托管工具,可让普通应用、脚本及批处理在无人登录时随系统启动,并通过状态检测、异常重启、资源监控和邮件通知保障关键任务持续运行。