Skip to content

Nesis Helm Chart

For your production deployment, use the provided helm chart. Save the overrides values file on your local.

Installing to Kubernetes

overrides.yml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
api:
  env:
    - name: NESIS_ADMIN_EMAIL
      value: test@domain.com
    - name: NESIS_ADMIN_PASSWORD
      value: password
rag:
  persistence:
    enabled: true
    size: 10Gi
  config: null
  extraEnv:
    - name: OPENAI_API_KEY
      value: <your-openai-api-key>
    - name: HF_TOKEN
      value: <your-hf-token>
    # - name: OPENAI_API_BASE
    #   value: http://
minio:
  enabled: true

Then add the helm repository with

1
2
helm repo add ametnes https://ametnes.github.io/helm
helm repo update

Lastly, install Nesis into your kubernetes cluster with

1
helm upgrade --install nesis ametnes/nesis -f /path/to/overrides.yml

Shortly after, you should see all services running as shown using kubectl get po below

NAME                               READY   STATUS    RESTARTS   AGE
nesis-api-664679c8f9-9vzhb         1/1     Running   0          45s
nesis-frontend-5f69fcb4d5-cpnd7    1/1     Running   0          45s
nesis-memcached-7d7855657d-zxd82   1/1     Running   0          45s
nesis-minio-6d458bc7-cpgql         1/1     Running   0          45s
nesis-postgresql-0                 1/1     Running   0          45s
nesis-rag-757584f46c-9kqtf         1/1     Running   0          45s

RAG Configuration
  1. You need to set the OPENAI_API_KEY and OPENAI_API_BASE environment variables before you can start chatting with your documents.
  2. We noticed that some Huggingface embeddings models can only be used after authenticating with Huggingface. If you encounter 401s during embeddings generation, you need to obtain a Huggingface token and populate the HF_TOKEN environment variable.

Testing your Nesis

  1. Port forward services;

    MinIO Frontend
    kubectl port-forward svc/nesis-minio 9001
    

  2. Point your browser to http://localhost:9001 and login with admin:password.

  3. In another terminal;

    Nesis Frontend
    kubectl port-forward svc/nesis-frontend 8000
    

  4. Point your browser to http://localhost:8000 and login with test@domain.com:password.

  5. Upload documents into the MinIO bucket private-documents.

  6. In the Nesis Frontend add a datasource with;
    1. Navigate to Settings->Datasources.
    2. Click Add.
    3. Enter
      1. Type: MinIO (S3 Compatible)
      2. Name: ds-private-documents
      3. Entpoint: http://nesis-minio:9000
      4. User: admin
      5. Password: password
      6. Dataobjects: private-documents
    4. Click Save.
  7. In the datasource list, find the datasource you just created and click the Ingest button.
  8. View logs of your services using kubetail with
    kt nesis
    
  9. Once ingestion is complete, navigate to Documents and you can start chating with your documents.

Overriding Key Dependencies

The Nesis helm chart allows you to override the following components;

  1. Postgres database that backs the API component.
  2. Memcached caching service.
  3. Vector database
Resource requirements
  1. The Frontend and API microservices are lightweight and don't need alot of resources.
  2. The RAG Engine however needs to be scoped for enough memory, cpu and storage.
  3. The Postgres database needs enough memory and storage because every ingested document.