上一篇 下一篇 分享链接 返回 返回顶部

AI搜索自建指南:从服务器到上线,一次部署搞定

发布人:慈云数据-客服中心 发布时间:16小时前 阅读量:2

AI搜索 部署完整教程|一键部署

随着大模型能力的快速发展,传统搜索正在从“关键词匹配”逐步升级为“语义理解 + 智能问答 + 资料溯源”的 AI 搜索形态。相比普通搜索引擎,AI 搜索不仅能帮用户找到相关内容,还可以对检索结果进行总结、归纳、对比,并给出更接近自然语言问答体验的答案。

本文将围绕“AI 搜索一键部署”展开,带你从环境准备、项目选择、Docker 部署、模型配置、搜索引擎接入、反向代理、域名访问、安全优化到常见问题排查,完整搭建一个可用的 AI 搜索服务。

适合人群:

  • 想自建 AI 搜索网站的个人用户
  • 想在服务器上部署智能搜索服务的开发者
  • 想给企业内部文档、知识库、网页搜索增加 AI 问答能力的团队
  • 熟悉基础 Linux 命令,希望快速上线 AI 应用的站长

一、什么是 AI 搜索?

AI 搜索可以简单理解为:

搜索引擎负责“找资料”,AI 大模型负责“读资料、理解资料、总结资料”。

传统搜索的流程通常是:

  1. 用户输入关键词;
  2. 搜索引擎返回网页列表;
  3. 用户逐个打开网页;
  4. 用户自己阅读、筛选、整理答案。

而 AI 搜索的流程则是:

  1. 用户输入自然语言问题;
  2. 系统调用搜索引擎或知识库进行检索;
  3. 系统抓取或读取相关内容;
  4. 大模型对内容进行理解和总结;
  5. 输出结构化答案,并附带来源链接。

例如,用户输入:

“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,部署成本更低,体验更稳定。


五、准备工作

在开始部署之前,你需要准备以下内容:

  1. 一台 Linux 服务器;
  2. 一个域名,可选;
  3. 一个大模型 API Key;
  4. 一个搜索引擎 API 或自建搜索源;
  5. 基础 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_URLMODEL

例如 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

配置时需要注意:

  1. API Key 不要泄露;
  2. 不要把 .env 文件提交到公开仓库;
  3. 生产环境建议限制 API Key 使用额度;
  4. 优先选择响应速度快、上下文窗口足够的模型;
  5. 对成本敏感时可选择轻量模型。

十四、配置搜索服务 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

如果你使用云服务器,还需要在云厂商安全组中放行端口。

不过在生产环境中,不建议直接暴露 300080806333 等服务端口,最好只开放 80443,通过 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 搜索的体验主要受以下因素影响:

  1. 搜索源响应速度;
  2. 网页抓取速度;
  3. 大模型响应速度;
  4. Token 数量;
  5. 并发请求数量;
  6. 服务器网络质量。

优化建议如下:

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 搜索助手。

目录结构
全文