Skip to content

Latest commit

 

History

History
194 lines (139 loc) · 5.66 KB

README.md

File metadata and controls

194 lines (139 loc) · 5.66 KB

Search with AI


Build your conversation-based search with AI, a simple implementation with Node.js & Vue3.

Live Demo

Github Stars License Report a bug Ask a question

English | 中文 | 日本語

Repositories: GitHub Gitee CNB

Features

  • Built-in support for LLM: OpenAI, Google, Lepton, DeepSeek(R1), SiliconFlow, AliYun, Baidu, ChatGLM, Moonshot, Tencent, Lepton, Yi and more.
  • Support Ollama, LMStudio
  • Built-in support for search engine: Bing, Google, SearXNG
  • Customizable pretty UI interface
  • Support light&dark mode/mobile
  • Support i18n
  • Support Continue Q&A with contexts.
  • Support Cache results, Force reload.
  • Support images search.
  • Support full web content extraction, based on Jina Reader URL.

Deploy with Docker (recommended)

Install Docker.

docker pull docker.cnb.cool/aigc/aisearch

1.Get the code.

git clone https://github.com/yokingma/search_with_ai.git
cd search_with_ai

2.Edit .env.docker file. in deploy directory.

After modifying the .env.docker file, restart the Docker container to apply changes.

You must set at least one KEY.

...
# OpenAI's key
OPENAI_KEY=#your key

# Searxng hostname.
SEARXNG_HOSTNAME=http://searxng:8080

3.Edit model.json file. [Optional]

{
  "provider": "openai",
  "type": "openai",
  // change baseURL, support oneAPI
  "baseURL": "https://api.openai.com/v1",
  // add your models
  "models": ["o1-preview", "o1-mini", "gpt-4o", "gpt-4o-mini"]
}

4.Run with Docker Compose.

docker compose up -d

Then visit http://localhost:3000

5.Update

  • Delete old images using Docker Desktop or Docker CLI (if needed)
  • Run docker compose down
  • Run docker compose up -d

Search Engine

Built-in support for search engine: Bing, Google, SearXNG

SearXNG (Free, No Key required)

Install SearXNG with searxng-docker

SearXNG is a free internet metasearch engine which aggregates results from various search services and databases. The service does not track or profile its users, providing online anonymity for those who seek it. Additionally, SearXNG can be used over Tor for online anonymity.

When you install SearxNG, the only active output format by default is the HTML format. You need to activate the json format to use the API. This can be done by adding the following line to the settings.yml file:

search:
    formats:
        - html
        - json

And set limiter to false:

server:
   limiter: false # default is true

You can also set the host in .env:

# SEARXNG_HOSTNAME=<host>

Bing Search

To use the Bing Web Search API, please visit this link to obtain your Bing subscription key.

The Bing Search API is billed, but has a free tier of 1000 calls per month.

Google Search

You have three options for Google Search: you can use the SearchApi Google Search API from SearchApi, Serper Google Search API from Serper, or opt for the Programmable Search Engine provided by Google.

ChatGLM Web Search

[2024/09/17] Added Zhipu AI's ChatGLM Web Search plugin, used as a Chinese search engine.

Zhipu AI's glm-flash is currently free, and its Web Search plugin is also free. Based on these two, ChatGLM has been added as a free Chinese search engine.

Jina Reader URL API

[2024/11/24] Added Jina Reader URL API, supporting full web content extraction. When selecting the [Research] mode on the web page, the Jina API will be called to extract the full content of the web page as context for the AI. You need to configure JINA_KEY:

# JINA API KEY
JINA_KEY=#your key

Deploy & Development

Node.js >= 20 Turborepo PackageManager: [email protected]

  • Directory Structure
apps/
  | server # backend
  | web # frontend
deploy/
  | docker-compose.yaml # docker deployment file
  | .env.docker # backend configuration file
  | model.json # backend model configuration file
  ...
  • Development & Build In the root of the project:
turbo dev
# or
turbo build
  • Update In the root of the project:
git pull

License

This repository's source code is available under the MIT License.

🚀Back to top