返回市场
大模型sse服务演示2025

大模型sse服务演示2025

作者:nlinhvu14 星标更新:2025-06-17

项目介绍

带有可观测性的LLM SSE MCP(Prometheus/Metrics, Tempo/Traces, Loki/Logs, Grafana)

该项目演示了使用服务器发送事件(SSE)进行实时通信的LLM客户端与MCP(模型上下文协议)服务器之间的集成。它由三个Spring Boot应用程序组成,展示了OAuth 2.0安全性、使用各种LLM模型的工具调用能力以及安全的身份验证服务。

项目结构

1. 授权服务器示例 (authorization-server-demo)

这是一个实现了OAuth 2.0授权服务器功能的Spring Boot应用程序,提供安全的身份验证和授权服务。

特性:

  • OAuth 2.0授权服务器:发放访问令牌并验证它们

端口: 9000

2. SSE MCP服务器示例 (sse-mcp-server-demo)

这是一个作为MCP服务器的Spring Boot应用程序,通过SSE端点暴露数学和日期/时间工具。

特性:

  • 数学工具:加法和乘法操作
  • 日期/时间工具:获取当前时间和设置闹钟
  • SSE支持:通过服务器发送事件实现实时通信
  • MCP协议:实现模型上下文协议以发现和执行工具

可用工具:

  • sumNumbers(int, int) - 加两个数
  • multiplyNumbers(int, int) - 乘两个数
  • getCurrentDateTime() - 获取用户时区的当前日期/时间
  • setAlarm(String) - 设置指定ISO-8601时间的闹钟

端口: 8080(默认)

3. LLM MCP客户端示例 (llm-mcp-client-demo)

这是一个连接到MCP服务器并提供与多个LLM提供商交互聊天界面的Spring Boot Web应用程序。

特性:

  • 多LLM支持:Anthropic Claude, OpenAI GPT, Google Gemini, Ollama
  • 交互式Web聊天:使用Thymeleaf的实时聊天界面
  • MCP集成:连接到SSE MCP服务器进行工具调用
  • 工具发现:自动发现并使用来自MCP服务器的可用工具

支持的LLM模型:

  • Anthropic Claude:claude-sonnet-4-20250514
  • OpenAI:o4-mini-2025-04-16
  • Google Gemini:gemini-2.5-flash-preview-05-20
  • Ollama:qwen3:8b(本地)

端口: 10101

预备条件

  • Java 17或更高版本
  • Gradle
  • 云LLM提供商的API密钥(可选)
  • 本地安装Ollama(用于本地模型)
  • Docker及Docker Compose

环境变量

对于LLM客户端,为云提供商设置以下环境变量:

export ANTHROPIC_API_KEY=your_anthropic_key
export OPENAI_API_KEY=your_openai_key
export GOOGLE_PROJECT_ID=your_google_project_id
export GOOGLE_ZONE=your_google_zone

快速开始

1. 启动Prometheus, Tempo, Loki, Grafana

docker compose up -d

2. 启动授权服务器

cd authorization-server-demo
./gradlew bootRun

3. 启动MCP服务器

cd sse-mcp-server-demo
./gradlew bootRun

4. 启动LLM客户端

cd llm-mcp-client-demo
./gradlew bootRun

5. 访问聊天界面

打开浏览器并导航至:http://localhost:10101

6. 访问Grafana并探索Prometheus, Tempo, Loki

打开浏览器并导航至:http://localhost:3000

数据源 -> Prometheus -> 探索 prometheus

数据源 -> Tempo -> 探索 tempo

数据源 -> Loki -> 探索 loki

使用方法

  1. 按照上述顺序启动两个服务
  2. http://localhost:9090处打开Web界面
  3. 发送需要数学运算或时间查询的消息
  4. 观察LLM自动发现并使用可用工具

示例查询:

  • "5乘以4加7等于多少?"
  • "现在几点了?"
  • "在2025-01-01T10:00:00设置一个闹钟"

技术栈

  • Spring Boot 3.x
  • Spring Security OAuth2
  • Spring AI - LLM集成框架
  • 模型上下文协议(MCP) - 工具发现和执行
  • 服务器发送事件(SSE) - 实时通信
  • Thymeleaf - Web模板
  • Gradle - 构建系统

配置

所有应用程序都使用YAML配置文件:

  • 授权服务器配置位于authorization-server-demo/src/main/resources/application.yml
  • MCP服务器配置位于sse-mcp-server-demo/src/main/resources/application.yml
  • LLM客户端配置位于llm-mcp-client-demo/src/main/resources/application.yml

开发

该项目演示了:

  • 使用Spring AI实现的MCP协议
  • 基于SSE的实时通信
  • 多提供商LLM集成
  • 工具调用和发现
  • 交互式Web界面
  • 带有OAuth2的MCP授权
  • 使用Spring Actuator和Micrometer(OpenTelemetry, Prometheus, Tempo, Loki, Grafana)的观测

此演示为构建具有外部工具能力的更复杂的LLM驱动的应用程序奠定了基础。