AI旅行咨询配置:从零搭建智能问答助手的完整流程
AI旅行咨询配置的核心,是把一个大模型对话接口接到你的服务器上,再配上旅行领域的人设和知识,让用户能通过网页或聊天窗口提问并获得行程建议。
下面按零基础也能照做的顺序,从准备环境到验证效果完整走一遍。
先确认你手里有什么
动手之前先确认三个条件是否具备,缺一个都会卡住后续步骤。
- 一台可用的服务器:Linux 系统(如 Ubuntu 22.04 或 Debian 12),能通过 SSH 登录,建议内存不低于 2GB。如果只是测试,本地电脑装 Docker 也可以。
- 一个大模型 API 密钥:国内常见的是通义千问、文心一言、DeepSeek 等平台的 API Key;海外可用 OpenAI 兼容接口。注册后在控制台创建密钥即可,注意密钥只显示一次,先保存好。
- 一个能跑代码的运行环境:推荐 Python 3.10 以上,或者直接用 Docker 运行现成的对话服务镜像,省去装依赖的麻烦。
如果你还没有服务器,可以先在本地用 Docker 验证流程,确认接口能通再迁移到线上。
配置对话服务的关键步骤
这里以 Python 环境为例,用 OpenAI 兼容接口演示最小可运行配置。
其他平台只要支持 OpenAI 格式,改一下 base_url 和模型名即可。
第一步:安装依赖并设置环境变量
pip install openai
# 把密钥写入环境变量,避免硬编码在代码里
export AI_API_KEY="你的API密钥"
export AI_BASE_URL="https://api.deepseek.com/v1"
export AI_MODEL="deepseek-chat"
第二步:写一个最小对话脚本
新建 travel_bot.py,内容如下:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("AI_API_KEY"),
base_url=os.getenv("AI_BASE_URL")
)
system_prompt = "你是一个旅行咨询助手,回答要简洁,给出具体城市、季节和预算建议,不编造不存在的景点。"
def ask(question):
resp = client.chat.completions.create(
model=os.getenv("AI_MODEL"),
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": question}
],
temperature=0.7
)
return resp.choices[0].message.content
print(ask("五一去成都三天,预算两千,怎么安排?"))
第三步:运行并观察返回
python travel_bot.py
如果终端能打印出一段行程建议,说明 API 连通、密钥有效、模型名正确。
如果报错,先看错误码:401 通常是密钥错误,404 多半是模型名或 base_url 写错,429 是请求频率或余额问题。
第四步:加上旅行知识库(可选但推荐)
纯靠模型回答容易给出过时信息。
可以把常用目的地攻略整理成文本,在提问前拼进 system_prompt,或者用向量检索先找出相关段落再交给模型。
小规模场景直接拼接文本就够用,不必一上来就上向量数据库。
参数调整与避坑要点
配置能跑通只是第一步,要让回答稳定可用,有几个地方容易踩坑。
- 温度参数别调太高:
temperature设为 0.7 左右比较均衡,超过 1.0 回答会发散,旅行建议容易编造不存在的酒店或航班。 - 系统提示词要写限制:明确告诉模型“不确定的信息要说明不确定”“不推荐具体票价和实时余票”,减少幻觉。
- 密钥不要写进代码仓库:用环境变量或
.env文件,并把.env加入.gitignore。 - 注意接口超时:线上服务建议设置 30 秒左右的超时和重试,避免用户等待过久。
- 合规提示:如果对外提供服务,页面要说明回答由 AI 生成、仅供参考,涉及签证和健康要求时提示用户以官方渠道为准。
验证配置是否真正生效
配置完成后,用三个问题做一轮检查:
- 问一个明确目的地和天数的问题,看回答是否包含具体行程结构。
- 问一个你不确定的信息(如某景点当前门票),看模型是否承认不确定,而不是编造数字。
- 连续问两轮,看上下文是否保留,确认对话记忆正常。
如果三项都符合预期,说明 AI旅行咨询配置基本可用。
若回答明显跑题,优先检查 system_prompt 是否被覆盖,以及模型名是否指向了正确的对话模型而非补全模型。
常见疑问
没有服务器,只在本地电脑配置可以吗?
可以。本地用 Python 或 Docker 跑通流程,确认接口和提示词没问题后,再把同样的配置迁移到服务器,迁移时注意重新设置环境变量。
必须用向量数据库吗?
不一定。旅行知识量不大时,把攻略文本拼进提示词就能满足需求;只有知识文档很多、需要精准检索时,才考虑引入向量检索。
回答里出现不存在的景点怎么办?
先在系统提示词中加入“只推荐真实存在且可查证的景点”,再降低温度参数。如果仍然频繁出现,说明模型本身知识覆盖不足,需要补充本地知识文本或换用更强的模型。
配置完成后,建议先用小流量测试一段时间,观察回答质量和接口稳定性,再决定是否对外开放。
遇到异常时,按报错码和提示词两个方向排查,通常能快速定位问题。