From 727731695e6f98b003efbfb859af3b2849aad1d7 Mon Sep 17 00:00:00 2001
From: Kevin Dang <77701718+kevinthedang@users.noreply.github.com>
Date: Tue, 2 Apr 2024 22:04:09 -0700
Subject: [PATCH] Chat Queue Persistence (#33)
* fix: workflow env
* update: center title on readme
* update: readme goals and format
* add: icons in readme
* fix: plus margin
* update: environment variables in contr.
* add: queue for chat history
* add: set -e for workflow failure
* update: version increment
* fix: client null info
* fix: shutoff issues
---
.github/CONTRIBUTING.md | 5 +--
.github/workflows/build-test.yml | 5 ++-
README.md | 25 ++++++++++-
docker-compose.yml | 2 +-
imgs/discord-icon.png | Bin 0 -> 95964 bytes
imgs/grey-plus.png | Bin 0 -> 6702 bytes
imgs/ollama-icon.png | Bin 0 -> 49723 bytes
package-lock.json | 4 +-
package.json | 2 +-
src/client.ts | 14 ++++---
src/commands/shutoff.ts | 10 ++++-
src/events/messageCreate.ts | 16 ++++---
src/queues/queue.ts | 70 +++++++++++++++++++++++++++++++
src/utils/events.ts | 7 ++--
src/utils/messageEmbed.ts | 5 ++-
src/utils/messageNormal.ts | 5 ++-
16 files changed, 139 insertions(+), 31 deletions(-)
create mode 100644 imgs/discord-icon.png
create mode 100644 imgs/grey-plus.png
create mode 100644 imgs/ollama-icon.png
create mode 100644 src/queues/queue.ts
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 5f4a155..c023cd4 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -23,10 +23,7 @@
## Environment
* You will need two environment files:
* `.env`: for running the bot
- * `CLIENT_TOKEN`: the token for the bot to log in
- * `CHANNEL_ID`: the id of the channel you wish for the bot to listen in
- * `MODEL`: the mode you wish to use
- * `BOT_UID`: the user id the bot goes by (the id of the discord user)
+ * Please refer to `.env.sample` for all environment variables to include
* `.env.dev.local`: also runs the bot, but with development variables
* Currently there are no differences between the two, but when needed, you may add environment variables as needed.
diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml
index bef512d..03ae91e 100644
--- a/.github/workflows/build-test.yml
+++ b/.github/workflows/build-test.yml
@@ -37,9 +37,12 @@ jobs:
echo CLIENT_UID = ${{ secrets.CLIENT_UID }} >> .env
echo OLLAMA_IP = ${{ secrets.OLLAMA_IP }} >> .env
echo OLLAMA_PORT = ${{ secrets.OLLAMA_PORT }} >> .env
-
+ echo ADMINS = ${{ secrets.ADMINS }} >> .env
+
+ # set -e ensures if nohup fails, this section fails
- name: Startup Discord Bot Client
run: |
+ set -e
nohup npm run prod &
Discord-Ollama-Container-Build: # test docker build and run
diff --git a/README.md b/README.md
index 82d9402..dadb5a7 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,26 @@
-# Discord Ollama Integration [](https://creativecommons.org/licenses/by-nc/4.0/) [](https://github.com/kevinthedang/discord-ollama/releases/latest)
-Ollama is an AI model management tool that allows users to install and use custom large language models locally. The goal is to create a discord bot that will utilize Ollama and chat with it on a Discord server! Also, allow others to create their own models personalized for their own servers!
+
+



+
Discord Ollama Integration
+
Ollama as your Discord AI Assistant
+
+
+
+
+
+## About/Goals
+Ollama is an AI model management tool that allows users to install and use custom large language models locally.
+The project aims to:
+* [x] Create a Discord bot that will utilize Ollama and chat to chat with users!
+ * [ ] User Preferences on Chat
+ * [ ] Message Persistance on Channels and Threads
+ * [x] Containerization with Docker
+ * [x] Slash Commands Compatible
+ * [ ] Generated Token Length Handling for >2000 or >6000 characters
+ * [ ] External WebUI Integration
+ * [ ] Administrator Role Compatible
+* [ ] Allow others to create their own models personalized for their own servers!
+ * [ ] Documentation on creating your own LLM
+ * [ ] Documentation on web scrapping and cleaning
## Environment Setup
* Clone this repo using `git clone https://github.com/kevinthedang/discord-ollama.git` or just use [GitHub Desktop](https://desktop.github.com/) to clone the repo.
diff --git a/docker-compose.yml b/docker-compose.yml
index e298b5b..2b0f93b 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -8,7 +8,7 @@ services:
build: ./ # find docker file in designated path
container_name: discord
restart: always # rebuild container always
- image: discord/bot:0.3.4
+ image: discord/bot:0.3.5
environment:
CLIENT_TOKEN: ${CLIENT_TOKEN}
GUILD_ID: ${GUILD_ID}
diff --git a/imgs/discord-icon.png b/imgs/discord-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..c5d49da26a3bb4364e94f52d8dc3cd6afdd59f34
GIT binary patch
literal 95964
zcmeFZXH=6})HZyhql|-s4hl*U#ezzSh2COEK|m=2QUw9&(mTOnq*v)(ML>G*B`CcG
zrS}K{Vx)v5LI?@TcZYin_fU+ny%JT!@=QCyxG*kh=>mmU7{|x}!
z;3NMZ0N@Jt{b>RKvPl5I{VJ{gi9FcA>he(a9_u0tAIttDq{5Ht;G=`4DoS_3-{24F
zP6G^JasB@A?kz2k$(5Nyr55I%LhA?XtrECiU3fRYPpsAd^2uq7iyh%ld&1xS@XwM+
zxMuMoF8(pn+bijKa-5^a0i=vTxPtVx8xn8sy*Q83_>l0@^ojj3iKD@$(XVEmQz04}
z)n~*p2UCpJ(miLr9d18<=~dTTL!oLzAx-1HSnq0mG%an&W;8fhiH_xoojh!=#I=O98X7w~pyXqXpR^G@{szG&o8CuFo1L2LEJI}P~E&3Y2U
zoghuqnh@e>uY#LuKyYwy;r(y0yFPdDeOnz1Z*WI?ARSU7v@0X4yz{9EHSJN}I2^~9
z#krJq%zFHmLQTI7-WP|GK}zqVuYC2wQcn{OR;zBbmJFGdgInN?wgp6H^$mmXo^CjkAJ+f~-1t4*U~bM7y)bPzD$BWn*5bxz4QOt+Re!
zehns9IcLW+O`C4GSu!^lwms1s&pm+5Dj|3-X86{*8?VhJdXspL96NT5
zG*M1V8g|M40nN3Z4AY2(@*yAj_&NT8lY8H2Pb+=}8(&SOTNeQ6K55{_enVDy3{d65
zi0e@JD|L9&r)d;~xZSG&>kkSJ?y8L2*_jI*?n~oA{@z%SPq>hW$P95fy7qf(=>=Oh
zIo}&}y95BU=ji#S9nmo2HZ}=PG)Ai^b3c}SJ$U5hgS&U{c3idk%72V|Ggn8I+&H{2
zgz9vNj1mZDqjqxB?B4S?pW0QRe_pv+*|{wb%wevEfFX3l-?Gpq7d9TQW5;5iczmGY
z`rz+ztuouW%vMT&di7YZ*HAtVhDZ
zEhrzS1~e*4klMA=VG<*&2OMwNf3a*W3M<*dsj}^kErlz0zEZhFb9r?Gc`HurLpMZh
z=I_A!ckjNq{0B|7)in>JmY1@YriG^QaL?GZO5NeD4wOO0?T!UhUfP!hyyTV(vEh~t
zT}vC(i(9)La86LLT;O5A+KA(=CUFUp4bIVd{Lj;PRfdt4{&D)*$`wh78+T%Y*qtn}
zGyccWPEbz0Tzx*FLNi@Gisq+2Qc05%OX1kMzpEYK}A~_^7UCNtRD{j
zc`T+IvcpRHI_%P!dl4=u7K#qy=xAT(Rfg?~X0j5*!X+EUk-+}Z@Hj5!
z{=#yMb>3TB$hSfs7l1^D&5q2Cu9rH{fd>SXL%-Hdxt%s{OI=6Cq#4L^_QwPVhno+c
z$<&aTap*X(+Ed#SA5tUNs>bchSS57DVC6yc6WLf$KVO#}6raSN7Zl8*RnpEtMa4`U
z)LqG#t?@VHFJj#8j1@?Th1pk1)_9tlE3w`PR(q=z98h4qNel{ls_Jf#KgHd4@8_yx
z+4k*mo+X18mfcYqS{SYBj~8L$BR6Q0iWzY~*DhxVe7hSG-1Wx^T59IopFUpJ^#s(1
zUr^1N*}Pv2MN40*$m_1@=)8q7QRdc^J=Grvf=%ZT6*Q$LaWQ#pINQL9xxmu?_LGdQ
zbld5#m=<4}d4zeXtdms+DmXxx3dxialUVh1bgXm2-L7aKqVDzugiY~-e1y1p2;E~rp
zbamG<5Xnf~HLZbm81%FOe
z?R)~H{mmTwZ+(NS4E1y%q%=J%2tH`A5#ulZTu^Z6R~u|7;}mxQ@l8}va%pG#F~%Nk
zSM^qWl!=7q!2?!ppgE92=q9c`)O1CHbjNWXewi}dew5L5K92oI&KtE)-rAU8adSbz
zSPcqzM%i9VBaRhM@4mmr$k+pR-Kg-KR)3+c4}iD-b_f!#~_qdo3E-(OLcVnB(m`^^c&_D&z|S<
zkdQvOm>M-)8WJ3?>lNT*tBoFO57`ctc7#c-xUuZt?fd=EiqT5k!ECcDhOr&0cVCQT
zZeb%;UH$aa(n{ECbc{AQcDuDSr|PdH6^o^7Vlu>EfhPBaDz!QVn#)n4g-nlmf!$92
z0Y2wi)Rl=^vX@lTg1hkCR2$SsGFw5v_4A*N6Z!`(%PY|;%i@h>4{7f}HxN9(h
zCe(Ro(-4Q-md32Tnq%zOBzg7H%&@7FYk7y--G%RAG<3(q4XOFx$Ztw#-Z0(m#8cUP
zNE{;HMTbWov>*sIlS}9uGBg(BI%mYq#ZbjlJxpP-F#l6bxwx00Ao(d3eoie78Or&?
z_xWi1Zw#@IJ*h7sD<^8piuPv&cMZHS8!9gPxw$3%uvtMZK}vXsA<@a8=l+9s@sR~C
zhS`KcN=TPh?%0CmQ&+_j>q$t*L#H4%2A%_E7M(t0+Gv6@F`MOh3`UqLb!4pl;d+(h
z?Z)f2j?Wo#ne^EuW1D|cgqx`Amm=N;Kf0Hnmjo4J{
ztIp3HhSsmHf<0eo44ppVC#2>D<3FuIWgO$x_jiD7HnNfRB%6v-&gJ7V-5w(_n8!U{Jby-@nFI0e(kiJxw9iCOSQu;B_%(7%+tPB
z%Y0_eoPGN6n3gKhX5^i>HD*veRPef52^n_J8gK3>*l=#eQG;Q}{uKATZrVACRbdIR
z%fS)~RxLbs^qwPryP&l7As=Hur_J1JWkyIlO}G341E1WzkBg_-6x<@FNbBwBZFvjX
zGkT2|kXzCDpZf}w$8sEx$2_@2
5!-xJUWXYIE`jS*`4wRB?cuc(aPgwL=t}OhD+HHYDMCntE{k6QU
zmGTiEAyqZ`xqr0KxSJrMJ;cwik>=6N>n43@ug~Nu`+}d8AWV5ON+M3MTwa|@Y|zx4
z@vBRrxj#trVcP5|J9SlRZ-gq@Ni{oIh+m+eUcIy<#c4~+qwV2wMvwbF=fVtUA&K_tt(OI(jHw*>z~KdA
zNB4Ynk1&lXuU5Pmwt8?iK2m+?vLJ22mDXC7hsf=CIM4Zf^bjXwo{rm?O~ohm&4VN>
z#d|sOys4X@k)Ycj&bbLaVDvZ%&0ZExH^xxK-w6(F4THkGA2|cM;@`5A@el@b0v*pV
z6fuwpWM{Jt2ZuiD7p66|YNjJk3i&U$-cbu=Zt7Td5ENo)g85A%OHea9A0rmJpSD)o
z`H+FBz{Q@7H)5p?4{lt!{(fS-G6)RZ@;-Vv20{U`(BGp|DA`&AX;15KN91)a$m8H=
z+1ClJqR&UW*%>S3d|5G7^6`B&@
z>p#`$aR2dhpC;;E)0xBREsXX3JD=3Iu_@Q+%HCHk=(?o1fn12y92&vl{DedqJxm~L
zkQvjGHMPOY&~O71GW{4U#_~!Dg(=^rDu#wt8H2fW0_}Bde{Oj*Daf=Evu|r)HRq$3(CGl43z%beEPKGAj9~8geREua3k5C
zL2YZ>dkOgzfrVDhAuyu*c=NsRPP1jK
FL55%?-l0JOp>g>#CVU
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⪚oNavQ65h$oz%62ZrXrW
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 |