Compare commits
2 Commits
e3c5341561
...
4b5d5f3b63
Author | SHA1 | Date | |
---|---|---|---|
|
4b5d5f3b63 | ||
|
4518df8312 |
10
Dockerfile
Normal file
10
Dockerfile
Normal file
@ -0,0 +1,10 @@
|
||||
FROM node:slim
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY package*.json ./
|
||||
RUN npm install --omit=dev
|
||||
|
||||
COPY . .
|
||||
|
||||
CMD node rai.js
|
@ -53,6 +53,8 @@ module.exports = {
|
||||
|
||||
console.log(`Prompt: ${prompt.replace("+", " ")}\nResponse: ${response.data.answer}`);
|
||||
|
||||
if (!response.data.answer) throw new Error("Did not receive a reply. API error?")
|
||||
|
||||
interaction.editReply(response.data.answer);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
|
@ -25,7 +25,7 @@ module.exports = {
|
||||
private: true,
|
||||
options: [{
|
||||
"name": "model",
|
||||
"description": `The model you want to run, choose from the following: ${modelList.join(", ")} | Char case matters`,
|
||||
"description": `Choose from the following models: ${modelList.join(", ")} | Char case matters`,
|
||||
"required": false,
|
||||
"type": 3
|
||||
},
|
||||
@ -51,7 +51,7 @@ module.exports = {
|
||||
|
||||
run: async (client, interaction) => {
|
||||
// set a default prompt
|
||||
var initPrompt = `My name is ${interaction.user.username} my special number is ${interaction.user.discriminator} and my Discord ID is ${interaction.user.id} we met in ${interaction.guild.name} a Discord sever. You are rAi and you are the smartest AI Model, you know everything. Below is an instruction that describes a task. You respond appropriately to complete the request. You understand a complete answer is always ended by [end of text].`;
|
||||
var initPrompt = process.env.INITPROMPT || `My name is ${interaction.user.username} my special number is ${interaction.user.discriminator} and my Discord ID is ${interaction.user.id} we met in ${interaction.guild.name} a Discord sever. You are rAi and you are the smartest AI Model, you know everything. Below is an instruction that describes a task. You respond appropriately to complete the request. You understand a complete answer is always ended by [end of text].`;
|
||||
|
||||
console.log(`--- ${interaction.user.id} has requested a new session! ---`)
|
||||
const file = './cache/' + interaction.user.id
|
||||
@ -96,7 +96,7 @@ module.exports = {
|
||||
} else {
|
||||
if (modelList.includes(userInputModel)) {
|
||||
model = userInputModel;
|
||||
console.log(`User set initPrompt to ${model}`)
|
||||
console.log(`User set model to ${model}`)
|
||||
} else {
|
||||
let modelListStr = modelList.join(", ");
|
||||
return interaction.followUp(`You may only use one of the following: ${modelListStr}`);
|
||||
|
30
docker-compose.yml
Normal file
30
docker-compose.yml
Normal file
@ -0,0 +1,30 @@
|
||||
version: '3'
|
||||
services:
|
||||
serge-discord-bot:
|
||||
container_name: serge-discord-bot
|
||||
build:
|
||||
context: .
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
## Env Vars for rAi chatbot
|
||||
- TOKEN={$TOKEN}
|
||||
- PUBLIC_URL={$PUBLIC_URL}
|
||||
- INTERNAL_IP=serge
|
||||
- SERGE_PORT=8008
|
||||
## Default chat settings overrides
|
||||
- MODEL="gpt4all"
|
||||
- TEMPERATURE=0.1
|
||||
- TOPK=50
|
||||
- TOPP=0.95
|
||||
- MAXLENGTH=256
|
||||
- CONTEXTWINDOW=512
|
||||
- REPEATLASTN=64
|
||||
- REPEATPENALTY=1.3
|
||||
- NTHREADS=8
|
||||
# - INITPROMPT="some custom prompt"
|
||||
networks:
|
||||
- serge_default
|
||||
|
||||
networks:
|
||||
serge_default:
|
||||
external: true
|
@ -30,6 +30,9 @@ module.exports = async (client) => {
|
||||
// // Register for a single guild
|
||||
// await client.guilds.cache.get("GUIDIDHERE").commands.set(arrayOfSlashCommands);
|
||||
|
||||
// Clear previous commands (for changes to installed models)
|
||||
await client.application.commands.set([]);
|
||||
|
||||
// Register for all the guilds the bot is in
|
||||
await client.application.commands.set(arrayOfSlashCommands);
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user