* cleanup and documentation * added dev message for parser * grammar and other type replacements
47 lines
1.2 KiB
TypeScript
47 lines
1.2 KiB
TypeScript
import { Client, GatewayIntentBits } from 'discord.js'
|
|
import { UserMessage, registerEvents } from './utils/events.js'
|
|
import Events from './events/index.js'
|
|
import { Ollama } from 'ollama'
|
|
|
|
// Import keys/tokens
|
|
import Keys from './keys.js'
|
|
|
|
|
|
// initialize the client with the following permissions when logging in
|
|
const client = new Client({
|
|
intents: [
|
|
GatewayIntentBits.Guilds,
|
|
GatewayIntentBits.GuildMembers,
|
|
GatewayIntentBits.GuildMessages,
|
|
GatewayIntentBits.MessageContent
|
|
]
|
|
});
|
|
|
|
// initialize connection to ollama container
|
|
const ollama = new Ollama({
|
|
host: `http://${Keys.ipAddress}:${Keys.portAddress}`,
|
|
})
|
|
|
|
// Create Queue managed by Events
|
|
const messageHistory: [UserMessage] = [
|
|
{
|
|
role: 'system',
|
|
content: 'Your name is Ollama GU'
|
|
}
|
|
]
|
|
|
|
/**
|
|
* register events for bot to listen to in discord
|
|
* @param messageHistory message history for the llm
|
|
* @param Events events to register
|
|
* @param client the bot reference
|
|
* @param Keys tokens from .env files
|
|
*/
|
|
registerEvents(client, Events, messageHistory, Keys, ollama)
|
|
|
|
// Try to log in the client
|
|
await client.login(Keys.clientToken)
|
|
.catch((error) => {
|
|
console.error('[Login Error]', error)
|
|
process.exit(1)
|
|
}) |