程序聚合 软件案例 基于deepseekAPI的AI聊天助手

基于deepseekAPI的AI聊天助手

2026-06-26 21:59:32
行业:人工智能
载体:小程序
技术:Java

业务和功能介绍

- **基础聊天界面(GUI)**
- 底部多行输入框:输入问题或聊天内容。
- 聊天消息展示区:按时间顺序显示对话,区分用户消息和 AI 消息。
- 发送按钮:点击后把输入内容发给 AI,并清空输入框。

- **与 DeepSeek 模型的问答能力**
- 使用 HTTP POST 调用 DeepSeek 的聊天接口,将用户输入和历史对话一起打包为 JSON 发送。
- 解析 DeepSeek 返回的 JSON,提取模型回复文本。
- 将 AI 回复渲染为聊天气泡插入到界面中。

- **多轮对话与历史记录**
- 在内存中维护一份对话列表,作为后续请求的上下文。
- 每次对话自动保存为本地 JSON 文件,包含消息角色、内容、时间戳和头像路径。
- 左侧“历史对话”列表可以随时打开旧对话并恢复到聊天窗口。

- **多模式 / 自定义模式**

- 内置多种预设模式(如专业 / 简洁 / 友好 / 分析 / 创意等),适合不同场景。
- 支持完全自定义:
- 自定义人设(System Prompt):决定 AI 的说话风格和角色定位;
- 专属欢迎语:每个模式有自己的欢迎文案;
- 模式持久化:自定义模式保存在本地 properties 文件,下次打开仍然存在。
- **推荐问题按钮**
- 每次 AI 回答后,根据内容自动生成 1~3 个可能的后续提问。
- 以按钮形式展示,点击即可直接继续追问,适合不知道该问什么的时候。

- **停止按钮(中断当前回答)**
- 当 AI 正在生成长回答时,可以点击输入框旁的“停止”按钮终止本次请求。
- 停止后会立即恢复输入状态,并插入一条“回答已被中断”的系统消息。
- **对话管理与清理(在其他图片有体现故没放图)**
- 顶部工具栏的 `➕` 按钮:新建一个空白对话,不影响已有历史记录。
- 顶部 `🗑️` 按钮:清空当前对话,并删除对应的历史对话文件。
- 左侧历史列表每一项右侧有小 `❌` 按钮,可以删除整条历史对话(包含对应 JSON 文件)。
- 聊天区中,每条消息右键菜单提供“删除该消息”,只移除当前气泡,不影响其他消息。

- **现代化界面与 Markdown 渲染**

- 气泡式聊天布局,左右对齐区分用户和 AI。

- 支持 Markdown:代码块、列表、加粗等都能正常显示,更适合技术类答案。

- 支持深色/浅色主题、字体大小调整,让阅读更舒适。

项目实现

一次请求是如何流转的?

1. 用户在输入框中输入问题,点击“发送”。
2. `ModernChatGUI.sendMessage()`:
- 创建一条 `ChatMessage(role="user")`;
- 加到内存中的 `conversationHistory` 列表;
- 在界面上渲染一条“用户消息气泡”。
3. 创建并启动一个 `SwingWorker`(`currentWorker`):
- 在后台线程中调用 `DeepSeekAPI.sendChatRequest(conversationHistory)`;
- 把整段对话上下文一起发给 DeepSeek,获得新的回复文本。
4. `done()` 回到 UI 线程:
- 创建一条 `ChatMessage(role="assistant")`,保存当前模式的头像路径;
- 渲染 AI 消息气泡;
- 调用 `autoSaveConversation()` 写入 JSON 文件;
- 调用 `addSuggestedQuestions(response)` 生成推荐问题按钮。
5. 用户可以继续提问,形成一个完整的多轮对话闭环。

### 5.3 项目架构概览

可以简单理解为三层:

- **UI 层(界面与交互)**:
- `ModernChatGUI`:主窗口,负责布局、按钮事件、键盘事件。
- `MessageBubbleSimple` / `AIMessageBubble`:消息气泡的绘制与排版。
- `MarkdownRenderer`:把 AI 文本渲染成带格式的 HTML/组件。

- **业务层(状态与会话逻辑)**:
- `AIModeManager`:当前模式、所有可选模式、自定义模式的保存与加载。
- `ConversationHistory`:在内存中维护 `List`,并负责与 JSON 文件互相转换。
- `ChatMessage`:一条消息的领域对象(角色、内容、时间戳、头像路径)。

- **基础设施层(API 与存储实现)**:
- `DeepSeekAPI`:负责 HTTP 调用和 JSON 解析,是与外部服务交互的唯一入口。
- `org.json` 等第三方库:支撑 JSON 的读写。

示例图片视频


诉
30天前活跃
方向: 人工智能-计算机视觉与图像处理、人工智能-机器学习与深度学习、
交付率:100.00%
相似推荐
H5麻将(3D版)
本方案以 H5 技术结合 3D 渲染引擎打造麻将游戏前端,无需下载安装,浏览器内即开即玩,呈现立体生动的牌局画面与流畅交互体验,适配多类设备。后端采用 C 语言开发高性能服务端,凭借底层执行效率与精细内存管理,可稳定承载高并发访问,满足大量玩家同场竞技,保障牌局同步及时、操作响应迅速。整体架构高内聚低耦合,迁移方便,灵活部署于各类服务器与云平台,快速扩容、成本可控,兼顾画质、性能与运维便利。
掼蛋H5版
本方案以 H5 技术打造掼蛋游戏前端,免安装、即点即玩,浏览器内即可流畅开局,适配各类设备,用户体验出色。后端采用 C 语言开发高性能服务端,凭借底层执行效率与内存优化,能够稳定承载高并发访问,满足大量玩家同时在线的对局需求,保证牌局快速同步、响应及时。整体架构高度解耦,迁移方便,可灵活部署于各类服务器与云环境,快速扩容、低成本运维,兼顾稳定性、性能与部署灵活性,是成熟的棋牌平台解决方案。
H5斗地主
本方案采用 H5 技术构建斗地主游戏前端,无需安装客户端,通过浏览器即可随时随地开玩,兼容性强、体验流畅。后端基于 C 语言开发高性能服务端,凭借 C 语言的底层优势与极佳的执行效率,能够稳定支撑大规模并发访问,轻松应对海量玩家同时在线的压力,保证对局稳定、响应迅速。整体架构耦合度低、迁移方便,可灵活部署至多种服务器环境与云平台,实现低成本快速扩展,兼顾用户体验、性能与运维便利性。
基于神经网络的游戏动画系统
MotionWeaver 是一套面向 Unreal Engine 游戏开发的 AI 驱动角色动作生成系统,旨在解决传统游戏动画制作成本较高、动画资产复用困难、复杂动作衔接不自然,以及角色运动与动画表现难以协调等问题。 项目以神经网络动作生成技术为核心,结合游戏引擎的角色运动系统,实现从动画数据采集、模型训练到动作推理与引擎集成的完整技术流程。 主要功能包括: 动画数据采集与处理: 支持从 Unreal Engine 动画资产中提取骨骼姿态、位置、旋转及时间序列信息,完成骨骼映射、数据清洗、质量审核与训练数据集构建。 AI 动作模型训练: 提供基于深度学习的动作表示学习、姿态预测与生成模型训练功能,支持模型检查点管理、训练指标记录及实验评估。 条件动作生成: 利用角色根运动轨迹、历史动作状态及参考姿态等条件,生成连续骨骼动作,研究不同运动条件下的动画生成效果。 复杂动作约束: 针对跑酷、跨越障碍等复杂场景,支持参考姿态引导及关键帧约束,改善动作准确性与空间匹配效果。 UE 动画集成与验证: 提供模型推理与 Unreal Engine 动画系统的集成和实验验证能力,支持生成动作的预览、重建、测试及效果分析。 模型评测与对比: 通过骨骼位置误差、运动连续性、关键帧约束误差等指标,对不同模型及优化方案进行定量分析。 项目主要面向游戏角色动画生成、AI 动画技术研究和游戏开发工具链建设,为智能角色运动与游戏动画自动化提供技术基础。
H5休闲解压益智游戏(拖拽对齐,单文件纯前端)-拉线解压 KNOT OUT
《拉线解压》(KNOT OUT)是一款纯前端、零后端的 H5 休闲解压益智游戏。核心操作:拖动一根线的控制点,把线的中点精确送入目标环;吸附越准,评级越高(金/银/铜),并触发连击。 功能模块:① 操作与判定——拖拽线并实时吸附判定,按精度分金/银/铜三档(金档才续连击),配连击上行音反馈;② 关卡与难度包络——线数随关卡从 3 递增到 10、吸附窗口逐关收紧(78→48px),目标环视觉与判定窗口一致;③ 风格目标——按关卡轮换「全金档 / 全程无错位 / 由外向内(目标环标 1..N 序号)」,达成即得星;④ 每日挑战——以本地日期为种子的独立关卡,布局与主题由种子确定;⑤ 留痕世界——把逐关评级、星与每日印记,按存档确定性重算成一条「世界路径」;⑥ 音频——音效全部由 Web Audio 实时合成(C 大调音阶),BGM 三首可轮播。 主要功能路径:打开即玩 → 拖线对齐 → 评分/连击 → 过关结算 → 下一关 / 每日挑战 → 世界回顾。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服