boostgpt

1.1.5 • Public • Published

BoostGPT

Empower Your Projects with a Seamless AI Chatbot API Integration.

NPM Version Discord Documentation

Prerequisite

Requires an API Key for BoostGPT which can be found here.

Installation

npm install boostgpt

Quick Start

Use it in your project:

const { BoostGPT } = require("boostgpt")

const boostgpt = new BoostGPT({
    key: "YOUR API KEY",
    project_id: "YOUR PROJECT ID"
});

Create a chatbot

Here is an example that creates a chatbot in your BoostGPT project

let payload = {
    name: 'Example name',
    model: "gpt-3.5-turbo", //Require any of : gpt-3.5-turbo, gpt-3.5-turbo-0301, gpt-3.5-turbo-16k, gpt-3.5-turbo-1106, gpt-4-32k, gpt-4-0613, gpt-4-32k-0613, gpt-4
    instruction: `I want you to act as an AI assistant that I am having a conversation with. Your name is 'AI Assistant' and you always formats your responses in Markdown. You will provide me with answers from the given context. If the answer is not included, say exactly 'Hmm, I am not sure.' and stop after that. Refuse to answer any question not about the info. Never break character.`,//Optional. An instreuction to prompt the chatbot on how to respond
    status: 1 //Require any string of [ "1" or "0"]. Status 1 = online, Status 0 = offline
}
let chatbot = await boostgpt.createBot(payload);

if (chatbot.err) {
   //Handle errors here.
}else{
   console.log(chatbot.response);
}

Response:

    {
        "bot": {
            "uuid": "fa155610-e2a2-11ed-8d7e-128759b35991",
            "name": "Example name",
            "model": "gpt-3.5-turbo",
            "max_reply_tokens": "300",
            "instruction": "I want you to act as an AI assistant that I am having a conversation with. Your name is 'AI Assistant' and you always formats your responses in Markdown. You will provide me with answers from the given context. If the answer is not included, say exactly 'Hmm, I am not sure.' and stop after that. Refuse to answer any question not about the info. Never break character.",
            "status": 1,
            "updated_at": "2023-04-24T13:21:52.000Z"
        }
    }

Update a chatbot

Here is an example that updates a chatbot in your BoostGPT project

let payload = {
    bot_id: "fa155610-e2a2-11ed-8d7e-128759b35991",
    name: 'Example name',
    model: "gpt-3.5-turbo", //Require any of : gpt-3.5-turbo, gpt-3.5-turbo-0301, gpt-3.5-turbo-16k, gpt-3.5-turbo-1106, gpt-4-32k, gpt-4-0613, gpt-4-32k-0613, gpt-4
    instruction: `I want you to act as an AI assistant that I am having a conversation with. Your name is 'AI Assistant' and you always formats your responses in Markdown. You will provide me with answers from the given context. If the answer is not included, say exactly 'Hmm, I am not sure.' and stop after that. Refuse to answer any question not about the info. Never break character.`,//Optional. An instreuction to prompt the chatbot on how to respond
    status: 1 //Require any string of [ "1" or "0"]. Status 1 = online, Status 0 = offline
}
let chatbot = await boostgpt.updateBot(payload);

if (chatbot.err) {
   //Handle errors here.
}else{
   console.log(chatbot.response);
}

Response:

    {
        "bot": {
            "uuid": "fa155610-e2a2-11ed-8d7e-128759b35991",
            "name": "Example name",
            "model": "gpt-3.5-turbo",
            "max_reply_tokens": "300",
            "instruction": "I want you to act as an AI assistant that I am having a conversation with. Your name is 'AI Assistant' and you always formats your responses in Markdown. You will provide me with answers from the given context. If the answer is not included, say exactly 'Hmm, I am not sure.' and stop after that. Refuse to answer any question not about the info. Never break character.",
            "status": 1,
            "updated_at": "2023-04-24T13:21:52.000Z"
        }
    }

Fetch a chatbot

Here is an example that fetches the details of a chatbot in your BoostGPT project

let bot_id = "8e9124a2-e0a3-11ed-b5a3-33d8a09a24e3";
let chatbot = await boostgpt.fetchBot(bot_id);

if (chatbot.err) {
   //Handle errors here.
}else{
   console.log(chatbot.response);
}

Response:

    {
        "bot": {
            "uuid": "8e9124a2-e0a3-11ed-b5a3-33d8a09a24e3",
            "model": "gpt-3.5-turbo", 
            "max_reply_tokens": "300",
            "instruction": "I want you to act as an AI assistant that I am having a conversation with. Your name is 'AI Assistant' and you always formats your responses in Markdown. You will provide me with answers from the given context. If the answer is not included, say exactly 'Hmm, I am not sure.' and stop after that. Refuse to answer any question not about the info. Never break character.",
            "status": 1,
            "updated_at": "2023-04-26T10:26:33.000Z"
        }
    }

Fetch all chatbots

Here is an example that fetches all chatbot in your BoostGPT project. The example below fetches 10 items per page.

let payload = {
    page: 1,
    per_page: 10
}
let chatbots = await boostgpt.fetchBots(payload);

if (chatbot.err) {
   //Handle errors here.
}else{
   console.log(chatbot.response);
}

Response:

{
    "total": 2,
    "bots": [
        {
            "uuid": "dfd3b238-e41a-11ed-ad91-a2ce1f33a089",
            "model": "gpt-3.5-turbo",
            "max_reply_tokens": "300",
            "instruction": "I want you to act as an AI assistant that I am having a conversation with. Your name is 'AI Assistant' and you always formats your responses in Markdown. You will provide me with answers from the given context. If the answer is not included, say exactly 'Hmm, I am not sure.' and stop after that. Refuse to answer any question not about the info. Never break character.",
            "status": 0,
            "updated_at": "2023-04-26T12:22:46.000Z",
            "tokenCount": null,
            "sourceCount": 0
        },
        {
            "uuid": "8e9124a2-e0a3-11ed-b5a3-33d8a09a24e3",
            "model": "gpt-3.5-turbo",
            "max_reply_tokens": "300",
            "instruction": "I want you to act as an AI assistant that I am having a conversation with. Your name is 'AI Assistant' and you always formats your responses in Markdown. You will provide me with answers from the given context. If the answer is not included, say exactly 'Hmm, I am not sure.' and stop after that. Refuse to answer any question not about the info. Never break character.",
            "status": 1,
            "updated_at": "2023-04-26T10:26:33.000Z",
            "tokenCount": "23152",
            "sourceCount": 5
        }
    ]
}

Reset a chatbot

Here is an example that resets a chatbot in your BoostGPT project. Reseting a chatbot will delete all it's training data.

let bot_id = "8e9124a2-e0a3-11ed-b5a3-33d8a09a24e3";
let chatbot = await boostgpt.resetBot(bot_id);

if (chatbot.err) {
   //Handle errors here.
}else{
   console.log(chatbot.response);
}

Response:

    {
        "bot": {
            "uuid": "dfd3b238-e41a-11ed-ad91-a2ce1f33a089",
            "model": "gpt-3.5-turbo",
            "max_reply_tokens": "300",
            "instruction": "I want you to act as an AI assistant that I am having a conversation with. Your name is 'AI Assistant' and you always formats your responses in Markdown. You will provide me with answers from the given context. If the answer is not included, say exactly 'Hmm, I am not sure.' and stop after that. Refuse to answer any question not about the info. Never break character.",
            "status": 1,
            "updated_at": "2023-04-26T12:22:46.000Z"
        }
    }

Delete a chatbot

Here is an example that deletes a chatbot in your BoostGPT project. Deleting a chatbot will delete all it's training data.

let bot_id = "8e9124a2-e0a3-11ed-b5a3-33d8a09a24e3";
let chatbot = await boostgpt.deleteBot(bot_id);

if (chatbot.err) {
   //Handle errors here.
}else{
   console.log(chatbot.response);
}

Response:

    {
        "bot": {
            "uuid": "dfd3b238-e41a-11ed-ad91-a2ce1f33a089",
            "model": "gpt-3.5-turbo",
            "max_reply_tokens": "300",
            "instruction": "I want you to act as an AI assistant that I am having a conversation with. Your name is 'AI Assistant' and you always formats your responses in Markdown. You will provide me with answers from the given context. If the answer is not included, say exactly 'Hmm, I am not sure.' and stop after that. Refuse to answer any question not about the info. Never break character.",
            "status": 1,
            "updated_at": "2023-04-26T12:22:46.000Z"
        }
    }

Train chatbot with your data

Here is an example that adds a training data to a chatbot in your BoostGPT project

let payload = {
    bot_id: "fa155610-e2a2-11ed-8d7e-128759b35991"
    tags: [], //Use tags to segment your training data
    type: 'text', //Require any of : text, file, webpage, website
    source: 'YOUR SOURCE DATA',//Require your text content or an accessible link to your file, webpage, or website
}
let chatbot = await boostgpt.startTraining(payload);

if (chatbot.err) {
   //Handle errors here.
}else{
   console.log(chatbot.response);
}

Response:

    {
        "source": {
            "uuid": "1f2fbbd2-e436-11ed-ad91-a2ce1f33a089",
            "source": "",
            "type": "text",
            "links_crawled": [],
            "links_crawled_count": "0",
            "tags": [],
            "tokens": 199
        }
    }

Update chatbot training source

Here is an example that updates a training source on a chatbot in your BoostGPT project

let payload = {
    bot_id: "fa155610-e2a2-11ed-8d7e-128759b35991",
    source_id: "1f2fbbd2-e436-11ed-ad91-a2ce1f33a089",
    tags: ["twitter","revue"], //Use tags to segment your training data
    type: 'text', //Require any of : text, file, webpage, website
    source: `YOUR SOURCE DATA`,//Require your text content or an accessible link to your file, webpage, or website
}
let chatbot = await boostgpt.updateTraining(payload);

if (chatbot.err) {
   //Handle errors here.
}else{
   console.log(chatbot.response);
}

Response:

    {
        "source": {
            "uuid": "1f2fbbd2-e436-11ed-ad91-a2ce1f33a089",
            "source": "",
            "type": "text",
            "links_crawled": [],
            "links_crawled_count": "0",
            "tags": [
                "twitter",
                "revue"
            ],
            "tokens": 516
        }
    }

Fetch a chatbot training source

Here is an example that fetches the details of a chatbot training source in your BoostGPT project

let payload = {
    bot_id: "8e9124a2-e0a3-11ed-b5a3-33d8a09a24e3",
    source_id: "1f2fbbd2-e436-11ed-ad91-a2ce1f33a089",
};
let chatbot = await boostgpt.fetchTraining(payload);

if (chatbot.err) {
   //Handle errors here.
}else{
   console.log(chatbot.response);
}

Response:

    {
        "source": {
            "uuid": "832146d2-e43c-11ed-ad91-a2ce1f33a089",
            "source": "",
            "type": "text",
            "links_crawled": [],
            "links_crawled_count": "0",
            "tags": [
                "twitter",
                "revue"
            ],
            "tokens": 516
        }
    }

Fetch a chatbot training sources

Here is an example that fetches a chatbot training sources in your BoostGPT project. The example below fetches 10 items per page.

let payload = {
    bot_id: "8e9124a2-e0a3-11ed-b5a3-33d8a09a24e3",
    page: 1,
    per_page: 10
}
let chatbots = await boostgpt.fetchTrainings(payload);

if (chatbot.err) {
   //Handle errors here.
}else{
   console.log(chatbot.response);
}

Response:

{
    "total": 2,
    "sources": [
        {
            "uuid": "832146d2-e43c-11ed-ad91-a2ce1f33a089",
            "source": "",
            "type": "text",
            "links_crawled": [],
            "links_crawled_count": "0",
            "tags": [
                "twitter",
                "revue"
            ],
            "tokens": 516
        },
        {
            "uuid": "654ba956-e3a4-11ed-ad91-a2ce1f33a089",
            "source": "https://packnpay.com.ng",
            "type": "website",
            "links_crawled": [
                {
                    "url": "https://packnpay.com.ng",
                    "tokens": 4492
                }
            ],
            "links_crawled_count": "1",
            "tags": [
                "ecommerce"
            ],
            "tokens": 4492
        },
    ]
}

Delete a chatbot training data

Here is an example that deletes a chatbot training data in your BoostGPT account

let payload = {
    bot_id: "8e9124a2-e0a3-11ed-b5a3-33d8a09a24e3",
    source_id: "1f2fbbd2-e436-11ed-ad91-a2ce1f33a089",
};

let chatbot = await boostgpt.deleteTraining(payload);

if (chatbot.err) {
   //Handle errors here.
}else{
   console.log(chatbot.response);
}

Response:

    {
        "source": {
            "uuid": "1f2fbbd2-e436-11ed-ad91-a2ce1f33a089",
            "source": "",
            "type": "text",
            "links_crawled": [],
            "links_crawled_count": "0",
            "tags": [
                "twitter",
                "revue"
            ],
            "tokens": 516
        }
    }

Engage a chatbot

Here is an example that shows how you can engage a chatbot that has been trained with your data. You will need an Openai API key to chat with a bot.

let payload = {
    bot_id: "8e9124a2-e0a3-11ed-b5a3-33d8a09a24e3",//The bot to chat
    openai_key: "YOUR-OPENAI-APIKEY",
    model: "gpt-3.5-turbo", //The model to use for the chat response. Defaults to the bot model.
    message: "How can I add a subscribe button to my twitter profile?", //The chat message
    source_ids: ["c26b16b4-d394-11ed-b5a3-33d8a09a24e3"], //The training source id's you want the AI's knowledge to be limited to.
    tags: ["twitter"], //Use tags to get the segment of the training data you want the AI's knowledge to be limited to.
    top: 10, //Optional. The weight of training data used to form a context. Defaults to 10. Recommended settings between : 10 - 15 give better response from the AI.
    max_reply_tokens: 300, // Optional. The maximum number of tokens allowed for the chat response. By default, the number of tokens the model can return will be (300 - tokens).
    instruction: "", //Optional. An instruction to tell the AI how to reply. Defaults to the bot instruction.
    chat_id: "example-chat-id", //Optional. Specify a chat id if you want to engage the AI in a conversational manner. Chat id should be unique per chat thread with the AI.
    stream: false
}

let chatbot = await boostgpt.chat(payload);

if (chatbot.err) {
   //Handle errors here.
}else{
   console.log(chatbot.response);
}

Response:

{
    "chat": {
        "reply": "THE BOT REPLY.",
        "meta": [
            {
                "source_id": "832146d2-e43c-11ed-ad91-a2ce1f33a089",
                "tags": [
                    "twitter",
                    "revue"
                ]
            }
        ],
        "usage": {
            "prompt_tokens": 380,
            "completion_tokens": 82,
            "total_tokens": 462
        }
    }
}

Fetch a chatbot chat history

Here is an example that fetches a chatbot chat history in your BoostGPT project. The example below fetches 10 items per page.

let payload = {
    bot_id: "8e9124a2-e0a3-11ed-b5a3-33d8a09a24e3",
    chat_id: "2f2fbca2-e436-11ed-ad91-a2ce1f33a089",
    page: 1,
    per_page: 10
};
let chatbot = await boostgpt.fetchChat(payload);

if (chatbot.err) {
   //Handle errors here.
}else{
   console.log(chatbot.response);
}

Response:

    {
        "total": 3,
        "conversation": [
            {
                "chat_id": "f385229f-d142-4c3b-997f-6a4ec6445a4d",
                "content": "hi",
                "role": "user",
                "tokens": 1
            },
            {
                "chat_id": "f385229f-d142-4c3b-997f-6a4ec6445a4d",
                "content": "Hello! How can I assist you today?",
                "role": "system",
                "tokens": 7
            },
            {
                "chat_id": "f385229f-d142-4c3b-997f-6a4ec6445a4d",
                "content": "I am thinking of writing a blog post around boostgpt, something that will bring traffic",
                "role": "user",
                "tokens": 15
            },
        ]
    }

Fetch a chatbot chats

Here is an example that fetches a chatbot chats in your BoostGPT project. The example below fetches 10 items per page.

let payload = {
    bot_id: "8e9124a2-e0a3-11ed-b5a3-33d8a09a24e3",
    page: 1,
    per_page: 10
}
let chatbots = await boostgpt.fetchChats(payload);

if (chatbot.err) {
   //Handle errors here.
}else{
   console.log(chatbot.response);
}

Response:

{
    "total": 3,
    "chats": [
        {
            "chat_id": "50388f6b-9bce-4bb7-aef6-bafc151544df",
            "messages": 12,
            "latest": "2023-05-21T07:45:08.000Z"
        },
        {
            "chat_id": "test-id",
            "messages": 6,
            "latest": "2023-05-20T22:30:27.000Z"
        },
        {
            "chat_id": "1784709e-3ff9-432d-8683-08ec427a8b5b",
            "messages": 2,
            "latest": "2023-05-18T15:42:03.000Z"
        }
    ]
}

Delete a chatbot chat history

Here is an example that deletes a chatbot chat history in your BoostGPT account

let payload = {
    bot_id: "8e9124a2-e0a3-11ed-b5a3-33d8a09a24e3",
    chat_id: "example-chat-id",
};

let chatbot = await boostgpt.deleteChat(payload);

if (chatbot.err) {
   //Handle errors here.
}else{
   console.log(chatbot.response);
}

Response:

    {
        "conversation": [
            {
                "chat_id": "f385229f-d142-4c3b-997f-6a4ec6445a4d",
                "content": "hi",
                "role": "user",
                "tokens": 1
            },
            {
                "chat_id": "f385229f-d142-4c3b-997f-6a4ec6445a4d",
                "content": "Hello! How can I assist you today?",
                "role": "system",
                "tokens": 7
            },
            {
                "chat_id": "f385229f-d142-4c3b-997f-6a4ec6445a4d",
                "content": "I am thinking of writing a blog post around boostgpt, something that will bring traffic",
                "role": "user",
                "tokens": 15
            },
        ]
    }

Search a chatbot

Here is an example that shows how you can search a chatbot that has been trained with your data.

let payload = {
    bot_id: "8e9124a2-e0a3-11ed-b5a3-33d8a09a24e3",//The bot to search
    keywords: "How can I add a subscribe button to my twitter profile?", //The search keywords
    source_ids: ["c26b16b4-d394-11ed-b5a3-33d8a09a24e3"], //The training source id's you want the AI's knowledge to be limited to.
    tags: ["twitter"], //Use tags to get the segment of the training data you want the AI's knowledge to be limited to.
    top: 10, //Optional. The weight of training data used to form a context. Defaults to 10. Recommended settings between : 10 - 15 give better response from the AI.
}

let chatbot = await boostgpt.search(payload);

if (chatbot.err) {
   //Handle errors here.
}else{
   console.log(chatbot.response);
}

Response:

{
    "search": [
        {
            "id": 41775,
            "version": 5903,
            "score": 0.54020226,
            "payload": {
                "bot_id": "8e9124a2-e0a3-11ed-b5a3-33d8a09a24e3",
                "content": "Adding a subscribe button to your Twitter profile can be a valuable strategy to grow your audience and keep them engaged with your content. While Twitter doesn't have a native "subscribe" button like some other social media platforms, there are several effective methods you can use to encourage users to follow your account and receive updates on your tweets.",
                "source_id": "c26b16b4-d394-11ed-b5a3-33d8a09a24e3",
                "tags": [
                    "twitter"
                ]
            },
            "vector": null
        },
        {
            "id": 40028,
            "version": 4159,
            "score": 0.5324362,
            "payload": {
                "bot_id": "8e9124a2-e0a3-11ed-b5a3-33d8a09a24e3",
                "content": "Promote Your Content Regularly: Consistently share high-quality content that resonates with your target audience. This could include insightful thoughts, industry news, behind-the-scenes glimpses, or exclusive offers. The more valuable and relevant your content is, the more likely users will want to follow you.",
                "source_id": "c26b16b4-d394-11ed-b5a3-33d8a09a24e3",
                "tags": [
                    "twitter"
                ]
            },
            "vector": null
        },
    ]
}

Conventions

All methods must be awaited, and return a BoostGPTResponse object - which only has two properties: err and response.

Always check for presence of err. If err is not null, then the response might not be valid.

Questions?

Join our Discord server.

License

This package is licensed under the MIT.

Package Sidebar

Install

npm i boostgpt

Weekly Downloads

9

Version

1.1.5

License

MIT

Unpacked Size

32 kB

Total Files

5

Last publish

Collaborators

  • davmixcool