blob: efd2ff5fbddc5610db2a408f9f79c8a58b78d1ae (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
import { ollamaGlobal } from '../storage/consts.js';
import { ollama } from '../utils/ollama.js';
import { AttachmentBuilder } from 'discord.js';
import { guildSettings } from '../models/guild-settings.js';
import 'dotenv/config';
export async function ChatBot(msg, args) {
const guildSetting = await guildSettings.findOne({ where: { guildID: msg.guild.id } });
if (!guildSetting.ollamaEnabled) return;
if (!ollamaGlobal) return msg.reply('Sorry, the LLM chatbot feature has been turned off.');
try {
const loadingMessage = await msg.reply('Thinking...');
const response = await ollama.chat({
model: process.env.OLLAMA_MODEL,
messages: [{ role: 'user', content: args }],
});
let content = response.message.content;
if (content.length > 2000) {
const attachment = new AttachmentBuilder(Buffer.from(content, 'utf-8'), { name: 'output.txt' });
return await loadingMessage.edit({ files: [attachment] });
} else {
return await loadingMessage.edit({ content });
}
} catch (err) {
console.error(err);
await msg.reply(`Something went wrong. [Submit an issue at the AleeBot repository.](<https://github.com/Alee14/AleeBot/issues>)\nMessage:\n\`\`\`${err.stack}\`\`\``);
}
}
|