Skip to content

Latest commit

 

History

History
245 lines (183 loc) · 6.82 KB

README_CN.md

File metadata and controls

245 lines (183 loc) · 6.82 KB

Search with AI

English 中文

更新时间: 2024/05/27

基于AI大语言模型的对话式搜索引擎的一个基本实现,基于Node.js&Vue3。适合小白入门AI开发参考:),文档后有交流群二维码。 Live Demo

仓库地址:GitHub仓库Gitee仓库

功能说明

  • 内置主流的LLM接口支持,如OpenAI、Google、通译千问、百度文心一言、Lepton、DeepSeek。
  • 内置搜索引擎支持,如Bing、Sogou、Google、SearXNG(免费开源)。
  • 简洁的搜索对话Web界面。
  • Web界面支持暗色模式。
  • Web界面支持移动端。
  • 支持搜索引擎切换、AI模型切换。
  • 支持本地大模型(基于Ollama)。
  • 支持多语言(i18n)。
  • 支持根据结果上下文继续问答。
  • 支持缓存结果、强制重新生成结果。
  • 支持图片搜索(update date: 2024/05/27)。

使用 Docker 一键安装部署

文档后面有微信群二维码,有疑问也可以加入群交流。

安装Docker.

  • 克隆仓库
git clone https://github.com/yokingma/search_with_ai.git
cd search_with_ai

如果你想一键快速体验,这里不需要修改任何配置,直接运行下面的docker compose即可。

...
# openai KEY, docker compose 默认带了FreeGPT35,如果你没有自己的Key, 这里保持默认
OPENAI_KEY=freegpt35
# openai proxy
OPENAI_PROXY_URL=http://freegpt35:3040/v1
...
# 如果需要在docker中访问本地部署的Ollama, 你可能不用改变这个变量。
OLLAMA_HOST=http://host.docker.internal:11434

# docker compose 默认带了SearXNG免费聚合搜索, 默认不需要修改
SEARXNG_HOSTNAME=http://searxng:8080
  • 运行docker-compose. (不需要任何KYE)

默认包含了 SearXNG 和 FreeGPT3.5,只需要运行:

前提是确保你的网络环境能访问Google&OpenAI

docker compose up -d
  • 或者你也可以选择手动构建和运行(可选的
docker build -t my_image .
docker run -d -p 3000:3000 --name my_app my_image

浏览器访问 http://localhost:3000

  • 更新
  1. 运行 git pull (注意保存你的.env设置)

  2. 删除所有旧的容器和镜像

  3. 执行 docker compose down

  4. 执行 docker compose up -d

大模型支持

基于在线大模型的API(需要Key)

  • OpenAI ChatGPT
  • Google Gemini
  • Lepton LLama2、Mixtral8*7B
  • 阿里云通译千问
  • 百度文心一言
  • 零一万物
  • 月之暗面(Kimi)
  • DeepSeek
  • ChatGLM
  • 腾讯混元
  • Ollama

本地大模型支持(无需Key)

支持Ollama运行的本地大模型。运行的时候只需要启动ollama即可。

搜索引擎配置

内置了搜索引擎服务:Bing、Sogou、Google、SearXNG。

SearXNG (免费开源,不需要KEY)

安装 SearXNG ,推荐用Docker部署 searxng-docker

SearXNG 是一款免费的互联网元搜索引擎,它集合了来自多个搜索服务和数据库的结果。该服务不会追踪或构建其用户档案,为寻求在线匿名性的用户提供保护。此外,SearXNG 还可通过 Tor 网络来实现在线匿名访问。

安装 SearXNG 时,默认情况下唯一处于激活状态的输出格式是 HTML 格式。若要使用 API,您需要启用 json 格式。可以通过在 settings.yml 文件中添加以下行来实现:

search:
    formats:
        - html
        - json

并且需要设置limiter为false:

server:
   limiter: false # default is true

也可以设置SEARXNG_HOSTNAME (编辑.env文件):

# SEARXNG_HOSTNAME=<host>

Bing搜索

如果要使用必应搜索,需要注册并订阅Bing搜索服务,获取必应订阅密钥(key)。

Bing搜索接口是收费的,但是每月有1000次免费调用额度。

Google搜索

如果要使用谷歌搜索引擎, 需要注册谷歌搜索API服务,每天有100次免费搜索额度。

Sogou搜索

内置的Sogou搜索并非直接调用API实现(似乎没有开放的API),只是通过网页搜索获取搜索结果。

内置的Sogou搜索优点是免费的,但是会触发人机验证,遇到不返回参考资料的情况可以手动打开sogou.com随便搜索关键词,根据提示手动验证一下解除。

普通安装部署

需要:

Node.js >= 18

国内用户推荐使用阿里云通译千问大模型,在阿里云模型服务灵积注册可以获取密钥(key),通译千问部分API使用是免费的(qwen-max、qwen-max-1201、qwen-max-longcontext),除了longcontext模型其他限制是60次请求/分钟。

  • 服务端
yarn install && yarn run build
  • 前端页面
cd web && yarn install && yarn run build
  • 配置 (.env)
# Bing search key
BING_SEARCH_KEY=
# Google search key
GOOGLE_SEARCH_KEY=
GOOGLE_SEARCH_ID=
# aliyun key
ALIYUN_KEY=
# Yi Key
YI_KEY=
# google gemini
GOOGLE_KEY=
GOOGLE_PROXY_URL=
# baidu
BAIDU_KEY=
BAIDU_SECRET=
# tencent KEY:ID, SECRET:KEY
TENCENT_KEY=
TENCENT_SECRET=
# openai key
OPENAI_KEY=freeduckduckgo
# openai proxy, default is for docker-compose, could modify if you need.
OPENAI_PROXY_URL=http://freeduckduckgo:3456/v1
# deepseek
DEEPSEEK_KEY=#your_key
# chatglm
GLM_KEY=#your_key
# moonshot
MOONSHOT_KEY=
# lepthon key
LEPTON_KEY=
# Local llm: Ollama hostname, could modify if you need.
OLLAMA_HOST=http://host.docker.internal:11434
# Searxng hostname, could modify if you need.
SEARXNG_HOSTNAME=http://searxng:8080
# The count of resources referenced
REFERENCE_COUNT=8
# Whitelist domains, eg. isou.chat,example.org, skip if empty.
WHITELIST_DOMAINS=
# Server Port
PORT=3000
# SearXNG query options, safesearch: Filter search results,  0: None 1: Moderate 2: Strict.
SEARXNG_SAFE=0
# SearXNG query options, language: default is 'all', eg. all/zh/en/en-US/de/it-IT/fr..., this setting has the highest priority.
SEARXNG_LANGUAGE=
# document: https://docs.searxng.org/user/configured_engines.html
SEARXNG_ENGINES=bing,google
SEARXNG_IMAGES_ENGINES=bing
# enable cache, 1 enable, 0 disable
CACHE_ENABLE=1
  • 启动 在项目根目录中执行:
yarn run start 
  • 更新 在项目根目录执行
git pull
yarn install
cd web && yarn install && yarn run build

启动成功后可以在浏览器打开http://localhost:3000 即可使用。