llama-cpp-python-djs-bot/README.md

49 lines
2.2 KiB
Markdown
Raw Normal View History

2023-04-10 03:32:13 +00:00
# llama-cpp-python-djs-bot
THIS CODE IS MEANT TO BE SELF HOSTED USING THE LIBRARY: https://abetlen.github.io/llama-cpp-python/
2023-04-10 03:34:15 +00:00
# Description
2023-04-10 03:32:13 +00:00
2023-04-10 03:33:34 +00:00
This code is for a Discord bot that uses OpenAI's GPT-3 language model (self hosted at home) to generate responses to user messages. It listens for messages in two specified Discord channels, and when a user sends a message, it appends it to the conversation history and sends it to the GPT-3 API to generate a response. The response is then sent back to the user in the same channel. The bot uses the Node.js discord.js library to interact with the Discord API and the node-fetch library to make HTTP requests to the GPT-3 API.
2023-04-10 03:32:13 +00:00
Here is a summary of the main parts of the code:
Import required modules and set environment variables using dotenv.
2023-04-10 03:33:34 +00:00
2023-04-10 03:32:13 +00:00
Create a new Client instance and set the intents and partials.
2023-04-10 03:33:34 +00:00
2023-04-10 03:32:13 +00:00
Define two channel IDs that the bot will listen to.
2023-04-10 03:33:34 +00:00
2023-04-10 03:32:13 +00:00
Create a Map to store ongoing conversations with users.
2023-04-10 03:33:34 +00:00
2023-04-10 03:32:13 +00:00
Define functions to update the bot's presence status, check if any conversation is busy, and set a conversation as busy or not busy.
2023-04-10 03:33:34 +00:00
2023-04-10 03:32:13 +00:00
Listen for the ready event and update the bot's presence status.
2023-04-10 03:33:34 +00:00
2023-04-10 03:32:13 +00:00
Listen for the messageCreate event and respond to messages that are sent in the specified channels.
2023-04-10 03:33:34 +00:00
2023-04-10 03:32:13 +00:00
When a message is received, check if any conversation is busy. If so, delete the message and send a busy response to the user.
2023-04-10 03:33:34 +00:00
2023-04-10 03:32:13 +00:00
If no conversation is busy, append the user message to the conversation history and send it to the GPT-3 API to generate a response.
2023-04-10 03:33:34 +00:00
2023-04-10 03:32:13 +00:00
If the response is not empty, send it back to the user in the same channel. If it is empty, send a reset message and delete the conversation history for that user.
2023-04-10 03:33:34 +00:00
2023-04-10 03:32:13 +00:00
Define a generateResponse function that sends a request to the GPT-3 API to generate a response. If the request times out or an error occurs, handle it accordingly.
2023-04-10 03:33:34 +00:00
2023-04-10 03:32:13 +00:00
Call the generateResponse function within the messageCreate event listener function.
2023-04-10 03:34:15 +00:00
# Usage
2023-04-10 03:32:13 +00:00
1) Use ```npm i ```
2) Create a .env file ```cp default.env .env```
3) Edit .env for your needs
4) Go into https://discord.com/developers/applications and enable Privileged Intents.
6) Run the bot ```node llamabot.js ```
Want to make this better? Issue a pull request!