数字厅的J补助金API与MCP服务器、AWS Strands Agents框架结合的补助金搜索AI代理应用程序。
本项目整合了以下技术:
search_subsidies、get_subsidy_detail等执行情况
# 安装依赖包
pip install -r requirements.txt
# 设置环境变量
cp .env.example .env
# 编辑.env文件以设置API密钥
选项1: 使用Anthropic API
ANTHROPIC_API_KEY=your_api_key_here
USE_BEDROCK=false
JGRANTS_API_URL=https://api.jgrants.go.jp/exp/v1
选项2: 使用AWS Bedrock
USE_BEDROCK=true
AWS_REGION=us-east-1
AWS_PROFILE=default
JGRANTS_API_URL=https://api.jgrants.go.jp/exp/v1
详细的设置步骤请参阅 SETUP.md。
支持实时流式传输的交互式Web界面,可视化工具调用:
简单启动(推荐):
# 一键启动后端 + 前端
./start-dev.sh
或者手动启动:
后端:
# 启动FastAPI + WebSocket服务器
python3 -m uvicorn app.main:app --reload
前端(在另一个终端):
cd frontend
npm install # 首次安装
npm run dev
请在浏览器中访问 http://localhost:3000。
Web UI 特点:
python cli_main.py
可以通过对话式菜单在命令行中操作。
.
├── README.md # 项目概述
├── SETUP.md # 详细设置指南
├── BEDROCK_SETUP.md # AWS Bedrock设置
├── requirements.txt # Python依赖包
├── .env.example # 环境变量模板
├── cli_main.py # CLI应用程序
├── app/
│ └── main.py # 🌟 FastAPI + WebSocket后端
├── frontend/ # 🌟 Next.js 前端
│ ├── package.json # Node.js依赖包
│ ├── app/
│ │ ├── page.tsx # 主聊天UI(支持流式传输)
│ │ └── layout.tsx # 应用布局
│ └── ...
├── agents/
│ ├── __init__.py
│ └── subsidy_agent.py # Strands代理(兼容AWS Bedrock)
├── tools/
│ ├── __init__.py
│ └── jgrants_tools.py # J补助金 API工具(@tool 装饰器)
├── mcp/ # MCP Server(模型上下文协议)
└── tests/
└── test_*.py # 测试文件
processing: 处理开始通知tool_call_start: 工具调用开始(从标准输出自动检测)tool_call_result: 工具执行结果response_delta: 响应差异(按单词单位)response_complete: 响应完成ToolCaptureStream类实时监控stdoutTool #(\d+): (\w+)模式MIT License