使用说明
带MCP服务器的OBP演示应用程序
一个与开放银行项目(OBP)沙箱集成的综合演示应用程序,具有一个带有管理和客户部分的模拟银行前端,一个具有RAG功能的AI聊天机器人,以及一个展示OBP帐户API工具的MCP服务器。
目录
概述
此演示应用程序展示了与以下功能的完整银行应用程序集成:
-
obp模拟银行:一个具有以下功能的Spring Boot web应用程序:
- 用于在OBP沙箱中创建客户用户的管理仪表板
- 用于查看帐户信息的客户仪表板
- 具有RAG(检索增强生成)功能的人工智能聊天机器人
- PostgreSQL聊天历史和上下文矢量存储
-
MCP服务器:一个独立的模型上下文协议服务器,用于公开OBP API工具:
getAccounts:检索用户帐户getTransactions:获取交易历史记录getAccountBalance:获取账户余额getCounterparties:列出账户交易对手
建筑
┌─────────────────────────────────┐
│ obp-demo-banking (Port 8080) │
│ - Admin Dashboard │
│ - Customer Dashboard │
│ - AI Chatbot (with RAG) │
└─────────────────────────────────┘
│
│ Uses OBP API
▼
┌─────────────────────────────────┐
│ OBP Sandbox API │
│ apisandbox.openbankproject.com │
└─────────────────────────────────┘
▲
│ MCP Tools expose
│
┌─────────────────────────────────┐
│ MCP Server (Port 8081) │
│ - getAccounts tool │
│ - getTransactions tool │
│ - getAccountBalance tool │
│ - getCounterparties tool │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ PostgreSQL (with pgvector) │
│ - Vector embeddings storage │
│ - Similarity search │
│ - Chat history & context │
└─────────────────────────────────┘
▲
│ Service Binding
│
┌─────────────────────────────────┐
│ Tanzu Marketplace Services │
│ - LLM Service (OpenAI/Azure) │
│ - PostgreSQL Service │
└─────────────────────────────────┘
特性
obp演示银行应用程序
-
行政科
- 在OBP沙箱中创建和管理客户用户
- 使用OBP用户ID查看创建的用户
- 简单身份验证(管理员/管理员)
-
客户仪表板
- 查看帐户详细信息(标签、编号、IBAN、类型)
- 按货币显示账户余额
- 查看最近交易(最近10笔)
- 列出账户交易对手
- 总余额账户摘要
-
配备RAG的人工智能聊天机器人
- 由Spring AI驱动的交互式聊天机器人
- 使用PostgreSQL向量存储检索增强生成(RAG)
- 基于客户银行数据的情境感知响应
- 聊天记录存储在矢量数据库中,以改善响应
- 相关上下文检索的相似性搜索
MCP服务器
-
MCP协议实现
- 符合JSON-RPC 2.0标准
- RESTful API端点
- 工具注册和发现
-
可用工具
getAccounts:获取已验证用户的所有帐户getTransactions:检索帐户的交易历史记录getAccountBalance:用货币获取账户余额getCounterparties:列出账户的交易对手
技术栈
后端
- Spring Boot: 3.3.5
- 春季AI: 1.0.1
- Spring数据JPA:用于数据库操作
- PostgreSQL:具有用于矢量存储的pgvector扩展
- 飞路:数据库迁移
- 春季WebFlux:OBP API的响应式HTTP客户端
- Spring Security:身份验证和授权
- 百里香叶:服务器端模板
前端
- Thymeleaf模板:服务器端渲染
- Bootstrap CSS:现代UI样式
- JavaScript:交互式聊天机器人小部件
基础设施
- Tanzu应用平台:Cloud Foundry部署
- 春云绑定:自动服务绑定
- PostgreSQL服务:来自Tanzu市场
- LLM服务:来自Tanzu市场(OpenAI/Azure OpenAI)
先决条件
促进地方发展
- Java 17或更高版本
- Maven 3.6+
- PostgreSQL 12+,带pgvector扩展
- OBP沙盒帐户和API密钥
- (可选)用于本地人工智能测试的OpenAI API密钥
用于Tanzu部署
- 访问Tanzu应用平台
- Cloud Foundry命令行界面(
cf)已安装并配置 - Tanzu命令行界面(
tanzu)已安装(可选,适用于TAP) - OBP沙盒API密钥
- 访问Tanzu市场服务:
- PostgreSQL服务(支持pgvector)
- LLM服务(OpenAI或Azure OpenAI)
项目结构
obp-demo-app/
├── .gitignore
├── README.md (this file)
├── DEMO_FLOW.md (deployment and usage guide)
├── obp-demo-banking/
│ ├── pom.xml
│ ├── manifest.yml (Cloud Foundry deployment)
│ ├── README.md
│ ├── DEMO_FLOW.md
│ └── src/
│ ├── main/
│ │ ├── java/com/obp/demo/
│ │ │ ├── config/ (Configuration classes)
│ │ │ ├── controller/ (MVC controllers)
│ │ │ ├── service/ (Business logic)
│ │ │ ├── model/ (Domain models)
│ │ │ ├── dto/ (Data transfer objects)
│ │ │ └── exception/ (Exception classes)
│ │ └── resources/
│ │ ├── application.yml
│ │ ├── application-cloud.yml
│ │ ├── db/migration/ (Flyway migrations)
│ │ ├── templates/ (Thymeleaf templates)
│ │ └── static/ (CSS, JS)
│ └── test/
└── open-banking-mcp/
└── mcp-server/
├── pom.xml
├── manifest.yml (Cloud Foundry deployment)
├── README.md
└── src/
├── main/
│ ├── java/com/openbanking/mcpserver/
│ │ ├── config/ (Configuration)
│ │ ├── controller/ (REST controllers)
│ │ ├── service/ (OBP API service)
│ │ ├── model/ (Data models)
│ │ ├── protocol/ (MCP protocol)
│ │ ├── tools/ (MCP tools)
│ │ └── exception/ (Exception handling)
│ └── resources/
│ ├── application.yml
│ └── application-cloud.yml
└── test/
本地开发
1.克隆和设置
cd ~/git/obp-demo-app
2.配置OBP API密钥
设置环境变量:
export OBP_API_KEY=your-api-key-here
或更新 obp-demo-banking/src/main/resources/application.yml:
obp:
api:
api-key: your-api-key-here
3.设置PostgreSQL(本地)
安装PostgreSQL和pgvector扩展:
# On macOS
brew install postgresql
brew install pgvector
# Create database
createdb obp_demo
# Connect and enable extension
psql obp_demo
CREATE EXTENSION vector;
更新 application.yml:
spring:
datasource:
url: jdbc:postgresql://localhost:5432/obp_demo
username: your-username
password: your-password
4.配置AI(本地可选)
对于没有Tanzu服务绑定的本地测试:
export OPENAI_API_KEY=your-openai-api-key
5.运行obp模拟银行
cd obp-demo-banking
mvn clean install
mvn spring-boot:run
访问地址:http://localhost:8080
6.运行MCP服务器
cd ../open-banking-mcp/mcp-server
mvn clean install
mvn spring-boot:run
运行时间:http://localhost:8081
Tanzu平台部署
看 演示_流量.md 了解详细的部署说明。
快速开始
-
设置OBP API密钥变量 (部署前需要):
# Set as space variable (recommended) cf set-space-variable <space-name> OBP_API_KEY "your-obp-api-key-here" -
创建服务:
cf create-service postgresql standard postgres-vector-db cf create-service <llm-service-name> <plan> llm-service -
构建应用程序:
cd obp-demo-banking && mvn clean package -DskipTests cd ../open-banking-mcp/mcp-server && mvn clean package -DskipTests -
部署:
cd obp-demo-banking && cf push cd ../open-banking-mcp/mcp-server && cf push备注:清单文件使用
((OBP_API_KEY))这将在部署过程中自动从space/org变量中解析出来。
使用指南
行政科
- 导航到:
http://your-app-url/admin/login - 登录方式:
admin/admin - 创建新客户:
- 填写用户名、电子邮件、密码、名字、姓氏
- 点击“创建客户”
- 注意分配的OBP用户ID
客户部
- 导航到:
http://your-app-url/customer/login - 使用在管理部分创建的凭据登录
- 查看仪表板:
- 账户信息
- 最近交易
- 交易对手
- 账户余额
- 使用AI聊天机器人:
- 点击聊天图标(💬) 在右下角
- 问以下问题:
- “我的账户余额是多少?”
- “显示我最近的交易记录”
- “谁是我的对手?”
MCP服务器
API终点
POST /mcp/call-执行MCP工具调用GET /actuator/health-健康检查
示例用法
列出可用工具:
curl -X POST http://localhost:8081/mcp/call \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/list",
"id": "1"
}'
调用getAccounts工具:
curl -X POST http://localhost:8081/mcp/call \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"id": "2",
"params": {
"name": "getAccounts",
"arguments": {
"token": "your-obp-token"
}
}
}'
故障排除
应用程序无法启动
- 验证是否安装了Java 17+:
java -version - 检查Maven是否已安装:
mvn -version - 查看应用程序日志中的特定错误
数据库连接问题
- 验证PostgreSQL是否正在运行
- 检查中的数据库凭据
application.yml - 确保已安装pgvector扩展:
CREATE EXTENSION vector;
OBP API错误
- 验证OBP API密钥是否正确
- 检查互联网连接
apisandbox.openbankproject.com - 查看OBP API文档中的端点更改
聊天机器人没有响应
- 对于本地:验证
OPENAI_API_KEY已设置 - 对于Tanzu:检查LLM服务绑定是否已配置
- 查看应用程序日志中的AI服务连接错误
服务绑定问题(Tanzu)
- 验证服务是否已创建:
cf services - 检查服务绑定:
cf service postgres-vector-db - 查看应用程序日志中的绑定错误
- 确保包含Spring Cloud绑定依赖项
贡献
这是一个用于教育目的的演示应用程序。欢迎贡献和改进!
许可证
这是一个用于教育目的的演示应用程序。
