Skip to content

About

一个旅游app

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

Travel diary

跨平台旅行日记应用:Windows 桌面端(Wails + Go + React)+ Android 移动端(Capacitor + React)。 支持计划、日记、相册、地图、行程推荐等功能,数据本地 SQLite 存储,可在桌面 / 移动间用 .tdpkg 包导入导出。

首次拉取后的本机配置

仓库故意把私密信息排除在外,clone 后请按下面四步补齐:

  1. API Key — 开发环境只需要复制非用户设置类的模板:

    cp frontend/src/config/keys.example.ts frontend/src/config/keys.ts

    在新文件里填入自己的 Unsplash Access Key(https://unsplash.com/developers)。 高德地图 Web JS API Key 和安全密钥不再写入代码文件,用户在软件内 设置 → 地图服务 自己填写。

  2. Android 签名(仅当你要打 release APK) — 复制模板:

    cp frontend/android/keystore.properties.example frontend/android/keystore.properties

    用 keytool 生成自己的 frontend/android/app/release.keystore,然后把对应的 alias / 密码填进 keystore.properties。 没有这个文件时 assembleRelease 会自动退化为 debug 签名,照样能装机。

  3. Android SDK 路径 — frontend/android/local.properties 由 Android Studio 首次打开项目时自动生成,不需要手写。

  4. 依赖:

    cd frontend && npm install
    cd .. && go mod download

开发

  • 桌面:wails dev(项目根目录)
  • 如果 frontend/wailsjs/ 不存在或 Go 服务方法变了,先运行 wails generate module
  • 移动:在 frontend/ 下 npm run dev:mobile,再 npx cap run android
  • MCP:go build -o build/bin/traveldiary-mcp.exe ./cmd/traveldiary-mcp

MCP 工具

cmd/traveldiary-mcp 提供本地 stdio MCP server,连接到同一份 Travel Diary SQLite 数据库,让 AI 可以直接创建和维护旅行计划。

安装到 Codex 的本机配置示例:

[mcp_servers.traveldiary]
command = "D:\\Code\\Travel diary\\build\\bin\\traveldiary-mcp.exe"

可用工具:

  • travel_diary_list_trips:列出计划,可按 planning / ongoing / finished 过滤。
  • travel_diary_get_trip_plan:读取单个计划及其行程项。
  • travel_diary_create_trip_plan:一次性创建 AI 设计的完整计划。
  • travel_diary_add_itinerary_item:给已有计划追加一个行程项。
  • travel_diary_update_trip:更新计划基础信息。
  • travel_diary_update_itinerary_item:更新某个行程项。

AI 工作台与主 / 辅助 AI

桌面端还提供可配置的 AI 服务:在设置里添加任意 OpenAI-compatible 接口(例如 OpenAI、Ollama、LM Studio 或兼容网关),为提供商填写模型、API Key 和能力标签(vision / tools 等),再选择主 AI 与辅助 AI。主 AI 请求失败时会自动切换辅助 AI;发送图片时会优先选择标记了 vision 能力的提供商。对话和消息保存在本地 SQLite,可按计划关联、重命名或删除。

新增 MCP 工具:

  • travel_diary_ai_list_providers / travel_diary_ai_save_provider / travel_diary_ai_delete_provider
  • travel_diary_ai_get_settings / travel_diary_ai_save_settings
  • travel_diary_ai_create_conversation / travel_diary_ai_list_conversations / travel_diary_ai_list_messages
  • travel_diary_ai_rename_conversation / travel_diary_ai_delete_conversation
  • travel_diary_ai_chat:持久化对话,支持百度国内旅行搜索、主辅 AI 故障转移、图片输入和多智能体协同分析。
  • travel_diary_ai_design_trip:要求 AI 输出结构化旅行计划;autoCreate=true 且返回 JSON 合法时会直接落库。
  • travel_diary_ai_modify_trip:根据用户意见生成已有计划的完整修改草案和差异预览;默认不写库,autoApply=true 才会应用。
  • travel_diary_ai_apply_trip:应用用户确认过的修改草案,保留原有项目 ID 并按新顺序保存。
  • travel_diary_ai_search_web:内置百度国内旅行搜索,按攻略、住宿、交通和探索推荐拆分来源。

AI 已知地点坐标时应同时写入 GCJ-02 经纬度;只知道地点名称或地址也可以。计划第一次打开地图时,应用会使用用户在设置中填写的高德配置自动定位并把坐标补回行程数据。

多智能体协同与计划修改

AI 工作台会根据资料类型并行启用研究、住宿、交通、预算审查、识图和方案规划智能体,再由主 AI 汇总。主 AI 不支持识图时,系统会把图片交给已启用的识图模型,并只把识图报告交给主 AI;任何子智能体失败都会降级,不阻塞主流程。

从计划详情页点击“AI 修改”或在 AI 工作台选择计划后,输入用户意见即可生成差异预览。系统会保留未提及的行程,明确删除的项目单独列出;用户确认后才写入数据库。移动端当前保持本地记录模式,修改预览与应用建议在桌面端完成。

局域网互传计划

电脑端在计划列表右上角点击 发起房间,默认会选中全部计划,也可以取消全选或逐项选择。应用会把所选计划临时打成 .tdpkg,并创建一个 30 分钟有效的局域网计划房间。

另一台电脑或手机只要在同一个 Wi‑Fi / 局域网里,在计划列表页点击 加入房间,输入发起端显示的 4 位邀请码即可找到同一个房间;也可以直接从自动发现的附近房间中点 加入,一次下载并导入房间内的全部计划。

正常使用不需要手动输入 IP、端口或 token。只有在网络隔离、防火墙拦截、固定房间端口被占用等情况下,才需要展开高级区域复制完整直连邀请链接作为兜底。

这个功能同步的是计划包,不直接开放数据库,也不会扫描或共享任意本地目录。

打包

  • Windows exe:wails build -platform windows/amd64 → build/bin/Travel diary.exe
  • Windows 安装包:wails build -nsis -platform windows/amd64(需先装 NSIS)
  • Android Release APK:在 frontend/ 下 npm run release:android → frontend/android/app/build/outputs/apk/release/app-release.apk

About

一个旅游app

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages