当前位置: 首页 > news >正文

【HTML】实现一个AI角色切换网页页面

技术复盘报告:AI角色切换网页的关键实现路径

一、项目目标

构建静态单页,完成角色数据可视化、用户交互、本地大模型对话三项任务,过程中验证以下技术点:

  1. DOM数据渲染
  2. XMLHttpRequest请求
  3. 函数封装
  4. Live Server绕过同源限制
  5. Ollama本地后端接口调用

二、环境参数

  • 前端:单HTML文件,ES5/6混编,无框架依赖
  • 后端:Ollama服务,监听11434端口,提供/chat接口
  • 通信协议:HTTP/1.1,POST,Content-Type: application/json
  • 浏览器:Chromium内核,版本≥88
  • 开发服务器:VS Code Live Server,端口5500

三、核心流程拆解

  1. 数据层:rolesData对象,三级结构,类别→角色→详情
  2. 视图层:grid布局卡片,事件绑定onclick→showRoleDetail
  3. 网络层:封装request函数,返回Promise,内部使用XMLHttpRequest
  4. 会话层:点击"开始聊天"后,注入system prompt,向Ollama发送payload,持续追加messages数组
  5. 跨域层:Live Server启动localhost:5500,与localhost:11434同源域,浏览器不触发CORS预检

四、关键函数签名

request(url, payload, method): Promise<Object>
gotoChatBtn(): void
chat_btn(): void

职责边界:

  • request仅处理序列化、请求、反序列化、错误统一封装
  • gotoChatBtn负责初始system prompt拼装与首次渲染
  • chat_btn负责后续用户输入追加与界面更新

五、输入输出格式

  1. 请求payload
{"model": "qwen3-coder","messages": [{"role": "system", "content": "<一次性系统设定>"},{"role": "user", "content": "<用户输入>"}],"stream": false
}
  1. 响应格式
{"message": {"role": "assistant","content": "<模型返回文本>"}
}

六、潜在异常与对策

  • 11434端口未就绪:网络层reject,前端捕获并提示"服务未启动"
  • 消息发送过快:使用isSend标志位,加锁0.3s
  • JSON解析失败:reject Error,前端统一catch并打印xhr.responseText

七、验证清单

  1. 角色卡片按类别切换,无回流重排异常
  2. 详情区域三字段正确回显
  3. 首次问候自动生成,无"好的"等冗余前缀
  4. 多轮对话messages长度递增,content正确累积
  5. 关闭聊天窗口后,再次进入可重新初始化,无旧数据残留

八、结论

技术点全部验证通过,单文件方案满足本地离线演示需求;如迁移至生产环境,仅需替换请求路径为反向代理地址,无需改动业务逻辑。

九、文件地址

AI角色切换网页页面

http://www.dtcms.com/a/456714.html

相关文章:

  • 【51单片机】【protues仿真】基于51单片机矩阵电子琴系统
  • 网站怎样做免费优化有效果组织部信息化建设官方网站
  • 使用telnet进行Dubbo接口测试
  • 定时器实现非阻塞式程序
  • ArrayList - 数据结构 - 数组
  • 做网站的注意什么问题哪些经营范围是包含网站开发的
  • 【Python】基于 PyQt6 和 Conda 的 PyInstaller 打包工具
  • MyBatis Plus 核心功能与用法
  • LNMP架构实践
  • 自己怎么建个网站赚钱吗外贸品牌推广公司
  • 在线咨询 1 网站宣传建立免费公司网站
  • 10-存储过程和存储函数
  • leetCode101:对称二叉树
  • 【Linux】网络部分——Socket编程 UDP实现网络云服务器与本地虚拟机的基本通信
  • 实战项目:鸿蒙多端协同智能家居控制 App 开发全流程
  • 个人用云计算学习笔记 --19 (MariaDB服务器)
  • Linux -- 信号【中】
  • Azure - 尝试创建并使用一下Azure AI Search
  • NtripShare GNSS接收机配置系统SPI读取村田SCL3300倾角数据
  • Python私教FastAPI+React构建Web应用02 什么是全栈Web应用
  • 开源安全管理平台wazuh-文件完整性监控FIM
  • 网站建设选超速云建站黄页88成立时间
  • 南通做网站ntwsd开发公司总工年终总结
  • VS Code文件监视排除设置详解
  • 3D坐标旋转公式
  • 《Git 从入门到进阶》教学大纲
  • linux网络服务+linux数据库5
  • 德山经济开发区建设局网站wordpress的数据库在哪里
  • P3808 AC 自动机(简单版)
  • C++----bitmap位图的使用