Developing a Spring AI Enhanced Restaurant Booking System Employing an API-first Approach

Developing a Spring AI Enhanced Restaurant Booking System Employing an API-first Approach

site icon
2025.04.14 0
Java餐厅预订聊天机器人LLM 集成内容生成开发效率
spring-ai-resos 是一个基于 Spring Boot 和 Spring AI 的多模块项目,旨在通过 API 优先的方法开发一个增强的餐厅预订系统。该项目结合了 OpenAPI 生成的客户端代码和 Spring AI 实现,包括一个 MCP 服务器、MCP 客户端配置以及一个独立的 ReactJS 驱动的聊天机器人 UI。核心功能包括餐厅搜索和预订、与 LLM 提供商的集成(如 OpenAI、Groq Cloud、OpenRouter),以及通过聊天机器人进行交互。
View on GitHub

Overview

基本能力

产品定位

spring-ai-resos 是一个基于 Spring Boot 和 Spring AI 的餐厅预订系统,旨在通过 API 优先的方法提供增强的餐厅搜索和预订功能。

核心功能

  1. 餐厅搜索和预订:通过与 ResOS API 的集成,提供餐厅搜索和预订功能。
  2. LLM 集成:支持与多种 LLM 提供商(如 OpenAI、Groq Cloud、OpenRouter)的集成,用于增强聊天机器人功能。
  3. MCP 服务器和客户端:提供 MCP 服务器和客户端配置,支持与 Claude Desktop 的集成。
  4. 聊天机器人 UI:提供一个独立的 ReactJS 驱动的聊天机器人 UI,用于与用户交互。

适用场景

  1. 餐厅预订:用户可以通过聊天机器人搜索餐厅并预订座位。
  2. 开发集成:开发者可以将该项目的模块集成到自己的应用中,以增强功能。
  3. LLM 实验:开发者可以通过该项目实验不同的 LLM 提供商的功能。

工具列表

  1. MCP 服务器:用于与 Claude Desktop 集成,提供工具调用功能。
  2. MCP 客户端:配置用于与 LLM 提供商交互的客户端。
  3. 聊天机器人 UI:提供用户交互界面。

常见问题解答

  1. 如何获取 API 密钥:需要从 ResOS 或 LLM 提供商(如 OpenAI、Groq Cloud、OpenRouter)获取 API 密钥。
  2. 如何运行后端:需要先启动后端模块,除非你是餐厅经营者并拥有有效的 ResOS API 密钥。
  3. 如何配置聊天机器人:需要在 creds.yml 文件中添加 API 密钥。

使用教程

使用依赖

  1. Git CLI (2.43.0 或更高版本)
  2. Github CLI (2.65.0 或更高版本)
  3. httpie CLI (3.2.2 或更高版本)
  4. Java SDK (21 或更高版本)
  5. Maven (3.9.9 或更高版本)
  6. LLM 提供商账户(如使用公共云或商业托管模型)

安装教程

  1. 克隆项目 bash git clone https://github.com/pacphi/spring-ai-resosbash gh repo clone pacphi/spring-ai-resos
  2. 构建项目 bash cd spring-ai-resos mvn clean install

调试方式

  1. 启动后端 bash cd backend mvn clean spring-boot:run -Dspring-boot.run.profiles=dev -Dspring-boot.run.jvmArguments="--add-opens java.base/java.net=ALL-UNNAMED"
  2. 启动 MCP 服务器 bash cd mcp-server export RESOS_API_ENDPOINT=http://localhost:8080/api/v1/resos mvn spring-boot:run -Dspring-boot.run.profiles=cloud,dev
  3. 启动聊天机器人(以 OpenAI 为例) bash cd mcp-client mvn spring-boot:run -Dspring-boot.run.profiles=openai,dev 访问 http://localhost:8081 查看聊天机器人界面。

许可证

该项目遵循 Apache-2.0 开源许可条款,请参阅 Apache-2.0 了解完整条款。