| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
TripStar 是一个前后端分离的 AI 旅行规划项目。系统使用多 Agent 协作理解用户需求,读取小红书旅行内容,查询高德 POI、天气、酒店与餐饮,并生成包含每日路线、地图、景点图片、预算和知识图谱的完整攻略。
行程概览
|
每日行程
|
景点地图与真实路线
|
预算明细
|
输入目的地、日期、交通方式、住宿偏好和自然语言要求,系统按以下顺序执行:
用户可以输入一个或多个小红书长链接、短链、App 分享内容,或者直接粘贴攻略正文。系统会:
flowchart LR
WEB[TripStar Frontend] --> API[Spring Boot API]
API --> TASK[TripTaskService]
TASK --> AUTO[自主规划 Workflow]
TASK --> NOTE[指定笔记 Workflow]
AUTO --> XHS[XHS Search / Detail Agents]
XHS --> GRAPH[Spring AI Alibaba StateGraph]
GRAPH --> AMAP[AMap POI / Weather / Hotel Agents]
NOTE --> READER[Note Reader + Image Downloader]
READER --> VISION[Multimodal Understanding Agent]
VISION --> POI[POI Enrichment Service]
POI --> SUPPLEMENT[Weather + Conditional Hotel/Food Agents]
AMAP --> PLANNER[Planner Agent]
SUPPLEMENT --> PLANNER
PLANNER --> REVIEW[Review Agent]
REVIEW --> RESULT[Trip Plan + Knowledge Graph]
RESULT --> WEB
flowchart TD
START([START]) --> MODE{xhs_mode}
MODE -- service --> SERVICE[XHS Service]
MODE -- tool --> SEARCH[XHS Search Agent]
MODE -- both --> SERVICE
SERVICE -- service --> READY[XHS Ready Check]
SERVICE -- continue tool --> SEARCH
SEARCH --> DETAIL[XHS Detail Agent]
DETAIL --> READY
READY --> POI[AMap POI Agent]
POI --> WEATHER[Weather Agent]
WEATHER --> HOTEL[Hotel / Restaurant Agent]
HOTEL --> MERGE[Merge Research Context]
MERGE --> END([END])
| 阶段 | Agent / Service | 结构化输出 |
|---|---|---|
| 小红书搜索 | XhsSearchAgent | XhsSearchResearchResult |
| 小红书详情 | XhsDetailAgent | XhsDetailResearchResult |
| 高德研究 | POI / Weather / Hotel Agents | MapAgentResult |
| 指定笔记理解 | Multimodal Understanding Agent | XhsNoteUnderstandingResult |
| 最终规划 | TripPlannerAgent | TripPlan |
| 行程质检 | TripReviewAgent | ReviewResult |
| Graph 汇总 | Java Workflow | TravelResearchResult |
TravelResearchResult 只在 Graph 最终合并时创建,不作为单个阶段 Agent 的大而全输出 DTO。
TripStar-Java/
├── app/ # HTTP API、WebSocket、运行配置
├── common/
│ ├── core/ # 异常、常量、运行时设置
│ ├── json/ # JSON 配置
│ ├── redis/ # Redis
│ ├── satoken/ # Sa-Token
│ └── web/ # Web 通用配置
├── modules/
│ ├── ai/ # Agent、Structured Output、Prompt、Trace
│ ├── content/ # 小红书搜索、详情、公开笔记与图片读取
│ ├── map/ # 高德 API、Tool、POI 图片代理
│ └── trip/ # Workflow、规划、质检、DTO、知识图谱
├── docs/ # 源码学习与实现文档
├── .env.example
└── pom.xml
指定笔记模式读取公开笔记页面时不要求用户填写 Cookie;页面触发登录或风控验证时会明确失败。
参考 .env.example 配置 IDE、Shell 或部署平台环境变量:
AI_DASHSCOPE_ENABLED=true
AI_DASHSCOPE_API_KEY=your_dashscope_key_here
AI_DASHSCOPE_CHAT_MODEL=qwen-plus
AI_TRACE_ENABLED=true
AI_TRACE_DIR=./logs/ai-trace
AMAP_ENABLED=true
AMAP_KEY=your_amap_web_service_key_here
XHS_ENABLED=true
XHS_MODE=tool
XHS_COOKIE=your_xhs_cookie_here
XHS_SIGN_DIR=classpath:xhs_sign
DB_URL=jdbc:mysql://localhost:3306/tripstar?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
DB_USERNAME=root
DB_PASSWORD=
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DATABASE=0
REDIS_PASSWORD=XHS_MODE 可选值:
| 模式 | 说明 |
|---|---|
| service | Java Service 按固定流程采集内容 |
| tool | ReactAgent 调用小红书 Tool |
| both | 两条链路都执行并合并,用于效果对比 |
小红书签名资源已内置:
modules/content/src/main/resources/xhs_sign/
git clone https://github.com/LeeFly-cn/TripStar-Java.git
cd TripStar-Java
mvn -DskipTests package
java -jar app/target/app-0.0.1-SNAPSHOT.jarWindows PowerShell:
$env:JAVA_HOME="C:\path\to\jdk-21"
$env:Path="$env:JAVA_HOME\bin;$env:Path"
mvn -DskipTests package
java -jar app\target\app-0.0.1-SNAPSHOT.jar默认地址:http://localhost:8080
git clone https://github.com/LeeFly-cn/TripStar-Frontend.git
cd TripStar-Frontend
cp .env.example .env
npm install
npm run dev前端默认地址:http://localhost:5173
| 接口 | 方法 | 说明 |
|---|---|---|
| /health | GET | 健康检查 |
| /api/settings | GET / PUT | 读取或更新运行时设置 |
| /api/trip/plan | POST | 提交自主规划任务 |
| /api/trip/plan/xhs-notes | POST | 提交指定笔记规划任务 |
| /api/trip/status/{taskId} | GET | 查询任务状态与结果 |
| /api/trip/ws/{taskId} | WebSocket | 订阅实时进度 |
| /api/trip/history | GET | 查询当前运行实例的任务历史 |
| /api/poi/photo | GET | 查询小红书景点图片 |
| /api/poi/photo/amap | GET | 查询高德 POI 图片 |
| /api/poi/photo/amap/proxy | GET | 代理高德图片用于展示与导出 |
| /api/chat/ask | POST | 基于当前行程继续问答 |
{
"city": "昆明",
"cities": [{ "city": "昆明", "days": 3 }],
"start_date": "2026-08-01",
"end_date": "2026-08-03",
"travel_days": 3,
"transportation": "公共交通",
"accommodation": "交通方便的舒适型酒店",
"preferences": ["自然风光", "本地美食"],
"free_text_input": "带老人,不想太累,不去滇池",
"language": "zh"
}{
"share_text": "小红书分享内容、长链接或短链,可填写多个",
"note_content": "也可以直接粘贴攻略正文",
"requirement": "不去滇池,保留笔记中的全部景点",
"start_date": "2026-08-01"
}两个接口都会立即返回 task_id,后续通过状态接口或 WebSocket 获取进度和最终结果。
logs/ai-trace/yyyy-MM-dd/*.md
每个 Trace 文件包含:
排查 Agent 未调用工具、Structured Output 失败、Prompt 约束冲突或数据分类错误时,优先查看对应 taskId 的 Trace。
独立前端仓库提供:
推荐阅读顺序:
本项目使用 GPL-2.0 协议开源。
| Back | FazBrowse Home | New Git URL |