Nextjs assistant
Fork the Embedchain repo on Github to create your own NextJS discord and slack bot powered by Embedchain.
If you run into problems with forking, please refer to github docs for forking a repo.
We will work from the examples/nextjs
folder so change your current working directory by running the command - cd <your_forked_repo>/examples/nextjs
Installation
First, lets start by install all the required packages and dependencies.
-
Install all the required python packages by running
pip install -r requirements.txt
-
We will use Fly.io to deploy our embedchain app, discord and slack bot. Follow the step one to install Fly.io CLI
Developement
Embedchain App
First, we need an Embedchain app powered with the knowledge of NextJS. We have already created an embedchain app using FastAPI in ec_app
folder for you. Feel free to ingest data of your choice to power the App.
Navigate to ec_app
folder and create .env
file in this folder and set your OpenAI API key as shown in .env.example
file. If you want to use other open-source models, feel free to use the app config in app.py
. More details for using custom configuration for Embedchain app is available here.
Before running the ec commands to develope the app, open fly.toml
file and update the name
variable to something unique. This is important as fly.io
requires users to provide a globally unique deployment app names.
Now, we need to launch this application with fly.io. You can see your app on fly.io dashboard. Run the following command to launch your app on fly.io:
To run the app in development, run the following command:
Run ec deploy
to deploy your app on Fly.io. Once you deploy your app, save the endpoint on which our discord and slack bot will send requests.
Discord bot
For discord bot, you will need to create the bot on discord developer portal and get the discord bot token and your discord bot name.
While keeping in mind the following note, create the discord bot by following the instructions from our discord bot docs and get discord bot token.
You do not need to set OPENAI_API_KEY
to run this discord bot. Follow the remaining instructions to create a discord bot app. We recommend you to give the following sets of bot permissions to run the discord bot without errors:
Once you have your discord bot token and discord app name. Navigate to nextjs_discord
folder and create .env
file and define your discord bot token, discord bot name and endpoint of your embedchain app as shown in .env.example
file.
To run the app in development:
Before deploying the app, open fly.toml
file and update the name
variable to something unique. This is important as fly.io
requires users to provide a globally unique deployment app names.
Now, we need to launch this application with fly.io. You can see your app on fly.io dashboard. Run the following command to launch your app on fly.io:
Run ec deploy
to deploy your app on Fly.io. Once you deploy your app, your discord bot will be live!
Slack bot
For Slack bot, you will need to create the bot on slack developer portal and get the slack bot token and slack app token.
Setup
- Create a workspace on Slack if you donโt have one already by clicking here.
- Create a new App on your Slack account by going here.
- Select
From Scratch
, then enter the Bot Name and select your workspace. - Go to
App Credentials
section on theBasic Information
tab from the left sidebar, create your app token and save it in your.env
file asSLACK_APP_TOKEN
. - Go to
Socket Mode
tab from the left sidebar and enable the socket mode to listen to slack message from your workspace. - (Optional) Under the
App Home
tab you can change your App display name and default name. - Navigate to
Event Subscription
tab, and enable the event subscription so that we can listen to slack events. - Once you enable the event subscription, you will need to subscribe to bot events to authorize the bot to listen to app mention events of the bot. Do that by tapping on
Add Bot User Event
button and selectapp_mention
. - On the left Sidebar, go to
OAuth and Permissions
and add the following scopes underBot Token Scopes
:
- Now select the option
Install to Workspace
and after itโs done, copy theBot User OAuth Token
and set it in your.env
file asSLACK_BOT_TOKEN
.
Once you have your slack bot token and slack app token. Navigate to nextjs_slack
folder and create .env
file and define your slack bot token, slack app token and endpoint of your embedchain app as shown in .env.example
file.
To run the app in development:
Before deploying the app, open fly.toml
file and update the name
variable to something unique. This is important as fly.io
requires users to provide a globally unique deployment app names.
Now, we need to launch this application with fly.io. You can see your app on fly.io dashboard. Run the following command to launch your app on fly.io:
Run ec deploy
to deploy your app on Fly.io. Once you deploy your app, your slack bot will be live!
Was this page helpful?