AI行程规划配置:从零搭建可用的行程生成服务
AI行程规划配置的核心是把行程生成服务跑起来并接入可用的模型接口。
本文以一台干净的 Linux 服务器为例,用 Docker 部署一个轻量行程规划服务,适合想自己控制行程数据、按业务调整模板的运维或建站用户。
下面按环境准备、接口配置、模板定义、启动验证和报错排查的顺序展开。
先确认服务器环境和依赖
开始前需要一台能访问外网的 Linux 服务器,建议 2 核 4G 以上,系统用 Ubuntu 22.04 或 Debian 12 均可。
登录后先检查 Docker 和 Docker Compose 是否已安装:
docker --version
docker compose version
如果提示命令不存在,按官方方式安装 Docker Engine 和 Compose 插件。
安装完成后确认当前用户有权限执行 Docker 命令,没有权限时用 sudo 或把用户加入 docker 组。
另外准备两样东西:一个可用的模型 API Key,以及一个用于存放配置和数据的目录。
本文统一使用 /opt/ai-trip 作为项目目录,后续命令都在这个目录下执行。
配置模型接口和行程生成参数
行程规划服务通常通过环境变量读取模型地址和密钥。
在 /opt/ai-trip 下创建 .env 文件,写入以下内容,把示例值替换成你自己的:
MODEL_API_BASE=https://api.example.com/v1
MODEL_API_KEY=sk-你的密钥
MODEL_NAME=你的模型名称
DEFAULT_CITY=北京
DEFAULT_DAYS=3
MODEL_API_BASE 是模型服务的接口地址,MODEL_NAME 必须与服务商提供的模型标识一致,
不要自己编造。DEFAULT_CITY 和 DEFAULT_DAYS 是用户没有指定时的默认值,
可按业务调整。
接着创建 docker-compose.yml,把服务端口、环境变量和数据目录挂载进去:
services:
trip-planner:
image: your-registry/trip-planner:latest
container_name: trip-planner
restart: unless-stopped
ports:
- "8080:8080"
env_file:
- .env
volumes:
- ./data:/app/data
镜像名称需要换成你实际使用的行程规划服务镜像。
如果服务本身没有现成镜像,需要先按项目文档构建,不要直接照搬示例镜像名。
定义行程模板和输出格式
行程规划服务一般允许自定义提示词模板。
在 data 目录下创建 prompt.txt,写清楚角色、输出结构和约束,例如:
你是一个行程规划助手。根据用户提供的城市、天数和偏好,生成逐日行程。
输出必须为 JSON,包含 days 数组,每天包含 date、items 字段,items 中每项包含 time、place、note。
不要输出 JSON 以外的内容。
模板里明确要求 JSON 输出,可以降低后续解析失败的概率。
如果服务支持在管理后台配置模板,路径通常在 /admin 或 /settings,以实际服务界面为准。
修改模板后需要重启容器让配置生效:
docker compose restart trip-planner
启动服务并验证行程生成结果
在 /opt/ai-trip 下执行:
docker compose up -d
docker compose logs -f --tail=50
日志中出现服务监听端口、模型连接成功之类的信息后,用 curl 发一个测试请求:
curl -X POST http://127.0.0.1:8080/api/plan \
-H "Content-Type: application/json" \
-d '{"city":"杭州","days":2,"preference":"美食和博物馆"}'
预期返回包含 days 数组的 JSON,每天有具体行程项。
如果返回 401,检查 MODEL_API_KEY 是否正确;
返回 404,检查请求路径是否与服务实际路由一致;
返回 500,先看容器日志里的模型报错,再确认 MODEL_NAME 是否可用。
验证通过后,再用浏览器访问 http://服务器IP:8080 确认页面能正常打开。
常见配置问题和避坑提醒
- 端口被占用:启动时报
bind: address already in use,用ss -lntp | grep 8080找到占用进程,换端口或停掉冲突服务。 - 密钥写进镜像:不要把 API Key 写进 Dockerfile 或代码仓库,统一放
.env并通过env_file注入。 - 模板输出不稳定:模型偶尔返回带说明文字的 JSON,解析前先做容错处理,或在模板中强化“只输出 JSON”的约束。
- 数据目录权限:挂载
./data后如果容器报写入失败,检查目录属主和权限,必要时执行chown -R 1000:1000 ./data,具体 UID 以镜像文档为准。 - 修改配置后未重启:环境变量和模板修改后需要重启容器,否则仍在用旧配置。
完成以上步骤后,建议再跑一次多天行程请求,确认天数、城市和偏好都能正确反映在结果里。
AI行程规划配置的关键不在装得多复杂,而在于接口、模板和验证三步都能复现;
后续换模型或调整业务时,优先回到 .env 和模板文件修改,再按同样的 curl 请求复查结果。