Skip to content

SigmaMind-Research/Perplexica_q

 
 

Repository files navigation

🚀 PotatoAI - An AI-powered search engine 🔎

Table of Contents

Overview

PotatoAI is an open-source AI-powered searching tool or an AI-powered search engine that goes deep into the internet to find answers. Inspired by Perplexity AI, it's an open-source option that not just searches the web but understands your questions. It uses advanced machine learning algorithms like similarity searching and embeddings to refine results and provides clear answers with sources cited.

Using SearxNG to stay current and fully open source, PotatoAI ensures you always get the most up-to-date information without compromising your privacy.

Want to know more about its architecture and how it works? You can read it here.

Features

  • Local LLMs: You can make use local LLMs such as Llama3 and Mixtral using Ollama.
  • Two Main Modes:
    • Copilot Mode: (In development) Boosts search by generating different queries to find more relevant internet sources. Like normal search instead of just using the context by SearxNG, it visits the top matches and tries to find relevant sources to the user's query directly from the page.
    • Normal Mode: Processes your query and performs a web search.
  • Focus Modes: Special modes to better answer specific types of questions. PotatoAI currently has 6 focus modes:
    • All Mode: Searches the entire web to find the best results.
    • Writing Assistant Mode: Helpful for writing tasks that does not require searching the web.
    • Academic Search Mode: Finds articles and papers, ideal for academic research.
    • YouTube Search Mode: Finds YouTube videos based on the search query.
    • Wolfram Alpha Search Mode: Answers queries that need calculations or data analysis using Wolfram Alpha.
    • Reddit Search Mode: Searches Reddit for discussions and opinions related to the query.
  • Current Information: Some search tools might give you outdated info because they use data from crawling bots and convert them into embeddings and store them in a index. Unlike them, PotatoAI uses SearxNG, a metasearch engine to get the results and rerank and get the most relevant source out of it, ensuring you always get the latest information without the overhead of daily data updates.
  • API: Integrate PotatoAI into your existing applications and make use of its capibilities.

It has many more features like image and video search. Some of the planned features are mentioned in upcoming features.

Installation

There are mainly 2 ways of installing PotatoAI - With Docker, Without Docker. Using Docker is highly recommended.

you need only fill in the following fields:

  • OPENAI: Your OpenAI API key. You only need to fill this if you wish to use OpenAI's models.

  • OLLAMA: Your Ollama API URL. You should enter it as http://host.docker.internal:PORT_NUMBER. If you installed Ollama on port 11434, use http://host.docker.internal:11434. For other ports, adjust accordingly. You need to fill this if you wish to use Ollama's models instead of OpenAI's.

  • GROQ: Your Groq API key. You only need to fill this if you wish to use Groq's hosted models.

  • ANTHROPIC: Your Anthropic API key. You only need to fill this if you wish to use Anthropic models.

    Note: You can change these after starting PotatoAI from the settings dialog.

  • SIMILARITY_MEASURE: The similarity measure to use (This is filled by default; you can leave it as is if you are unsure about it.)

  1. Ensure you are in the directory containing the docker-compose.yaml file and execute:

    docker compose up -d
  2. Wait a few minutes for the setup to complete. You can access PotatoAI at http://localhost:3000 in your web browser.

Note: After the containers are built, you can start PotatoAI directly from Docker without having to open a terminal.

Non-Docker Installation

  1. Install SearXNG and allow JSON format in the SearXNG settings.
  2. Clone the repository and rename the sample.config.toml file to config.toml in the root directory. Ensure you complete all required fields in this file.
  3. Rename the .env.example file to .env in the ui folder and fill in all necessary fields.
  4. After populating the configuration and environment files, run npm i in both the ui folder and the root directory.
  5. Install the dependencies and then execute npm run build in both the ui folder and the root directory.
  6. Finally, start both the frontend and the backend by running npm run start in both the ui folder and the root directory.

Note: Using Docker is recommended as it simplifies the setup process, especially for managing environment variables and dependencies.

Ollama Connection Errors

If you're encountering an Ollama connection error, it is likely due to the backend being unable to connect to Ollama's API. To fix this issue you can:

  1. Check your Ollama API URL: Ensure that the API URL is correctly set in the settings menu.

  2. Update API URL Based on OS:

    • Windows: Use http://host.docker.internal:11434
    • Mac: Use http://host.docker.internal:11434
    • Linux: Use http://<private_ip_of_host>:11434

    Adjust the port number if you're using a different one.

  3. Linux Users - Expose Ollama to Network:

    • Inside /etc/systemd/system/ollama.service, you need to add Environment="OLLAMA_HOST=0.0.0.0". Then restart Ollama by systemctl restart ollama. For more information see Ollama docs

    • Ensure that the port (default is 11434) is not blocked by your firewall.

Using as a Search Engine

If you wish to use PotatoAI as an alternative to traditional search engines like Google or Bing, or if you want to add a shortcut for quick access from your browser's search bar, follow these steps:

  1. Open your browser's settings.
  2. Navigate to the 'Search Engines' section.
  3. Add a new site search with the following URL: http://localhost:3000/?q=%s. Replace localhost with your IP address or domain name, and 3000 with the port number if PotatoAI is not hosted locally.
  4. Click the add button. Now, you can use PotatoAI directly from your browser's search bar.

Using PotatoAI's API

PotatoAI also provides an API for developers looking to integrate its powerful search engine into their own applications. You can run searches, use multiple models and get answers to your queries.

Expose PotatoAI to network

You can access PotatoAI over your home network by following our networking guide.

One-Click Deployment

Deploy to RepoCloud

Upcoming Features

  • Add settings page
  • Adding support for local LLMs
  • History Saving features
  • Introducing various Focus Modes
  • Adding API support
  • Adding Discover
  • Finalizing Copilot Mode

About

An AI-powered search engine.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • TypeScript 99.3%
  • Other 0.7%