Git Product home page Git Product logo

secureai-tools's Introduction

SecureAI Tools

Private and secure AI tools for everyone's productivity.

Discord

Highlights

  • Chat with AI: Allows you to chat with AI models (i.e. ChatGPT).
  • Chat with Documents: Allows you to chat with documents (PDFs for now). Demo videos below
  • Local inference: Runs AI models locally. Supports 100+ open-source (and semi-open-source) AI models through Ollama.
  • Built-in authentication: A simple email/password authentication so it can be opened to internet and accessed from anywhere.
  • Built-in user management: So family members or coworkers can use it as well if desired.
  • Self-hosting optimized: Comes with necessary scripts and docker-compose files to get started in under 5 minutes.

Demos

Chat with documents demo: OpenAI's GPT3.5

Chat with documents demo: OpenAI's GPT3.5

Chat with documents demo: Locally running Mistral (M2 MacBook)

Chat with documents demo: Locally running Mistral

Chat with Paperless-ngx documents demo: Locally running Llama2-7b (M2 MacBook)

Paperless-ngx integration demo

Document collections demo

Document Collections demo

Install

Docker Compose [Recommended]

1. Create a directory

mkdir secure-ai-tools && cd secure-ai-tools

2. Run set-up script

The script downloads docker-compose.yml and generates a .env file with sensible defaults.

curl -sL https://github.com/SecureAI-Tools/SecureAI-Tools/releases/latest/download/set-up.sh | sh

3. [Optional] Edit .env file

Customize the .env file created in the above step to your liking. If you want to use OpenAI LLMs, then please follow the steps outlined here.

4. [Optional] On Linux machine with Nvidia GPUs, enable GPU support

To accelerate inference on Linux machines, you will need to enable GPUs. This is not strictly required as the inference service will run on CPU-only mode as well, but it will be slow on CPU. So if your machine has Nvidia GPU then this step is recommended.

  1. Install Nvidia container toolkit if not already installed.
  2. Uncomment the deploy: block in docker-compose.yml file. It gives inference service access to Nvidia GPUs.

5. Run docker compose

docker compose up -d

6. Post-installation set-up

  1. Login at http://localhost:28669/log-in using the initial credentials below, and change the password.

  2. Set up the AI model by going to http://localhost:28669/-/settings?tab=ai

  3. Navigate to http://localhost:28669/- and start using AI tools

Upgrade

To upgrade, please run the following command where docker-compose.yml file lives in your set-up (it should be in secure-ai-tools directory from installation step-#1).

docker compose pull && docker compose up -d

Hardware requirements

Running AI model (LLM) locally

  • RAM: As much as the AI model requires. Most models have a variant that works well on 8 GB RAM
  • GPU: GPU is recommended but not required. It also runs in CPU-only mode but will be slower on Linux, Windows, and Mac-Intel. On M1/M2/M3 Macs, the inference speed is really good.

Using remote OpenAI-compatible APIs

SecureAI Tools allows using remote OpenAI-compatible APIs. If you only use a remote OpenAI-compatible API server for LLM inference, then the hardware requirements are much lower. You only need enough resources to be able to run a few docker containers: a small web server, postgresql-server, rabbit-mq.

Features wishlist

A set of features on our todo list (in no particular order).

  • ✅ Chat with documents
  • ✅ Support for OpenAI, Claude etc APIs
  • ✅ Reusable document collections
  • ✅ Offline document processing
  • ✅ Integration with Paperless-ngx
  • ✅ Integration with Google Drive
  • Support more file types (Google Doc, Docx, Markdown etc)
  • Support for markdown rendering
  • Chat sharing
  • Mobile friendly UI
  • Specify AI model at chat-creation time
  • Prompt templates library

Guides

Use with OpenAI or OpenAI-compatible APIs

SecureAI Tools can be used with OpenAI APIs and any other provider that provides OpenAI-compatible APIs. Here are the steps to enable that for your instance:

  1. Set the MODEL_PROVIDER_CONFIGS in .env file as shown below. If you're using other providers that don't require apiKey then you can specify any dummy apiKey value. Use appropriate apiBaseUrl depending on your API provider.

    # For OpenAI
    MODEL_PROVIDER_CONFIGS='[{"type":"OPENAI","apiBaseUrl":"https://api.openai.com/v1","apiKey":"sk-..."}]'
    
    # For OpenAI-compatible other provider
    MODEL_PROVIDER_CONFIGS='[{"type":"OPENAI","apiBaseUrl":"...URL of API provider here ...","apiKey":"sk-..."}]'
  2. Go to the organization settings page, select OpenAI model type, and provide the appropriate model name like gpt3.5-turbo

Customize LLM provider-specific options

You can customize LLM provider-specific options like the number of layers to offload to GPUs, or stop words, etc. Specify these options in the MODEL_PROVIDER_CONFIGS environment variable. For example, below is how we can offload 30 layers to GPUs in Ollama.

MODEL_PROVIDER_CONFIGS='[{"type":"OLLAMA","apiBaseUrl":"http://inference:11434/","apiKey":"","options":{"numGpu":30}}]'

Please see here for more info on what options are available for which provider.

secureai-tools's People

Contributors

jaynakrani avatar qchroma avatar jonathanmarvens avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.