AI终端运营助手

AI驱动的终端智能平台,提供自然语言查询、数据可视化和报告生成功能,适用于APM终端运营管理。

  • by UNES97
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 UNES97/mcp-db-demo

使用说明

APMT人工智能运营助理

APM Terminals的人工智能终端智能平台。使用自然语言询问有关船舶操作、堆场库存、闸门活动和设备性能的问题。由克劳德(Anthropic)提供技术支持。

特性

AI聊天

  • 实时终端数据库的自然语言查询
  • 31个专用数据库工具(船舶、船厂、大门、设备、延误)
  • 每次回复后智能跟进建议
  • 自然语言日期处理(“上周”、“本月”、“Q1”)
  • 根本原因问题的多步分析
  • 对话历史记录(SQLite)

可视化

  • 交互式图表(ApexCharts)——条形图、折线图、饼图、甜甜圈图
  • 分页表格和图表(每页10个项目)
  • 终端概述——一次查询中的完整仪表板
  • 每周比较模式(移动、生产率、延迟)

报告

  • 展开到全屏模式
  • 导出到带图表的PDF(html2canvas+jsPDF)
  • 电子邮件报告传递(SMTP)
  • 响应反馈(竖起大拇指/向下竖起大拇指)

行政查询(总部)

  • CMPH与目标基准测试
  • 最佳/最差船舶排名
  • 延迟根本原因分析
  • 按类别分列的延误情况
  • 闸门吞吐量模式
  • 泊位利用趋势
  • 停留时间分析

用户体验

  • KPI汇总卡(自动刷新)
  • 带终端词汇校正的语音输入
  • 船上之旅(driver.js)
  • 键盘快捷键(Ctrl+K、Ctrl+E、Ctrl+N)
  • 响应时发出声音通知
  • 两层缓存(查询+响应)
  • 管理员健康仪表板(/Admin)
  • 马士基标题字体

快速开始

先决条件

  • Node.js 20+
  • MySQL 8.0
  • 无烟煤API键

设置

# Install dependencies
npm install

# Copy and configure environment
cp .env.example .env
# Edit .env with your MySQL and Anthropic credentials

# Build
npm run build

# Start
npm start

该应用程序将在首次运行时导入演示数据库,并在http://localhost:3000.

环境变量

# MySQL
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=root
DB_NAME=compass_db

# AI
ANTHROPIC_API_KEY=sk-ant-...
# CLAUDE_MODEL=claude-sonnet-4-20250514

# Server
CHAT_SERVER_PORT=3000

# Cache TTLs (minutes)
CACHE_TTL_STATIC=60
CACHE_TTL_SLOW=60
CACHE_TTL_LIVE=60
CACHE_TTL_RESPONSE=60

# Email (optional)
# SMTP_HOST=smtp.gmail.com
# SMTP_PORT=587
# SMTP_USER=your-email@gmail.com
# SMTP_PASS=your-app-password

码头工人

docker compose up -d

或者部署到Coolify—— MYSQL_DATABASE env-var会自动创建数据库。

项目结构

src/
  chat-server.ts    # Express server, Claude API, all endpoints
  chat-history.ts   # SQLite conversation history (sql.js)
  database.ts       # MySQL connection pool
  init-database.ts  # Auto-import demo data on first run
  queries.ts        # All SQL queries (50+)
public/
  index.html        # UI (Tailwind CSS, Lucide icons)
  script.js         # Frontend logic (charts, pagination, voice, etc.)
  fonts/            # Maersk Headline webfont
demo_database.sql   # Slim demo dataset (1.8MB, ~30 vessel visits)

API终点

端点 方法 描述
/api/chat POST 与Claude聊天(工具调用)
/api/kpis GET 实时KPI摘要
/api/conversations GET/POST 列出/创建对话
/api/conversations/:id GET/DELETE 获取/删除对话
/api/feedback POST 提交响应反馈
/api/send-report POST 通过电子邮件发送报告
/api/health GET 健康检查+缓存统计信息
/api/cache DELETE 清除所有缓存
/admin GET 管理仪表板

键盘快捷键

快捷方式 操作
Ctrl+K 专注聊天输入
Ctrl+E 导出上次响应
Ctrl+N 新聊天
Esc 关闭modals
? 显示快捷方式