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 |
? | 显示快捷方式 |
