Containerize bot and server in one stack.
This commit is contained in:
parent
19107543e9
commit
bf0f941924
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
.env
|
.env
|
||||||
|
node_modules/
|
||||||
|
package-lock.json
|
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 llamabot.js
|
@ -1,4 +1,4 @@
|
|||||||
const emptyResponses = [
|
export const emptyResponses = [
|
||||||
"Oh boy, this is a tough one! Unfortunately, I don't have much insight to share on this topic.",
|
"Oh boy, this is a tough one! Unfortunately, I don't have much insight to share on this topic.",
|
||||||
"Hmm, I'm scratching my head on this one. Sorry to say that I don't have much to offer.",
|
"Hmm, I'm scratching my head on this one. Sorry to say that I don't have much to offer.",
|
||||||
"Wish I had a witty remark, but alas, I don't have much to contribute to this discussion.",
|
"Wish I had a witty remark, but alas, I don't have much to contribute to this discussion.",
|
||||||
@ -28,5 +28,3 @@ const emptyResponses = [
|
|||||||
"I'm afraid I don't have much experience with this, so I can't be of much help.",
|
"I'm afraid I don't have much experience with this, so I can't be of much help.",
|
||||||
"I wish I had some grand insight to share, but alas, I don't have much to offer in that regard."
|
"I wish I had some grand insight to share, but alas, I don't have much to offer in that regard."
|
||||||
];
|
];
|
||||||
|
|
||||||
module.exports = emptyResponses;
|
|
@ -1,4 +1,4 @@
|
|||||||
const errorMessages = [
|
export const errorMessages = [
|
||||||
"Uh oh, looks like something went awry! Try !reset to start fresh.",
|
"Uh oh, looks like something went awry! Try !reset to start fresh.",
|
||||||
"Oops, we hit a bump in the road! Give !reset a try to start anew.",
|
"Oops, we hit a bump in the road! Give !reset a try to start anew.",
|
||||||
"We've encountered an error, but !reset can help us out! Give it a go.",
|
"We've encountered an error, but !reset can help us out! Give it a go.",
|
||||||
@ -21,7 +21,7 @@ const errorMessages = [
|
|||||||
"Oopsie daisy! Give !reset a try and we'll start over."
|
"Oopsie daisy! Give !reset a try and we'll start over."
|
||||||
];
|
];
|
||||||
|
|
||||||
const busyResponses = [
|
export const busyResponses = [
|
||||||
"Sorry about that! Looks like I'm tied up at the moment. Please try again later.",
|
"Sorry about that! Looks like I'm tied up at the moment. Please try again later.",
|
||||||
"Oops, I'm currently busy with something else. Please try again later.",
|
"Oops, I'm currently busy with something else. Please try again later.",
|
||||||
"Looks like I'm already working on something. Can you try again later?",
|
"Looks like I'm already working on something. Can you try again later?",
|
||||||
@ -43,5 +43,3 @@ const errorMessages = [
|
|||||||
"Looks like I'm currently engaged with something else. Please try again later.",
|
"Looks like I'm currently engaged with something else. Please try again later.",
|
||||||
"I'm currently unavailable. Can you try again later?"
|
"I'm currently unavailable. Can you try again later?"
|
||||||
];
|
];
|
||||||
|
|
||||||
module.exports = { errorMessages, busyResponses};
|
|
@ -1,4 +1,4 @@
|
|||||||
const resetResponses = [
|
export const resetResponses = [
|
||||||
"Whoops, let's start fresh! What can I assist you with now?",
|
"Whoops, let's start fresh! What can I assist you with now?",
|
||||||
"Looks like we need a fresh start! What do you need help with?",
|
"Looks like we need a fresh start! What do you need help with?",
|
||||||
"To avoid any gremlins in the system, let's reset! How can I assist you now?",
|
"To avoid any gremlins in the system, let's reset! How can I assist you now?",
|
||||||
@ -21,7 +21,7 @@ const resetResponses = [
|
|||||||
"Let's hit the restart button to make sure we're on the right track. What can I help you with now?"
|
"Let's hit the restart button to make sure we're on the right track. What can I help you with now?"
|
||||||
];
|
];
|
||||||
|
|
||||||
const userResetMessages = [
|
export const userResetMessages = [
|
||||||
"All good, we're starting fresh! How can I assist you?",
|
"All good, we're starting fresh! How can I assist you?",
|
||||||
"Got it, let's start over! How can I help you today?",
|
"Got it, let's start over! How can I help you today?",
|
||||||
"Alright, starting anew! What can I help you with?",
|
"Alright, starting anew! What can I help you with?",
|
||||||
@ -43,5 +43,3 @@ const resetResponses = [
|
|||||||
"Sure thing, we'll start over! What can I help you with today?",
|
"Sure thing, we'll start over! What can I help you with today?",
|
||||||
"Conversation reset, confirmed! What do you need help with?"
|
"Conversation reset, confirmed! What do you need help with?"
|
||||||
];
|
];
|
||||||
|
|
||||||
module.exports = {resetResponses, userResetMessages};
|
|
@ -2,3 +2,4 @@ THE_TOKEN = "DISCORD_TOKEN_HERE"
|
|||||||
CHANNEL_IDS = 1094494101631680653,1094628334727614605
|
CHANNEL_IDS = 1094494101631680653,1094628334727614605
|
||||||
ROOT_IP = 192.168.0.15
|
ROOT_IP = 192.168.0.15
|
||||||
ROOT_PORT = 8000
|
ROOT_PORT = 8000
|
||||||
|
DATA_DIR = /home/USERNAME/weights
|
26
docker-compose.yml
Normal file
26
docker-compose.yml
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
version: '3.9'
|
||||||
|
|
||||||
|
services:
|
||||||
|
llama-python-server:
|
||||||
|
container_name: llama-python-server
|
||||||
|
restart: unless-stopped
|
||||||
|
build:
|
||||||
|
context: ./server
|
||||||
|
env_file: .env
|
||||||
|
volumes:
|
||||||
|
- ${DATA_DIR}/weights:/usr/src/app/models
|
||||||
|
environment:
|
||||||
|
- HOST=llama-python-server
|
||||||
|
- MODEL=./models/gpt4-x-alpaca-13b-native-4bit-128g.bin
|
||||||
|
llama-python-djs-bot:
|
||||||
|
container_name: llama-python-djs-bot
|
||||||
|
restart: unless-stopped
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
depends_on:
|
||||||
|
- llama-python-server
|
||||||
|
environment:
|
||||||
|
- THE_TOKEN
|
||||||
|
- CHANNEL_IDS
|
||||||
|
- ROOT_IP=llama-python-server
|
||||||
|
- ROOT_PORT=8000
|
21
llamabot.js
21
llamabot.js
@ -1,23 +1,16 @@
|
|||||||
const Discord = require('discord.js');
|
import "dotenv/config.js";
|
||||||
const fetch = require('node-fetch');
|
import fetch from 'node-fetch';
|
||||||
const emptyResponses = require('./assets/emptyMessages.js');
|
import { emptyResponses } from './assets/emptyMessages.js';
|
||||||
const { resetResponses, userResetMessages } = require('./assets/resetMessages.js');
|
import { resetResponses, userResetMessages } from './assets/resetMessages.js';
|
||||||
const { errorMessages, busyResponses } = require('./assets/errorMessages.js');
|
import { errorMessages, busyResponses } from './assets/errorMessages.js';
|
||||||
|
|
||||||
require('dotenv').config()
|
import { Client, GatewayIntentBits, ActivityType, Partials } from 'discord.js';
|
||||||
|
|
||||||
const {
|
|
||||||
Client,
|
|
||||||
GatewayIntentBits,
|
|
||||||
ActivityType,
|
|
||||||
Partials
|
|
||||||
} = require('discord.js');
|
|
||||||
|
|
||||||
const client = new Client({
|
const client = new Client({
|
||||||
intents: [
|
intents: [
|
||||||
GatewayIntentBits.DirectMessages,
|
GatewayIntentBits.DirectMessages,
|
||||||
GatewayIntentBits.Guilds,
|
GatewayIntentBits.Guilds,
|
||||||
GatewayIntentBits.GuildBans,
|
GatewayIntentBits.GuildModeration,
|
||||||
GatewayIntentBits.GuildMessages,
|
GatewayIntentBits.GuildMessages,
|
||||||
GatewayIntentBits.MessageContent,
|
GatewayIntentBits.MessageContent,
|
||||||
],
|
],
|
||||||
|
17
package.json
Normal file
17
package.json
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"name": "llama-cpp-python-djs-bot",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "THIS CODE IS MEANT TO BE SELF HOSTED USING THE LIBRARY: https://abetlen.github.io/llama-cpp-python/",
|
||||||
|
"main": "llamabot.js",
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"discord.js": "^14.9.0",
|
||||||
|
"dotenv": "^16.0.3",
|
||||||
|
"node-fetch": "^3.3.1"
|
||||||
|
}
|
||||||
|
}
|
11
server/Dockerfile
Normal file
11
server/Dockerfile
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
FROM python:bullseye
|
||||||
|
|
||||||
|
RUN apt-get update; \
|
||||||
|
apt-get install -y --no-install-recommends\
|
||||||
|
build-essential
|
||||||
|
|
||||||
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
|
RUN pip install --no-cache-dir llama-cpp-python[server]
|
||||||
|
|
||||||
|
CMD python3 -m llama_cpp.server
|
Loading…
Reference in New Issue
Block a user