AI移民咨询配置:零基础搭建自动问答与材料清单流程
如果你打算用大模型自动回答移民咨询中的常见问题,并整理材料清单,这篇教程会从零开始讲清楚配置流程。
适用条件是:你有一台能访问外网的 Linux 服务器(或本地电脑),具备基本的命令行操作能力,并且已经申请到某个大模型平台的 API Key。
下面按环境准备、知识库整理、请求配置、避坑和验证的顺序展开。
先确认服务器环境和依赖
AI移民咨询配置的第一步不是直接写代码,而是把运行环境准备好。
推荐使用 Ubuntu 22.04 或 Debian 12 这类常见系统,Python 版本建议 3.10 以上。
登录服务器后先更新软件包并安装必要工具:
sudo apt update && sudo apt upgrade -y
sudo apt install -y python3 python3-pip curl
python3 --version
如果 python3 --version 输出低于 3.10,需要先升级 Python 或改用系统自带的较新版本。
接着安装请求库:
pip3 install requests
注意:不要用 root 用户直接运行长期服务;
建议新建普通用户,例如 useradd -m aiassist,后续操作在该用户下进行。
整理移民咨询知识库文件
AI 不会自动知道你的业务规则,需要把常见问题和材料清单整理成文本文件。
建议在项目目录下创建 knowledge/ 文件夹,放入 faq.txt 和 documents.txt。
内容格式尽量简单,每条问题一行,答案紧跟下一行,例如:
问:申请家庭团聚类居留需要哪些基本材料?
答:通常包括护照、关系证明、邀请函、住宿证明等,具体以当地受理机构要求为准。
问:材料翻译件有什么要求?
答:一般需要翻译机构盖章,具体语言和格式以受理机构规定为准。
文件编码统一保存为 UTF-8,避免中文乱码。
如果文件较多,可以用 cat knowledge/*.txt > all_knowledge.txt 合并成一个文件,方便后续读取。
配置 API 请求并接入知识库
下面以兼容 OpenAI 接口风格的大模型平台为例。
先设置环境变量,避免把 API Key 写死在代码里:
export AI_API_KEY="你的API密钥"
export AI_BASE_URL="https://api.example.com/v1"
注意:AI_BASE_URL 要换成你所使用平台实际提供的地址,不要直接照抄示例域名。
然后创建 ask.py 文件,内容如下:
import os, requests
api_key = os.environ["AI_API_KEY"]
base_url = os.environ["AI_BASE_URL"]
with open("all_knowledge.txt", "r", encoding="utf-8") as f:
knowledge = f.read()
user_question = input("请输入移民咨询问题:")
prompt = f"""你是一个移民咨询助手,只根据以下资料回答,不要编造政策。
资料:
{knowledge}
问题:{user_question}
回答:"""
resp = requests.post(
f"{base_url}/chat/completions",
headers={"Authorization": f"Bearer {api_key}"},
json={
"model": "你的模型名称",
"messages": [{"role": "user", "content": prompt}],
"temperature": 0.2
},
timeout=30
)
print(resp.json()["choices"][0]["message"]["content"])
把 你的模型名称 替换成平台文档里给出的模型标识。
运行 python3 ask.py,输入问题后应能返回基于知识库的回答。如果返回 401,检查 API Key 是否有效;如果返回 404,检查 base_url 是否多了或少了 /v1;如果超时,检查服务器能否访问外网。
避坑与效果验证
配置过程中有几个容易出错的地方。
第一,知识库文件不要太大,如果超过模型上下文限制,需要先分段或只保留高频问答。
第二,不要在提示词里要求 AI 给出法律结论,应明确“只根据资料回答,不确定时提示咨询人工”。
第三,API Key 不要提交到公开代码仓库,建议用 .env 文件或系统环境变量管理。
验证时,准备 5 个知识库里已有的问题和 2 个知识库里没有的问题。
已有问题应能准确回答;
没有的问题应回答“资料中未包含”或提示人工咨询,而不是编造答案。
如果出现编造,把 temperature 调低到 0.1 并强化提示词约束。
最后用 curl -I https://你的API地址 确认网络连通性,再观察连续 10 次请求是否稳定返回,以此判断基础配置是否可用。