AI搜索自建指南:从服务器到上线,一次部署搞定
AI搜索 部署完整教程|一键部署
随着大模型能力的快速发展,传统搜索正在从“关键词匹配”逐步升级为“语义理解 + 智能问答 + 资料溯源”的 AI 搜索形态。相比普通搜索引擎,AI 搜索不仅能帮用户找到相关内容,还可以对检索结果进行总结、归纳、对比,并给出更接近自然语言问答体验的答案。
本文将围绕“AI 搜索一键部署”展开,带你从环境准备、项目选择、Docker 部署、模型配置、搜索引擎接入、反向代理、域名访问、安全优化到常见问题排查,完整搭建一个可用的 AI 搜索服务。
适合人群:
- 想自建 AI 搜索网站的个人用户
- 想在服务器上部署智能搜索服务的开发者
- 想给企业内部文档、知识库、网页搜索增加 AI 问答能力的团队
- 熟悉基础 Linux 命令,希望快速上线 AI 应用的站长
一、什么是 AI 搜索?
AI 搜索可以简单理解为:
搜索引擎负责“找资料”,AI 大模型负责“读资料、理解资料、总结资料”。
传统搜索的流程通常是:
- 用户输入关键词;
- 搜索引擎返回网页列表;
- 用户逐个打开网页;
- 用户自己阅读、筛选、整理答案。
而 AI 搜索的流程则是:
- 用户输入自然语言问题;
- 系统调用搜索引擎或知识库进行检索;
- 系统抓取或读取相关内容;
- 大模型对内容进行理解和总结;
- 输出结构化答案,并附带来源链接。
例如,用户输入:
“2025年适合个人站长使用的开源 AI 搜索工具有哪些?”
AI 搜索不仅会返回若干网页链接,还可以直接整理成表格,列出项目名称、功能特点、部署方式、适合人群、开源地址等内容。
二、AI 搜索常见应用场景
AI 搜索的应用场景非常广,常见包括:
1. 个人 AI 搜索网站
个人可以搭建一个类似 Perplexity、秘塔 AI 搜索、天工 AI 搜索的轻量版搜索网站,用于日常资料查询、学习研究、文章写作辅助等。
2. 企业内部知识库搜索
企业内部通常有大量文档,例如:
- 产品文档;
- 技术文档;
- SOP 流程;
- 项目资料;
- 客服话术;
- 合同模板;
- 培训材料。
通过 AI 搜索,可以让员工直接提问,例如:
“我们公司的报销流程是什么?”
系统自动从内部文档中检索内容,并生成答案。
3. 站内智能搜索
对于内容网站、博客、文档站、知识付费平台,可以使用 AI 搜索替代传统站内搜索,让用户通过自然语言查找内容。
4. 研究与资料整理
AI 搜索尤其适合做资料聚合,例如:
- 学术资料检索;
- 行业报告整理;
- 新闻追踪;
- 产品竞品分析;
- 法规政策查询。
三、部署方案选择
目前自建 AI 搜索主要有几种方案:
| 方案 | 特点 | 适合人群 |
|---|---|---|
| Docker 一键部署 | 部署简单,环境隔离好 | 推荐大多数用户 |
| 源码部署 | 可定制性强,但配置复杂 | 开发者 |
| 云平台部署 | 省心,但依赖平台 | 非技术用户 |
| 本地部署 | 隐私好,但性能受限 | 个人测试 |
本文重点介绍最推荐的方式:Docker Compose 一键部署。
Docker 的优势是:
- 不污染系统环境;
- 依赖统一;
- 迁移方便;
- 升级简单;
- 适合生产环境;
- 一条命令即可启动多个服务。
四、服务器配置建议
部署 AI 搜索不一定需要很高配置,具体取决于你是否本地运行大模型。
1. 使用在线大模型 API
如果你使用 OpenAI、通义千问、DeepSeek、智谱、Moonshot、火山方舟等在线 API,服务器只负责运行 Web 服务和搜索服务,配置要求较低。
推荐配置:
CPU:2核及以上
内存:2GB 及以上
硬盘:20GB 及以上
系统:Ubuntu 22.04 / Debian 12 / CentOS Stream
带宽:5Mbps 及以上
2. 本地运行大模型
如果希望完全离线运行大模型,则配置要求明显更高。
推荐配置:
CPU:8核及以上
内存:16GB 及以上
显卡:建议 NVIDIA GPU,显存 8GB 以上
硬盘:100GB 及以上
对于大多数用户,建议先使用在线 API,部署成本更低,体验更稳定。
五、准备工作
在开始部署之前,你需要准备以下内容:
- 一台 Linux 服务器;
- 一个域名,可选;
- 一个大模型 API Key;
- 一个搜索引擎 API 或自建搜索源;
- 基础 SSH 登录能力。
本文以 Ubuntu 22.04 为例进行演示。
六、更新系统环境
首先登录服务器:
ssh root@你的服务器IP
更新系统软件包:
apt update && apt upgrade -y
安装常用工具:
apt install -y curl wget git vim unzip ca-certificates gnupg lsb-release
设置服务器时区:
timedatectl set-timezone Asia/Shanghai
查看时间是否正确:
date
七、安装 Docker
如果服务器尚未安装 Docker,可以使用官方脚本快速安装:
curl -fsSL https://get.docker.com | bash
启动 Docker:
systemctl enable docker
systemctl start docker
查看 Docker 版本:
docker -v
如果能够正常输出版本号,说明 Docker 安装成功。
八、安装 Docker Compose
新版本 Docker 通常已经内置 Compose 插件,可以执行:
docker compose version
如果正常显示版本信息,则无需额外安装。
如果没有安装,可以执行:
apt install -y docker-compose-plugin
再次验证:
docker compose version
九、创建 AI 搜索项目目录
为了方便管理,建议所有服务都放在 /opt 目录下。
mkdir -p /opt/ai-search
cd /opt/ai-search
接下来我们会创建一个 docker-compose.yml 文件,用于一键启动 AI 搜索相关服务。
十、AI 搜索架构说明
一个典型的 AI 搜索系统通常包含以下模块:
用户浏览器
↓
前端 Web 界面
↓
后端 API 服务
↓
搜索服务 / 搜索 API
↓
网页内容抓取与解析
↓
大模型总结与生成
↓
返回答案和引用来源
如果要支持私有知识库,还可以额外加入:
文档上传
↓
文本切分
↓
向量化 Embedding
↓
向量数据库
↓
语义检索
本文提供的是通用部署思路,你可以根据实际项目替换具体镜像。
十一、编写 Docker Compose 配置
下面是一个常见的 AI 搜索服务部署模板,包含 Web 服务、Redis 缓存、PostgreSQL 数据库以及可选的向量数据库 Qdrant。
新建配置文件:
vim docker-compose.yml
写入以下内容:
version: "3.9"
services:
ai-search:
image: your-ai-search-image:latest
container_name: ai-search
restart: always
ports:
- "3000:3000"
environment:
# 基础配置
- NODE_ENV=production
- APP_PORT=3000
- APP_NAME=AI Search
# 数据库配置
- DATABASE_URL=postgresql://aisearch:aisearch_password@postgres:5432/aisearch
# Redis 配置
- REDIS_URL=redis://redis:6379
# 大模型配置
- LLM_PROVIDER=openai
- OPENAI_API_KEY=你的OpenAI_API_KEY
- OPENAI_BASE_URL=https://api.openai.com/v1
- LLM_MODEL=gpt-4o-mini
# 搜索配置
- SEARCH_PROVIDER=searxng
- SEARCH_API_URL=http://searxng:8080/search
# 向量数据库,可选
- VECTOR_DB=qdrant
- QDRANT_URL=http://qdrant:6333
depends_on:
- postgres
- redis
- searxng
- qdrant
postgres:
image: postgres:16
container_name: ai-search-postgres
restart: always
environment:
- POSTGRES_USER=aisearch
- POSTGRES_PASSWORD=aisearch_password
- POSTGRES_DB=aisearch
volumes:
- ./data/postgres:/var/lib/postgresql/data
redis:
image: redis:7
container_name: ai-search-redis
restart: always
volumes:
- ./data/redis:/data
qdrant:
image: qdrant/qdrant:latest
container_name: ai-search-qdrant
restart: always
ports:
- "6333:6333"
volumes:
- ./data/qdrant:/qdrant/storage
searxng:
image: searxng/searxng:latest
container_name: ai-search-searxng
restart: always
ports:
- "8080:8080"
volumes:
- ./data/searxng:/etc/searxng
注意:
your-ai-search-image:latest需要替换成你实际使用的 AI 搜索项目镜像。不同开源项目的环境变量名称可能不同,请以项目官方文档为准。
十二、推荐可选开源项目
你可以根据需求选择不同的 AI 搜索项目:
1. Perplexica
Perplexica 是一个开源 AI 搜索引擎,功能类似 Perplexity,支持联网搜索、结果引用、多个模型配置等。
适合:
- 个人 AI 搜索;
- 类 Perplexity 应用;
- 自建搜索问答网站。
2. Open WebUI + SearXNG
Open WebUI 本身是一个大模型 Web 界面,搭配 SearXNG 可以实现联网搜索能力。
适合:
- 个人大模型入口;
- 多模型管理;
- 联网问答;
- 局域网内部使用。
3. Dify
Dify 是一个 LLM 应用开发平台,支持工作流、知识库、RAG、API 发布等能力。
适合:
- 企业知识库问答;
- 内部搜索助手;
- 文档问答;
- 工作流应用。
4. AnythingLLM
AnythingLLM 更偏向知识库和文档问答,支持多种模型和向量数据库。
适合:
- 本地文档问答;
- 团队知识库;
- 私有化部署。
如果你的目标是“AI 搜索网站”,可以优先考虑 Perplexica 或 Open WebUI + SearXNG。
如果你的目标是“企业知识库搜索”,可以优先考虑 Dify 或 AnythingLLM。
十三、配置大模型 API
AI 搜索最关键的是大模型配置。常见配置项包括:
LLM_PROVIDER=openai
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
OPENAI_BASE_URL=https://api.openai.com/v1
LLM_MODEL=gpt-4o-mini
如果你使用兼容 OpenAI API 格式的服务,例如 DeepSeek、通义千问、智谱、Moonshot 等,通常只需要修改 BASE_URL 和 MODEL。
例如 DeepSeek:
LLM_PROVIDER=openai
OPENAI_API_KEY=你的DeepSeek_API_KEY
OPENAI_BASE_URL=https://api.deepseek.com
LLM_MODEL=deepseek-chat
例如通义千问兼容模式:
LLM_PROVIDER=openai
OPENAI_API_KEY=你的DashScope_API_KEY
OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
LLM_MODEL=qwen-plus
配置时需要注意:
- API Key 不要泄露;
- 不要把
.env文件提交到公开仓库; - 生产环境建议限制 API Key 使用额度;
- 优先选择响应速度快、上下文窗口足够的模型;
- 对成本敏感时可选择轻量模型。
十四、配置搜索服务 SearXNG
SearXNG 是一个开源的元搜索引擎,可以聚合多个搜索来源。它的优点是:
- 开源免费;
- 可自建;
- 支持多个搜索源;
- 不强依赖商业搜索 API;
- 隐私相对更好。
如果使用 Docker Compose 启动,SearXNG 默认会运行在:
http://服务器IP:8080
在 AI 搜索服务内部访问时,地址通常是:
http://searxng:8080
如果你的 AI 搜索项目需要配置搜索接口,可以填写:
SEARCH_API_URL=http://searxng:8080/search
部分项目需要返回 JSON 格式,可以使用类似参数:
http://searxng:8080/search?q=关键词&format=json
为了提高搜索质量,你可以编辑 SearXNG 配置文件,开启或关闭不同搜索引擎。配置文件通常位于:
/opt/ai-search/data/searxng/settings.yml
常见调整项包括:
search:
safe_search: 0
autocomplete: ""
default_lang: "zh-CN"
server:
secret_key: "请替换为随机字符串"
修改后重启服务:
docker compose restart searxng
十五、启动 AI 搜索服务
配置完成后,在项目目录执行:
cd /opt/ai-search
docker compose up -d
查看容器状态:
docker compose ps
如果所有容器都显示 Up,说明服务已启动。
查看日志:
docker compose logs -f ai-search
如果没有明显报错,可以在浏览器访问:
http://你的服务器IP:3000
如果能正常打开页面,说明 AI 搜索部署成功。
十六、配置防火墙
如果服务器开启了防火墙,需要放行相关端口。
以 UFW 为例:
ufw allow 22
ufw allow 80
ufw allow 443
ufw allow 3000
ufw allow 8080
ufw enable
如果你使用云服务器,还需要在云厂商安全组中放行端口。
不过在生产环境中,不建议直接暴露 3000、8080、6333 等服务端口,最好只开放 80 和 443,通过 Nginx 进行反向代理。
十七、使用 Nginx 配置域名访问
安装 Nginx:
apt install -y nginx
创建站点配置:
vim /etc/nginx/conf.d/ai-search.conf
写入:
server {
listen 80;
server_name search.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
将 search.example.com 替换为你的真实域名。
检查 Nginx 配置:
nginx -t
重载 Nginx:
systemctl reload nginx
然后将域名解析到服务器 IP,即可通过域名访问。
十八、配置 HTTPS 证书
推荐使用 Certbot 自动申请免费 SSL 证书。
安装 Certbot:
apt install -y certbot python3-certbot-nginx
申请证书:
certbot --nginx -d search.example.com
根据提示选择自动跳转 HTTPS。
证书申请成功后,访问:
https://search.example.com
测试自动续期:
certbot renew --dry-run
十九、隐藏内部服务端口
生产环境建议不要暴露数据库、Redis、向量数据库、SearXNG 后台等端口。
可以将 docker-compose.yml 中不需要公网访问的端口去掉,例如:
qdrant:
image: qdrant/qdrant:latest
container_name: ai-search-qdrant
restart: always
volumes:
- ./data/qdrant:/qdrant/storage
如果服务之间都在 Docker 网络内部通信,就不需要把端口映射到宿主机。
最终只需要 Nginx 对外开放:
80
443
这样安全性更高。
二十、数据持久化与备份
部署 AI 搜索时,数据持久化非常重要。需要重点备份:
- 数据库数据;
- 用户配置;
- 上传文档;
- 向量数据库;
- SearXNG 配置;
.env配置文件;- Docker Compose 文件。
可以创建备份脚本:
vim /opt/ai-search/backup.sh
写入:
#!/bin/bash
BACKUP_DIR="/opt/backups/ai-search"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/ai-search-$DATE.tar.gz /opt/ai-search
find $BACKUP_DIR -type f -name "*.tar.gz" -mtime +7 -delete
echo "Backup completed: ai-search-$DATE.tar.gz"
赋予执行权限:
chmod +x /opt/ai-search/backup.sh
手动执行:
/opt/ai-search/backup.sh
添加定时任务:
crontab -e
加入:
0 3 * * * /opt/ai-search/backup.sh
表示每天凌晨 3 点自动备份。
二十一、升级 AI 搜索服务
如果使用 Docker 部署,升级通常比较简单:
cd /opt/ai-search
docker compose pull
docker compose down
docker compose up -d
升级前建议先备份:
/opt/ai-search/backup.sh
如果项目有数据库迁移步骤,请按照官方文档执行。
升级后查看日志:
docker compose logs -f
确认没有异常后再正式使用。
二十二、性能优化建议
AI 搜索的体验主要受以下因素影响:
- 搜索源响应速度;
- 网页抓取速度;
- 大模型响应速度;
- Token 数量;
- 并发请求数量;
- 服务器网络质量。
优化建议如下:
1. 选择速度快的大模型
如果你追求响应速度,可以选择轻量模型,例如:
- gpt-4o-mini;
- deepseek-chat;
- qwen-plus;
- glm-4-flash;
- moonshot-v1-8k。
2. 控制检索结果数量
并不是搜索结果越多越好。一般建议每次取前 5 到 10 条结果即可。过多结果会增加抓取时间和模型成本。
3. 开启缓存
对于重复问题,可以将搜索结果和 AI 答案缓存到 Redis 中,减少重复请求。
4. 限制网页正文长度
网页内容过长会增加 Token 消耗。可以在抓取阶段截断正文,例如只取前 5000 到 10000 字符。
5. 使用流式输出
流式输出可以让用户更快看到答案,提升体验。
二十三、安全优化建议
部署到公网后,一定要重视安全问题。
1. 设置登录认证
如果是个人使用,建议开启账号登录,不要让任何人都能调用你的模型 API。
2. 限制访问频率
可以通过 Nginx 或应用层限制频率,避免被刷接口。
Nginx 示例:
limit_req_zone $binary_remote_addr zone=ai_search_limit:10m rate=10r/m;
server {
listen 80;
server_name search.example.com;
location / {
limit_req zone=ai_search_limit burst=20 nodelay;
proxy_pass http://127.0.0.1:3000;
}
}
3. 保护 API Key
不要在前端暴露 API Key。API Key 应只保存在后端环境变量中。
4. 禁止数据库公网访问
PostgreSQL、Redis、Qdrant 等服务不要直接暴露公网端口。
5. 定期更新镜像
定期执行:
docker compose pull
docker compose up -d
保持服务版本较新,降低安全风险。
二十四、常见问题排查
1. 页面打不开
检查容器是否启动:
docker compose ps
检查端口是否监听:
ss -tulnp | grep 3000
查看日志:
docker compose logs -f ai-search
2. AI 无法回答
通常可能是:
- API Key 错误;
- 模型名称错误;
- API Base URL 配置错误;
- 余额不足;
- 网络无法访问模型服务。
可以进入容器测试网络:
docker exec -it ai-search sh
curl https://api.openai.com/v1/models
3. 搜索没有结果
可能原因:
- SearXNG 未启动;
- 搜索接口地址配置错误;
- SearXNG 被搜索源限制;
- 网络环境无法访问搜索引擎;
- 返回格式不是项目要求的 JSON。
查看 SearXNG 日志:
docker compose logs -f searxng
4. 回答很慢
可以尝试:
- 更换更快的模型;
- 减少搜索结果数量;
- 关闭不必要的搜索源;
- 开启缓存;
- 使用更高带宽服务器;
- 缩短网页正文抓取长度。
5. HTTPS 证书申请失败
检查:
- 域名是否正确解析到服务器;
- 80 端口是否开放;
- Nginx 配置是否正确;
- 云服务器安全组是否放行;
- 是否有其他服务占用 80 端口。
二十五、一键部署脚本示例
如果你希望进一步简化部署,可以写一个一键部署脚本。
创建脚本:
vim install-ai-search.sh
写入:
#!/bin/bash
set -e
echo "开始安装基础依赖..."
apt update && apt install -y curl wget git vim unzip ca-certificates gnupg lsb-release nginx
echo "安装 Docker..."
if ! command -v docker >/dev/null 2>&1; then
curl -fsSL https://get.docker.com | bash
systemctl enable docker
systemctl start docker
else
echo "Docker 已安装,跳过。"
fi
echo "创建项目目录..."
mkdir -p /opt/ai-search
cd /opt/ai-search
echo "生成 docker-compose.yml..."
cat > docker-compose.yml <<'EOF'
version: "3.9"
services:
ai-search:
image: your-ai-search-image:latest
container_name: ai-search
restart: always
ports:
- "3000:3000"
environment:
- NODE_ENV=production
- APP_PORT=3000
- DATABASE_URL=postgresql://aisearch:aisearch_password@postgres:5432/aisearch
- REDIS_URL=redis://redis:6379
- LLM_PROVIDER=openai
- OPENAI_API_KEY=请替换为你的API_KEY
- OPENAI_BASE_URL=https://api.openai.com/v1
- LLM_MODEL=gpt-4o-mini
- SEARCH_PROVIDER=searxng
- SEARCH_API_URL=http://searxng:8080/search
depends_on:
- postgres
- redis
- searxng
postgres:
image: postgres:16
container_name: ai-search-postgres
restart: always
environment:
- POSTGRES_USER=aisearch
- POSTGRES_PASSWORD=aisearch_password
- POSTGRES_DB=aisearch
volumes:
- ./data/postgres:/var/lib/postgresql/data
redis:
image: redis:7
container_name: ai-search-redis
restart: always
volumes:
- ./data/redis:/data
searxng:
image: searxng/searxng:latest
container_name: ai-search-searxng
restart: always
volumes:
- ./data/searxng:/etc/searxng
EOF
echo "启动服务..."
docker compose up -d
echo "部署完成!"
echo "请访问:http://服务器IP:3000"
echo "注意:请修改 /opt/ai-search/docker-compose.yml 中的镜像名称和 API Key。"
赋予执行权限:
chmod +x install-ai-search.sh
执行部署:
bash install-ai-search.sh
这个脚本会自动完成:
- 安装基础依赖;
- 安装 Docker;
- 创建项目目录;
- 生成 Docker Compose 文件;
- 启动 AI 搜索服务。
不过需要注意,脚本中的镜像名称和 API Key 仍然需要你根据实际项目修改。
二十六、部署完成后的测试方法
部署完成后,可以用以下问题测试效果:
最近有哪些热门的开源 AI 搜索项目?
请对比 Perplexica、Dify 和 Open WebUI 的区别。
2025年个人开发者如何低成本部署 AI 搜索?
什么是 RAG?它和普通搜索有什么区别?
一个合格的 AI 搜索系统应该具备:
- 能够联网检索;
- 能够总结答案;
- 能够附带来源;
- 回答逻辑清晰;
- 不胡乱编造;
- 响应速度可接受;
- 对中文问题支持良好。
二十七、生产环境上线清单
正式上线前,建议检查以下事项:
- [ ] Docker 服务正常启动;
- [ ] AI 搜索页面可访问;
- [ ] 大模型 API Key 可用;
- [ ] 搜索服务正常返回结果;
- [ ] 数据库已持久化;
- [ ] 已配置域名;
- [ ] 已开启 HTTPS;
- [ ] 已关闭不必要的公网端口;
- [ ] 已设置登录认证;
- [ ] 已配置访问频率限制;
- [ ] 已设置自动备份;
- [ ] 已记录部署文档;
- [ ] 已测试恢复流程。
二十八、总结
AI 搜索是大模型落地中非常实用的方向之一。它将传统搜索引擎的资料检索能力与大模型的理解、总结、推理能力结合起来,让用户不再只是面对一堆链接,而是能够直接获得更清晰、更结构化、更接近答案本身的内容。
通过本文的教程,我们完成了从服务器准备、Docker 安装、Docker Compose 编排、AI 搜索服务配置、大模型 API 接入、SearXNG 搜索源配置、Nginx 反向代理、HTTPS 证书、安全加固、备份升级到常见问题排查的一整套部署流程。
如果你只是个人使用,建议优先采用:
AI 搜索项目 + 在线大模型 API + SearXNG + Docker Compose
如果你是企业内部使用,可以进一步加入:
知识库上传 + 向量数据库 + 权限管理 + 日志审计 + 私有模型
总体来说,一键部署只是第一步,真正影响体验的是模型选择、搜索质量、内容抓取、提示词设计和系统稳定性。建议在部署完成后,根据自己的实际场景持续优化搜索源、模型参数和回答格式,最终打造一个真正好用的 AI 搜索助手。