Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

这是一个基于 Spring AI 和 Spring Boot 构建的Web聊天应用程序。项目前端采用HTML、CSS和jQuery,后端集成DeepSeek大模型API,实现了一个支持流式响应和多轮对话记忆的智能聊天机器人

Notifications You must be signed in to change notification settings

xiaoli79/SpringAI-Web-Demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

3 Commits

Repository files navigation

SpringAI Web Demo: 智能聊天机器人项目

这是一个基于 Spring AI 和 Spring Boot 构建的Web聊天应用程序。项目前端采用HTML、CSS和jQuery,后端集成DeepSeek大模型API,实现了一个支持流式响应和多轮对话记忆的智能聊天机器人。

项目简介

本项目是一个功能完整的Web聊天应用。用户可以通过简洁的界面与AI进行交互,AI能够联系上下文进行多轮对话。项目后端使用了Spring AI框架,极大地简化了与大语言模型(LLM)的集成和开发过程。

技术栈

  • 后端框架: Spring Boot
  • AI 框架: Spring AI
  • 语言模型: DeepSeek API
  • 前端技术: HTML, CSS, jQuery (JavaScript)
  • 构建工具: Maven
  • 编程语言: Java 17
  • 辅助工具: Lombok

项目结构

spring_chat_box
├── src
│ ├── main
│ │ ├── java/org/example/spring_chat_box
│ │ │ ├── config
│ │ │ │ └── CommonConfiguration.java // Spring AI 配置类
│ │ │ ├── controller
│ │ │ │ └── ChatController.java // Web API 控制器
│ │ │ ├── model
│ │ │ │ ├── ChatInfo.java // 会话信息模型
│ │ │ │ └── MessageVO.java // 消息视图模型
│ │ │ ├── repository
│ │ │ │ ├── ChatHistoryRepository.java // 会话历史仓库接口
│ │ │ │ └── MemoryChatHistoryRepository.java // 基于内存的实现
│ │ │ └── SpringChatBoxApplication.java // Spring Boot 主应用
│ │ └── resources
│ │ ├── static // 存放前端HTML, CSS, JS文件
│ │ │ ├── index.html
│ │ │ ├── script.js
│ │ │ └── styles.css
│ │ └── application.yml // 配置文件 (API Key等)
└── pom.xml // Maven 配置文件

核心模块说明

1. 后端核心 (/controller, /config, /repository)

  • ChatController.java: 项目的Web API入口。
    • /stream: 核心接口,接收用户输入(prompt)和会话ID(chatId),通过Flux<String>以流式(SSE)方式将AI的回答实时返回给前端。
    • /getChatIds: 获取所有历史会话的列表。
    • /getChatHistory: 根据会话ID获取具体的聊天记录。
    • /deleteChat: 删除指定的会话历史和记忆。
  • CommonConfiguration.java: Spring AI的配置中心。
    • 配置了ChatClient,并设置了全局的系统级prompt(System Prompt),为AI设定了一个默认角色("你是肥波,擅长吹牛皮...")。
    • 配置了InMemoryChatMemory作为会话记忆的存储方案,使得AI能够记住上下文。
    • 通过MessageChatMemoryAdvisor顾问,自动将用户的提问和AI的回答存入会话记忆中。
  • MemoryChatHistoryRepository.java: 一个基于内存的LinkedHashMap实现的会话历史记录仓库,用于管理会话列表的标题和ID。

2. 前端界面 (/static)

  • index.html: 项目的主页面,构建了聊天界面的基本结构,包括左侧的会话列表和右侧的聊天窗口。
  • script.js: 前端的核心逻辑。
    • 通过jQuery实现DOM操作和事件绑定。
    • 使用fetch API调用后端的/stream接口,并以流式方式读取和展示AI的回答。
    • 实现了新建会话、加载/切换历史会话、删除会话等功能。
    • 支持解析和渲染AI回答中的LaTeX数学公式(通过MathJax库)。
  • styles.css & chat-board.css: 定义了整个聊天界面的样式,实现了现代化的聊天应用外观。

如何配置和运行

  1. 配置API Key:
    • 打开 src/main/resources/application.yml 文件。
    • spring.ai.openai.api-key 的值替换为您自己的DeepSeek API密钥。
  2. 运行项目:
    • 确保您的开发环境中已安装Java 17和Maven。
    • 在项目根目录(spring_chat_box)下,执行Maven命令 mvn spring-boot:run 或直接运行 SpringChatBoxApplication.java 类。
  3. 访问应用:
    • 项目启动后,默认运行在 16666 端口。
    • 打开浏览器并访问 http://localhost:16666 即可开始使用。

About

这是一个基于 Spring AI 和 Spring Boot 构建的Web聊天应用程序。项目前端采用HTML、CSS和jQuery,后端集成DeepSeek大模型API,实现了一个支持流式响应和多轮对话记忆的智能聊天机器人

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /