📚Knowledge base

ZBrain uses a knowledge base as the foundation for building LLM-based applications. Users can upload their data in any format, such as PDFs, Word documents or web pages, to create this knowledge base. The knowledge base is the source of your app's domain-specific information, allowing it to offer accurate and targeted responses.

Create knowledge base

To create a knowledge base on ZBrain, send a POST request to a given URL with their specific information. They ensure that the payload includes an optional description and the name of the knowledge base while confirming that the necessary headers are correctly incorporated.

  • Request URL: https://app.zbrain.ai:3000/api/knowledge-base

  • Request Method: POST

  • Request Payload:

    1. name: Knowledge Base Name

    2. description: Description (Optional)

  • Request Headers:

    1. Authorization: Bearer <<API Key >>

    2. Content-Type: application/json

Parameters

Authorization

Bearer API-Key (get it from settings > profile from https://app.zbrain.ai/settings/profile )

description

description about knowledge base

name

name to the knowledge base

  • Sample Request Body Payload:

    {
        "name": "KnowledgeBaseName",
        "description": "description",
    }
  • Code snippets:

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://app.zbrain.ai:3000/api/knowledge-base',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <API token>'
  },
  body: JSON.stringify({
    "name": "Knowledgebase Name",
    "description": "description"
  })
};

request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
  • Sample Response:

    {
        "responseData": {
            "name": "string",
            "description": "string",
            "tenantId": "string",
            "createdBy": "string",
            "_id": "string",
            "addedOn": number,
            "modifiedOn": number
        },
        "message": "Knowledge base created successfully",
        "success": true,
        "responseCode": 200
    }

Get Knowledge bases

Using the provided ZBrain API, users can easily fetch their knowledge base data. By sending a GET request to the given URL and adjusting the 'limit' and 'skip' parameters, users can tailor the amount of data retrieved and its starting point, simplifying access to their specific knowledge base content.

  • Request URL: https://app.zbrain.ai:3000/api/knowledge-bases?limit=10&skip=0

  • Request Method: GET

  • Query strings:

    1. skip: << numeric value >>

    2. limit: << numeric value >>

  • Request Headers:

    1. Authorization: Bearer <<API key>>

    2. Content-Type: application/json

Parameters

Authorization

Bearer API-Key (get it from settings > profile from https://app.zbrain.ai/settings/profile )

skip

Number of knowledge bases to skip

limit

Number of knowledge bases to listout

  • Sample Request Query Payload:

    ?limit=10&skip=0
  • Code snippets:

var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://app.zbrain.ai:3000/api/knowledge-bases?limit=10&skip=0',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <API token>'
  },
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
  • Sample Response:

    {
        "responseData": {
            "data": [
                {
                    "_id": "string",
                    "name": "string",
                    "description": "string",
                    "tenantId": "string",
                    "createdBy": "string",
                    "addedOn": number,
                    "modifiedOn": number,
                    "importsExists": boolean
                }
            ],
            "total": number
        },
        "message": "Information fetched successfully",
        "success": true,
        "responseCode": 200
    }

Get Knowledge base by Id

  • Request URL: https://app.zbrain.ai:3000/api/knowledge-base/<knowledgeBaseId>

  • Request Method: GET

  • Path parameters:

    1. knowledgebaseId : << knowledgebaseId >>

  • Request Headers:

    1. Authorization: Bearer <<API Key >>

    2. Content-Type: application/json

Parameters

Authorization

Bearer API-Key (get it from settings > profile from https://app.zbrain.ai/settings/profile )

knowledgeBaseId

unique id (_id) of knowledge base (get it from the Get knowledge bases API)

  • Sample Path parameters:

    /knowledge-base/<knowledgeBaseId>
  • Code snippets:

var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://app.zbrain.ai:3000/api/knowledge-base/<knowledgebaseId>',
  'headers': {
    'Authorization': 'Bearer <API token>'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
  • Sample Response:

    {
        "responseData": {
            "_id": "string",
            "name": "string",
            "description": "string",
            "tenantId": "string",
            "createdBy": "string",
            "addedOn": number,
            "knowledgeBaseImports": [
                {
                    "title": "string",
                    "summary": "string",
                    "knowledgeBaseId": "string",
                    "importedType": "string",
                    "status": "string",
                    "file": {
                        "url": "string",
                        "path": "string",
                        "bucket": "string"
                    },
                    "document": {
                        "url": "string",
                        "path": "string",
                        "bucket": "string"
                    },
                    "visitedPages": ["string"],
                    "characters": number,
                    "chunksCount": number,
                    "_id": "string",
                    "addedOn": number,
                    "modifiedOn": number
                }
            ]
        },
        "message": "Information fetched successfully",
        "success": true,
        "responseCode": 200
    }

Knowledge base import creation types

On ZBrain, users have multiple options to create a knowledge base by importing information. They can import data from files such as PDF, TXT, CSV, DOCX, or XLSX, website links, or even through APIs. This approach enables users to gather and integrate relevant information into their knowledge base, feeding their AI applications with accurate and domain-specific data from diverse sources.

Using FILE

ZBrain allows users to create a knowledge base by importing files directly into the system using a specified API. Users can seamlessly import file types such as PDF, TXT, CSV, DOCX, or XLSX into their designated knowledge base by initiating a POST request to the provided URL, ensuring that the AI applications have direct access to the required domain-specific information.

  • Request URL: https://app.zbrain.ai:3003/api/knowledge-base-import?knowledgeBaseId=<knowledgeBaseId>&importType=FILE

  • Request Method: POST

  • Query Strings:

    1. knowledgeBaseId: << knowledgeBaseId >>

    2. importType: FILE

  • Request Headers:

    1. Authorization: Bearer <<API Key >>

    2. Content-Type: application/json

  • form data:

    1. file : << select file (Supported formats : PDF, TXT, CSV, DOCX or XLSX)>>

Parameters

Authorization

Bearer API-Key (get it from settings > profile from https://app.zbrain.ai/settings/profile )

knowledgeBaseId

unique id (_id) of knowledge base to where the file to be imported (get it from the Get knowledge bases Api)

importType

method of importing the content

file

in formdata user needs to select the file to be uploaded and these are the supported file formates PDF, TXT, CSV, DOCX or XLSX

  • Sample Request Query Strings:

    ?knowledgeBaseId=<knowledgeBaseId>&importType=FILE
  • Code snippets:

var request = require('request');
var fs = require('fs');
var options = {
  'method': 'POST',
  'url': 'https://app.zbrain.ai:3003/api/knowledge-base-import?knowledgeBaseId=<knowledgeBaseId>&importType=FILE',
  'headers': {
      'Authorization': 'Bearer <API token>'
    },
  formData: {
    'file': {
      'value': fs.createReadStream('</path/to/file>'),
      'options': {
        'filename': '<file name>',
        'contentType': null
      }
    }
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
  • Sample Response:

    {
        "responseData": [
            {
                "title": "string",
                "summary": "string",
                "knowledgeBaseId": "string",
                "importedType": "string",
                "status": "string",
                "file": {
                    "url": "string",
                    "path": "string",
                    "bucket": "string"
                },
                "document": {
                    "url": "string",
                    "path": "string",
                    "bucket": "string"
                },
                "visitedPages": ["string"],
                "characters": number,
                "chunksCount": number,
                "_id": "string",
                "input": object,
                "error": object,
                "addedOn": number,
                "modifiedOn": number,
                "charactersLimit": number
            }
        ],
        "message": "Knowledge base import added successfully",
        "success": true,
        "responseCode": 200
    }

Using WEBSITE url

When one seeks to construct a Zbrain knowledge base using a website, they must employ a certain web address or API. This process involves providing necessary details such as the knowledge base's identification, the import type (in this instance, a website), and the desired number of pages for indexing. Including the website URL from which the knowledge base will be created is crucial. Additionally, they must authenticate their request with their API key.

  • Request URL: https://app.zbrain.ai:3003/api/knowledge-base-import?knowledgeBaseId=<knowledgeBaseId>&importType=WEBSITE

  • Request Method: POST

  • Query Strings:

    1. knowledgeBaseId: << knowledgeBaseId >>

    2. importType: WEBSITE

  • Request Payload:

    1. numberOfPages: << No.of pages to index>>

    2. websiteUrl:<< URL >>

  • Request Headers:

    1. Authorization: Bearer <<API Key>>

    2. Content-Type: application/json

Parameters

Authorization

Bearer API-Key (get it from settings > profile from https://app.zbrain.ai/settings/profile )

knowledgeBaseId

unique id (_id) of knowledge base to where the file to be imported (get it from the Get knowledge bases Api)

importType

method of importing the content

numberOfPages

no.of pages to index

websiteUrl

URL of the website

  • Sample Request Body Payload:

    {
        "numberOfPages": 4,
        "websiteUrl": "https://www.leewayhertz.com"
    }

  • Sample Request Query Payload:

    ?knowledgeBaseId=<knowledgeBaseId>&importType=WEBSITE
  • Code snippets:

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://app.zbrain.ai:3003/api/knowledge-base-import?knowledgeBaseId=<knowledgeBaseId>&importType=WEBSITE',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <API token>'
  },
  body: JSON.stringify({
    "numberOfPages": <No.of pages to index>,
    "websiteUrl": "<url>"
  })
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
  • Sample Response:

    {
        "responseData": {
            "title": "string",
            "summary": "string",
            "knowledgeBaseId": "string",
            "importedType": "string",
            "status": "string",
            "file": {
                "url": "string",
                "path": "string",
                "bucket": "string"
            },
            "document": {
                "url": "string",
                "path": "string",
                "bucket": "string"
            },
            "visitedPages": ["string"],
            "characters": number,
            "chunksCount": number,
            "_id": "string",
            "input": object,
            "error": object,
            "addedOn": number,
            "modifiedOn": number,
            "charactersLimit": number
        },
        "message": "Knowledge base import added successfully",
        "success": true,
        "responseCode": 200
    }

Using API

When someone aims to construct a Zbrain knowledge base utilizing an API, they send specific data to a Zbrain web address. The information comprises the type of activity (API), a title for their data, and the data content itself, which should span at least 100 characters. They also need to include their API key for security purposes.

  • Request URL: https://app.zbrain.ai:3003/api/knowledge-base-import-by-api?importType=API

  • Request Method: POST

  • Query Strings:

    1. importType: API

  • Request Headers:

    1. Authorization: Bearer <<api key>>

    2. Content-Type: application/json

  • Request Payload:

    1. title: <Enter your file name>

    2. content: <<Enter your content not less than 100 characters>>

    3. knowledgeBaseId : << knowledgeBaseId >>

Parameters

Authorization

Bearer API-Key (get it from settings > profile from https://app.zbrain.ai/settings/profile )

importType

method of importing the content

title

title of the file

content

the content that will be uploaded to knowledge base and it should not be less than 100 characters

knowledgeBaseId

unique id (_id) of knowledge base to where the file to be imported (get it from the Get knowledge bases Api)

  • Sample Request Body Payload:

    {
        "title": "fileName",
        "content": "file content",
        "knowledgeBaseId": "knowledgeBaseId"
    }

Note: If knowledgeBaseId is empty, new knowledge base will be created. Otherwise, specified knowledge base will get updated.

  • Sample Request Query Payload:

    ?importType=API

  • Code snippets:

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://app.zbrain.ai:3003/api/knowledge-base-import-by-api?importType=API',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <API token>'
  },
  body: JSON.stringify({
    "title": "<name>",
    "content": "<content>",
    "knowledgeBaseId": "<knowledgeBaseId>"
  })
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
  • Sample Response:

    {
      "responseData": {
        "title": "string",
        "summary": "string",
        "knowledgeBaseId": "string",
        "importedType": "string",
        "status": "string",
        "file": {
          "url": "string",
          "path": "string",
          "bucket": "string"
        },
        "document": {
          "url": "string",
          "path": "string",
          "bucket": "string"
        },
        "visitedPages": ["string"],
        "characters": number,
        "chunksCount": number,
        "_id": "string",
        "input": object,
        "error": object,
        "addedOn": number,
        "modifiedOn": number,
        "charactersLimit": number
      },
      "message": "Knowledge base import added successfully",
      "success": true,
      "responseCode": 200
    }

Update Knowledge base

When a user wishes to update an existing knowledge base in Zbrain, they can utilize the following specific API, which sends a PUT request, along with their API key, to modify the knowledge base's name and description. Providing the correct knowledge base ID is important to ensure the updates are applied to the desired base.

  • Request URL:https://app.zbrain.ai:3000/api/knowledge-base

  • Request Method: PUT

  • Request Payload:

    1. description: << Enter new description (optional)>>

    2. knowledgeBaseId: << knowledgeBaseId >>

    3. name: << Enter new knowledge base name >>

  • Request Headers:

    1. Authorization: Bearer <<API Key>>

    2. Content-Type: application/json

Parameters

Authorization

Bearer API-Key (get it from settings > profile from https://app.zbrain.ai/settings/profile )

knowledgeBaseId

unique id (_id) of knowledge base to where the file to be imported (get it from the Get knowledge bases Api)

name

knowledge base name

description

description about knowledge base

  • Sample Request Body Payload:

{
    "knowledgeBaseId": "knowledgeBaseId",
    "name": "sample name",
    "description": "description",
}
  • Code snippets:

var request = require('request');
var options = {
  'method': 'PUT',
  'url': 'https://app.zbrain.ai:3000/api/knowledge-base',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <API token>'
  },
  body: JSON.stringify({
    "name": "<name>",
    "description": "<description>",
    "knowledgeBaseId": "<knowledgeBaseId>"
  })
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
  • Sample Response:

    {
        "responseData": {
            "name": "string",
            "description": "string",
            "tenantId": "string",
            "createdBy": "string",
            "_id": "string",
            "addedOn": number,
            "modifiedOn": number
        },
        "message": "Information added successfully",
        "success": true,
        "responseCode": 200
    }

Delete Knowledge base

If a user wishes to delete a specific knowledge base in Zbrain, the following API is used, which sends a DELETE request to the designated URL, including the knowledge base's unique ID in the path. The request must also contain its API key in the header for authorization.

  • Request URL: https://app.zbrain.ai:3000/api/knowledge-base/<knowledgebaseId>

  • Request Method: DELETE

  • Path parameters:

    1. knowledgebaseId : << knowledgebaseId >>

  • Request Headers:

    1. Authorization: Bearer <<API Key>>

    2. Content-Type: application/json

Parameters

Authorization

Bearer API-Key (get it from settings > profile from https://app.zbrain.ai/settings/profile )

knowledgebaseId

unique id (_id) of knowledge base to where the file to be imported (get it from the Get knowledge bases Api) (send this on path parameter)

  • Code snippets:

var request = require('request');
var options = {
  'method': 'DELETE',
  'url': 'https://app.zbrain.ai:3000/api/knowledge-base/<knowledgeBaseId>',
  'headers': {
    'Authorization': 'Bearer <API token>'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
  • Sample Response:

    {
        "responseData": "Knowledge base deleted successfully",
        "message": "Knowledge base deleted successfully",
        "success": true,
        "responseCode": 200
    }

Delete Import

If a user wishes to delete a specific knowledge base import in Zbrain, the following API is used, which sends a DELETE request to the designated URL, including the knowledge base import's unique ID in the body. The request must also contain its API key in the header for authorization.

  • Request URL: https://app.zbrain.ai:3000/api/knowledge-base-import

  • Request Method: DELETE

  • Request Payload:

    1. ids: << Array of knowledgeBaseImport Id's>>

  • Request Headers:

    1. Authorization: Bearer <<API Key>>

    2. Content-Type: application/json

Parameters

Authorization

Bearer API-Key (get it from settings > profile from https://app.zbrain.ai/settings/profile )

ids

Array of knowledgeBaseImport unique Id's to be deleted, get these id's from the response of get knowledge base by id

  • Sample Request Body Payload:

    {
        "ids": [
            "knowledgeBaseImportId"
        ]
    }
  • Code snippets:

var request = require('request');
var options = {
  'method': 'DELETE',
  'url': 'https://app.zbrain.ai:3000/api/knowledge-base-import',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <API token>'
  },
  body: JSON.stringify({
    "ids": [
      "<knowledgeBaseId>",
      "<knowledgeBaseId>"
    ]
  })

};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
  • Sample Response:

    {
        "responseData": "Deleted successfully",
        "message": "Knowledge base import deleted successfully",
        "success": true,
        "responseCode": 200
    }

Last updated