diff --git a/commands/message/fun/chat.js b/commands/message/fun/chat.js index ca03c43..612e1e8 100644 --- a/commands/message/fun/chat.js +++ b/commands/message/fun/chat.js @@ -1,7 +1,7 @@ const { createEmbed } = require('../../../labscore/utils/embed') const { editOrReply } = require('../../../labscore/utils/message') -const { canUseLimitedTestCommands } = require('../../../labscore/utils/testing') +const { canUseLimitedTestCommands, isLimitedTestUser } = require('../../../labscore/utils/testing') const { STATICS } = require('../../../labscore/utils/statics'); const superagent = require('superagent') @@ -21,6 +21,7 @@ module.exports = { }, args: [ { name: 'prompt', default: '', required: false, help: "The starting system prompt." }, + { name: 'model', default: 'CHATGPT', required: false, help: "The model to use. (Restricted to CHATGPT)" }, ], permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.ATTACH_FILES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY], run: async (context, args) => { @@ -31,6 +32,9 @@ module.exports = { let prompt = 'You are a friendly chat bot designed to help people. You should always use gender neutral pronouns when possible.' if(args.prompt !== "") prompt = args.prompt + let model = "CHATGPT" + if(args.model && isLimitedTestUser(context.user)) model = args.model + try{ await editOrReply(context, createEmbed("ai", context, "Generating response...")) @@ -42,7 +46,7 @@ module.exports = { prompt: prompt, input: [args.text], temperature: 0.6, - model: "CHATGPT" + model: model }) let description = [smallIconPill("generative_ai", args.text), ''] diff --git a/labscore/utils/testing.js b/labscore/utils/testing.js index 91a9eb1..e28a9cb 100644 --- a/labscore/utils/testing.js +++ b/labscore/utils/testing.js @@ -7,6 +7,21 @@ if(process.env.TESTING_CHANNEL_IDS) LIMITED_TEST_CHANNELS = process.env.TESTING_ let LIMITED_TEST_USERS; if(process.env.TESTING_USER_IDS) LIMITED_TEST_USERS = process.env.TESTING_USER_IDS.split(';') +function isLimitedTestGuild(guild){ + if(LIMITED_TEST_GUILDS && LIMITED_TEST_GUILDS.includes(guild.id)) return true; + return false; +} + +function isLimitedTestChannel(channel){ + if(LIMITED_TEST_CHANNELS && LIMITED_TEST_CHANNELS.includes(channel.id)) return true; + return false; +} + +function isLimitedTestUser(user){ + if(LIMITED_TEST_USERS && LIMITED_TEST_USERS.includes(user.id)) return true; + return false; +} + function canUseLimitedTestCommands(context){ if(LIMITED_TEST_GUILDS && LIMITED_TEST_GUILDS.includes(context.guild.id)) return true; if(LIMITED_TEST_CHANNELS && LIMITED_TEST_CHANNELS.includes(context.channel.id)) return true; @@ -15,5 +30,8 @@ function canUseLimitedTestCommands(context){ } module.exports = { - canUseLimitedTestCommands + canUseLimitedTestCommands, + isLimitedTestGuild, + isLimitedTestChannel, + isLimitedTestUser } \ No newline at end of file