SearChat 是一个基于现代 AI 大语言模型的对话式搜索引擎。
🎯 核心特色:
[!IMPORTANT] 为了达到最佳效果,模型必须支持 Tool Call (Function Calling)。
Deep Research 模式通过 AI 驱动的迭代式搜索和分析,为任何主题生成全面深入的研究报告。
如果你想在自己的 Node.js 项目中集成 Deep Research 能力:
npm install deepsearcher
详细文档:DeepResearch NPM 包
model.json 中配置).env.docker 中配置)请参考 deploy/docker-compose.yaml文件。
编辑 docker-compose.yaml 文件,在 search_chat 服务中修改相应的环境变量:
services:
search_chat:
container_name: search_chat
image: docker.cnb.cool/aigc/aisearch:v1.2.0-alpha
environment:
# 服务器配置
- PORT=3000
# 搜索引擎 API Keys (根据需要配置)
- BING_SEARCH_KEY=your_bing_key
- GOOGLE_SEARCH_KEY=your_google_key
- GOOGLE_SEARCH_ID=your_google_cse_id
- TAVILY_KEY=your_tavily_key
- ZHIPU_KEY=your_zhipu_key
- EXA_KEY=your_exa_key
- BOCHA_KEY=your_bocha_key
# 网页内容提取 (可选)
- JINA_KEY=your_jina_key
# SearXNG 配置 (默认已包含,开箱即用)
- SEARXNG_HOSTNAME=http://searxng:8080
- SEARXNG_SAFE=0
- SEARXNG_LANGUAGE=zh
- SEARXNG_ENGINES=bing,google
- SEARXNG_IMAGES_ENGINES=bing,google
# DeepResearch 配置
- DEEP_MAX_RESEARCH_LOOPS=3
- DEEP_NUMBER_OF_INITIAL_QUERIES=3
# 域名白名单 (可选)
- WHITELIST_DOMAINS=
volumes:
- ./model.json:/app/apps/server/dist/model.json
ports:
- "3000:3000"
restart: always
在docker-compose.yaml同级目录下创建&编辑 model.json 文件,配置 AI 模型和 API Keys:
[
{
"provider": "openai",
"type": "openai",
"baseURL": "https://api.openai.com/v1",
"apiKey": "sk-your-openai-api-key",
"models": [
{
"name": "gpt-4o-mini",
"alias": "GPT-4o Mini",
"description": "OpenAI GPT-4o Mini 模型",
"maxTokens": 262144,
"intentAnalysis": true
},
{
"name": "gpt-4o",
"alias": "GPT-4o",
"description": "OpenAI GPT-4o 模型",
"maxTokens": 262144
}
]
},
{
"provider": "anthropic",
"type": "anthropic",
"baseURL": "https://api.anthropic.com/v1",
"apiKey": "sk-your-anthropic-api-key",
"models": [
{
"name": "claude-sonnet-4-5",
"alias": "Claude Sonnet 4.5",
"description": "Anthropic Claude Sonnet 4.5",
"maxTokens": 131072
}
]
}
]
其中设定为 intentAnalysis: true 的模型会被用来进行搜索意图分析、搜索问题重写,建议此处可以设定为较小尺寸的模型以提高回答速度。
配置说明:
provider: 模型提供商名称type: API 类型 (openai/anthropic/google 等)baseURL: API 基础地址apiKey: 你的 API Keymodels: 模型列表,包含名称、别名、描述和最大 Token 数cd deploy
docker compose up -d
打开浏览器访问:http://localhost:3000
# 停止服务
docker compose down
# 拉取最新镜像
docker pull docker.cnb.cool/aigc/searchchat:latest
# 重新启动
docker compose up -d
项目支持多种搜索引擎,可根据需求选择合适的搜索源,推荐使用SearXNG搜索引擎。
优势:完全免费、无需 API Key、聚合多个搜索源、保护隐私
SearXNG 是开源的元搜索引擎,聚合多个搜索服务结果,不追踪用户。Docker 部署已内置,开箱即用。
配置选项:
SEARXNG_ENGINES: 设置搜索引擎 (默认: bing,google)SEARXNG_LANGUAGE: 搜索语言 (zh=中文, en-US=英文, all=全部)SEARXNG_SAFE: 安全搜索级别 (0=关闭, 1=中等, 2=严格)[!重要]
确保激活json格式以使用API。可以通过在searxng/settings.yml文件中添加以下行来完成:
search:
formats:
- html
- json
search_with_ai/ ├── apps/ │ ├── server/ # 后端服务 (Koa + TypeScript) │ │ ├── src/ │ │ │ ├── app.ts # 应用入口 │ │ │ ├── controller.ts # 路由控制器 │ │ │ ├── interface.ts # 类型定义 │ │ │ └── model.json # 模型配置 │ │ └── package.json │ └── web/ # 前端应用 (Vue 3 + TypeScript) │ ├── src/ │ │ ├── pages/ # 页面组件 │ │ ├── stores/ # Pinia 状态管理 │ │ └── components/ # 通用组件 │ └── package.json ├── deploy/ # 部署配置 │ ├── docker-compose.yaml │ ├── .env.docker │ └── model.json └── package.json # 根目录配置
# 克隆项目
git clone https://github.com/sear-chat/SearChat.git
cd SearChat
# 安装依赖 (根目录执行,会自动安装所有子项目依赖)
yarn install
复制并编辑服务端环境配置:
# 复制环境配置模板
cp apps/server/.env apps/server/.env.local
# 编辑配置文件
vim apps/server/.env.local
# 同时启动前后端开发服务器
yarn dev
# 或使用 Turborepo 命令
turbo dev
访问地址:
# 构建所有应用
yarn build
# 或
turbo build
欢迎参与项目贡献!请遵循以下步骤:
git checkout -b feature/amazing-featuregit commit -m 'Add amazing feature'git push origin feature/amazing-feature本项目基于 MIT License 开源协议。
请先添加微信进群

⭐ 如果这个项目对你有帮助,请给个 Star 支持一下!