mirror of
https://github.com/kevinthedang/discord-ollama.git
synced 2025-12-12 03:46:08 -05:00
Compare commits
3 Commits
0056d9173c
...
1b7c927a3a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1b7c927a3a | ||
|
|
9a2744f646 | ||
|
|
c7f9f19c88 |
@@ -7,7 +7,7 @@ services:
|
||||
build: ./ # find docker file in designated path
|
||||
container_name: discord
|
||||
restart: always # rebuild container always
|
||||
image: kevinthedang/discord-ollama:0.8.5s
|
||||
image: kevinthedang/discord-ollama:0.8.5
|
||||
environment:
|
||||
CLIENT_TOKEN: ${CLIENT_TOKEN}
|
||||
OLLAMA_IP: ${OLLAMA_IP}
|
||||
|
||||
@@ -33,15 +33,16 @@ const messageHistory: Queue<UserMessage> = new Queue<UserMessage>
|
||||
registerEvents(client, Events, messageHistory, ollama, Keys.defaultModel)
|
||||
|
||||
// Try to connect to redis
|
||||
try {
|
||||
await redis.connect()
|
||||
console.log('[Redis] Successfully Connected')
|
||||
} catch(error) {
|
||||
console.error('[Redis] Connection Error. See error below:\n', error)
|
||||
console.warn('[Redis] Failed to connect to Redis Database, using local system')
|
||||
// TODO: create boolean flag that will probably be used in messageCreate.ts if redis database is down
|
||||
// When implementing this boolean flag, move connection to database BEFORE the registerEvents method
|
||||
}
|
||||
await redis.connect()
|
||||
.then(response => {
|
||||
console.log('[Redis] Successfully Connected')
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('[Redis] Connection Error. See error below:\n', error)
|
||||
console.warn('[Redis] Failed to connect to Redis Database, using local system')
|
||||
// TODO: create boolean flag that will probably be used in messageCreate.ts if redis database is down
|
||||
// When implementing this boolean flag, move connection to database BEFORE the registerEvents method
|
||||
})
|
||||
|
||||
// Try to log in the client
|
||||
await client.login(Keys.clientToken)
|
||||
|
||||
@@ -22,7 +22,6 @@ export const DeleteModel: SlashCommand = {
|
||||
// defer reply to avoid timeout
|
||||
await interaction.deferReply()
|
||||
const modelInput: string = interaction.options.get('model-name')!!.value as string
|
||||
let modelExists: boolean
|
||||
|
||||
// fetch channel and message
|
||||
const channel = await client.channels.fetch(interaction.channelId)
|
||||
@@ -38,17 +37,21 @@ export const DeleteModel: SlashCommand = {
|
||||
}
|
||||
|
||||
// check if model exists
|
||||
try {
|
||||
modelExists = await ollama.list()
|
||||
.then(response => response.models.some((model: ModelResponse) => model.name.startsWith(modelInput)))
|
||||
} catch (error) {
|
||||
const modelExists = await ollama.list()
|
||||
.then(response => response.models.some((model: ModelResponse) => model.name.startsWith(modelInput)))
|
||||
.catch(error => {
|
||||
console.error(`[Command: delete-model] Failed to connect with Ollama service. Error: ${error.message}`)
|
||||
})
|
||||
|
||||
// Validate for any issue or if service is running
|
||||
if (!modelExists) {
|
||||
interaction.editReply({
|
||||
content: `The Ollama service is not running. Please turn on/download the [service](https://ollama.com/).`
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
|
||||
try {
|
||||
// call ollama to delete model
|
||||
if (modelExists) {
|
||||
|
||||
@@ -22,7 +22,6 @@ export const PullModel: SlashCommand = {
|
||||
// defer reply to avoid timeout
|
||||
await interaction.deferReply()
|
||||
const modelInput: string = interaction.options.get('model-to-pull')!!.value as string
|
||||
let modelExists: boolean
|
||||
|
||||
// fetch channel and message
|
||||
const channel = await client.channels.fetch(interaction.channelId)
|
||||
@@ -38,10 +37,14 @@ export const PullModel: SlashCommand = {
|
||||
}
|
||||
|
||||
// check if model was already pulled, if the ollama service isn't running throw error
|
||||
try {
|
||||
modelExists = await ollama.list()
|
||||
.then(response => response.models.some((model: ModelResponse) => model.name.startsWith(modelInput)))
|
||||
} catch (error) {
|
||||
const modelExists = await ollama.list()
|
||||
.then(response => response.models.some((model: ModelResponse) => model.name.startsWith(modelInput)))
|
||||
.catch(error => {
|
||||
console.error(`[Command: pull-model] Failed to connect with Ollama service. Error: ${error.message}`)
|
||||
})
|
||||
|
||||
// Validate for any issue or if service is running
|
||||
if (!modelExists) {
|
||||
interaction.editReply({
|
||||
content: `The Ollama service is not running. Please turn on/download the [service](https://ollama.com/).`
|
||||
})
|
||||
|
||||
@@ -45,6 +45,9 @@ export const SwitchModel: SlashCommand = {
|
||||
}
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error(`[Command: switch-model] Failed to connect with Ollama service. Error: ${error.message}`)
|
||||
})
|
||||
// todo: problem can be here if async messes up
|
||||
if (switchSuccess) {
|
||||
// set model now that it exists
|
||||
|
||||
Reference in New Issue
Block a user