AI政务问答配置:从零搭建可用的问答接口
AI 政务问答配置的核心,是把政务网站或小程序的前端提问入口,接到一个可调用的问答服务上,并让服务能读取政务知识库内容来回答。
适合已有政务站点、准备上线智能问答栏目的运维或建站人员。
下面按环境准备、接口配置、反向代理、知识库导入、报错排查和上线验证六步走,命令和配置片段可直接套用。
先确认运行环境和账号权限
开始前需要一台能访问外网的 Linux 服务器(示例用 Ubuntu 22.04,其他发行版命令略有差异),已安装 Nginx,并拿到问答服务提供方给的接口地址和密钥。
如果使用自建模型服务,确认模型端口已监听。
检查基础环境:
nginx -v
curl --version
ss -lntp | grep -E '80|443'
预期结果是 Nginx 版本正常输出、80/443 端口有监听。
没有 Nginx 的话先执行 apt update && apt install -y nginx。
密钥不要写进前端页面,统一放在服务端环境变量或配置文件中,文件权限设为 600。
配置问答接口和密钥
多数政务问答服务采用 HTTP 接口,请求体通常是 JSON。
先在服务器上用 curl 验证接口通不通,再接入前端:
curl -X POST 'https://api.example.gov/qa/v1/chat' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer 你的密钥' \
-d '{"question":"灵活就业人员如何缴纳社保","session_id":"test-001"}'
返回 200 且带 answer 字段,说明接口和密钥都正常。
若返回 401 检查密钥是否过期,403 检查来源 IP 是否在白名单,404 检查路径是否多写或漏写版本号。
把密钥和接口地址写入服务端配置文件,例如 /etc/ai-qa/config.env:
QA_API_URL=https://api.example.gov/qa/v1/chat
QA_API_KEY=替换为实际密钥
设置权限:chmod 600 /etc/ai-qa/config.env。
用 Nginx 反向代理暴露问答入口
不要让浏览器直接调外部接口,否则密钥会暴露。
在政务站点 Nginx 配置中加一段反向代理,把 /qa/ 路径转发到问答服务:
location /qa/ {
proxy_pass https://api.example.gov/qa/;
proxy_set_header Host api.example.gov;
proxy_set_header Authorization "Bearer 你的密钥";
proxy_set_header Content-Type application/json;
proxy_connect_timeout 10s;
proxy_read_timeout 60s;
}
保存后执行 nginx -t 检查语法,再 nginx -s reload 生效。
注意 proxy_pass 末尾带斜杠时路径拼接规则不同,配置后一定要用 curl 验证:
curl -X POST 'https://你的政务域名/qa/v1/chat' \
-H 'Content-Type: application/json' \
-d '{"question":"公积金提取需要什么材料"}'
返回正常答案即代理成功。
若出现 502,先看 tail -f /var/log/nginx/error.log,常见原因是上游域名解析失败或超时时间太短。
导入政务知识库并校准回答范围
问答服务能否答准,取决于知识库。
把办事指南、常见问题、政策文件按主题整理成问答对或分段文本,通过服务商后台或接口导入。
导入后抽查三类问题:高频办事问题、政策边界问题、超出范围的问题。
超出范围时,配置兜底话术,例如“该问题暂未收录,请拨打政务服务热线或前往办事大厅咨询”,避免模型编造办理材料。
涉及政策时效的内容,标注来源和更新日期,方便后续核对。
常见报错和避坑清单
- 401 未授权:密钥错误或过期,检查请求头是否被 Nginx 覆盖。
- 502 网关错误:上游不可达,用
curl -v直连接口确认,再调整超时。 - CORS 跨域报错:前端域名和问答域名不同源时,在 Nginx 加
add_header Access-Control-Allow-Origin并允许Content-Type请求头。 - 回答乱码:确认请求和响应都使用 UTF-8,Nginx 加
charset utf-8;。 - 密钥泄露风险:不要把密钥写进 JavaScript 或 HTML,统一走服务端代理。
- 超时时间过短:长回答生成较慢,
proxy_read_timeout建议不低于 60 秒,按实际测试调整。
上线前验证问答是否可用
按以下清单逐项确认,全部通过再放量:
- 用 curl 直连接口返回 200 且答案非空;
- 通过政务域名
/qa/路径提问返回正常; - 提问知识库内问题,答案与办事指南一致;
- 提问范围外问题,返回兜底话术而非编造内容;
- 查看 Nginx 日志无连续 4xx、5xx;
- 用手机浏览器实际打开问答页面测试一次。
验证通过后,建议保留接口日志和知识库更新记录,方便后续排查回答偏差。
AI 政务问答配置不是一次配完就结束,知识库和兜底话术需要随政策更新持续维护。