Plot - Narrative Travel Planner
v0.19.0 | 全球首个叙事型旅行规划平台 (The Narrative Travel Planner)
Plot 是一个创新的旅行规划平台,核心理念是 "Planning as Screenwriting"(旅行规划即剧本创作) 。通过 AI 技术,将传统的旅行规划转化为富有叙事性的体验。
🎬 叙事驱动 - 用故事包装旅途,让每一站都有意义
🤖 AI 赋能 - 智能发现、筛选、规划、生成
📱 多端支持 - Web 应用 + PWA 离线能力
层级
技术
版本
框架
Next.js (App Router)
15.5.9
UI 库
React
19.2.3
语言
TypeScript
5.x
样式
Tailwind CSS
4.x
动画
Framer Motion
12.x
地图
Mapbox GL JS
3.x
AI
Google Gemini (via proxy)
-
数据库
Better-SQLite3 (本地) / D1 (云端)
-
ORM
Drizzle ORM
0.45.x
认证
NextAuth.js
5.x-beta
┌─────────────────────────────────────────────────────────────┐
│ Frontend │
│ Next.js 15 (App Router) + React 19 + Tailwind CSS │
└──────────────────────┬──────────────────────────────────────┘
│
┌──────────────────────▼──────────────────────────────────────┐
│ API Layer │
│ /api/discovery /api/trip /api/story /api/pois /api/admin│
└──────────────────────┬──────────────────────────────────────┘
│
┌──────────────────────▼──────────────────────────────────────┐
│ Service Layer │
│ lib/gemini/ lib/trip/ lib/export/ lib/admin/ │
└──────────────────────┬──────────────────────────────────────┘
│
┌──────────────────────▼──────────────────────────────────────┐
│ Data Layer (SQLite / D1) │
│ users trip_plans pois published_stories token_usage │
└─────────────────────────────────────────────────────────────┘
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ users │ │ trip_plans │ │ pois │
│ ─────────────── │ │ ─────────────── │ │ ─────────────── │
│ id │ │ id │ │ id │
│ email │ │ user_id ────►│ │ name │
│ name │ │ title │ │ coordinates │
│ role │ │ destination │ │ category │
│ status │ │ trip_days │ │ content (JSON) │
│ created_at │ │ collected_pois │ │ practical_info │
└─────────────────┘ │ itinerary │ └─────────────────┘
│ status │
└─────────────────┘
│
▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ trip_versions │ │published_stories│ │ token_usage │
│ ─────────────── │ │ ─────────────── │ │ ─────────────── │
│ trip_plan_id ◄──────│ trip_plan_id │ │ user_id │
│ version │ │ story_data │ │ action │
│ itinerary │ │ html_content │ │ input_tokens │
│ created_at │ │ is_published │ │ output_tokens │
└─────────────────┘ └─────────────────┘ └─────────────────┘
迁移文件
功能
schema.sql
基础用户表
002_token_usage.sql
Token 使用追踪
003_trip_plans.sql
行程计划表
004_poi_core.sql
POI 核心表结构
005_add_trip_end_date.sql
行程结束日期
006_trip_versions.sql
行程版本管理
007_published_stories.sql
故事发布表
008_story_publish_status.sql
故事公开/私有状态
功能
描述
想法输入
从文学作品、电影、个人灵感出发
场景推荐
AI 分析并推荐相关旅行场景
关键词搜索
按名称/地点搜索 POI
POI 详情
丰富的地点信息、文化背景、实用信息
功能
描述
收藏
保存感兴趣的地点
筛选
按类型、评分、叙事滤镜过滤
导出到行程
批量将收藏导入行程
地图查看
Google Maps / 高德地图 快速打开
功能
描述
AI 智能筛选
将 POI 分为必去/推荐/可选
多节奏模式
极速游/均衡/深度/慢游 四种节奏
AI 行程生成
自动安排多日行程
对话式修改
用自然语言调整行程
版本管理
保存多个行程版本
功能
描述
AI 故事生成
将行程转化为叙事故事
多种滤镜
文学/电影/历史/建筑/情绪等
HTML 导出
生成精美 HTML 页面
公开/私有
控制故事的可见性
分享链接
复制链接分享给朋友
功能
描述
用户管理
激活、暂停、角色变更
数据统计
用户数、POI 数、Token 消耗
AI 配置
API 地址、模型、参数
系统设置
站点配置、功能开关
plot/
├── app/ # Next.js App Router
│ ├── page.tsx # Landing Page
│ ├── planner/ # 规划工作区
│ │ ├── page.tsx # 主规划页 (探索/收藏/行程标签)
│ │ └── trips/ # 行程列表
│ ├── admin/ # 管理后台
│ │ ├── dashboard/ # 仪表盘
│ │ ├── users/ # 用户管理
│ │ ├── ai-config/ # AI 配置
│ │ └── token-usage/ # Token 统计
│ ├── settings/ # 用户设置
│ └── api/ # API Routes (50+)
│ ├── discovery/ # POI 发现
│ ├── trip/ # 行程管理
│ ├── story/ # 故事生成
│ ├── pois/ # POI CRUD
│ └── admin/ # 管理 API
├── components/ # React 组件 (60+)
│ ├── workspace/ # 工作区组件
│ ├── trip/ # 行程组件
│ ├── discovery/ # 探索组件
│ ├── admin/ # 管理组件
│ ├── ui/ # UI 基础组件
│ └── mobile/ # 移动端组件
├── hooks/ # React Hooks (9个)
├── lib/ # 核心服务
│ ├── gemini/ # AI 服务
│ ├── trip/ # 行程服务
│ ├── export/ # 导出服务
│ ├── db/ # 数据库
│ ├── auth/ # 认证
│ └── admin/ # 管理服务
├── types/ # TypeScript 类型 (6个)
└── tests/ # 测试文件 (12个)
cp .env.example .env.local
必需配置:
变量
说明
AUTH_SECRET
NextAuth 加密密钥
GEMINI_API_URL
Gemini API 代理地址
GEMINI_API_KEY
Gemini API 密钥
NEXT_PUBLIC_MAPBOX_TOKEN
Mapbox 地图令牌
npm run dev
# 访问 http://localhost:3088
# 开发环境
docker compose up -d --build
# 生产环境
docker compose -f docker-compose.prod.yml up -d
版本
日期
主要变更
0.17.0
2026-01-21
故事公开/私有、地图导出、节奏优化、仪表盘 POI 统计
0.13.0
2026-01-18
多渠道发现、POI 筛选、行程日期
0.12.0
2026-01-18
产品架构重设计、收藏夹导出
0.9.10
2026-01-17
AI 流式响应、Token 追踪
0.9.9
2026-01-17
PWA 支持、移动端组件
0.9.8
2026-01-17
组件模块化重构
0.9.7
2026-01-17
专业行程规划、导出服务
0.3.x
2026-01-16
系统设置、Cloudflare 部署、管理后台
0.2.0
2026-01-16
探索发现模式、AI 筛选、故事生成
0.1.0
2026-01-15
初始版本、核心引擎
MIT License