added version 2.0
This commit is contained in:
parent
0163d40b4e
commit
0f18925d1a
3231 changed files with 1449 additions and 374732 deletions
107
commands/single requests/gptrequest.js
Normal file
107
commands/single requests/gptrequest.js
Normal file
|
@ -0,0 +1,107 @@
|
|||
const { SlashCommandBuilder } = require("discord.js");
|
||||
const {
|
||||
getUser,
|
||||
registerUser,
|
||||
incrementQuota,
|
||||
} = require("../../libs/mysql.js");
|
||||
const { answerQuestion } = require("../../libs/openAi.js");
|
||||
const { checkLastResetDate } = require("../../libs/quotaReset.js");
|
||||
const { requestResponseEmbed, errorEmbed } = require("../../libs/embeds.js");
|
||||
const { sendLog } = require("../../libs/logs.js");
|
||||
|
||||
module.exports = {
|
||||
data: new SlashCommandBuilder()
|
||||
.setName("gptrequest")
|
||||
.setDescription("Make a single request to the GPT-4 API.")
|
||||
.addStringOption((option) =>
|
||||
option
|
||||
.setName("prompt")
|
||||
.setDescription("The prompt to send to the API.")
|
||||
.setRequired(true)
|
||||
),
|
||||
async execute(interaction) {
|
||||
interaction.deferReply();
|
||||
await checkLastResetDate();
|
||||
user = await getUser(interaction.user.id).catch((err) => {
|
||||
sendLog(err);
|
||||
|
||||
const embed = errorEmbed(
|
||||
"An error occured while trying to get your user data."
|
||||
);
|
||||
|
||||
return interaction.editReply({ embeds: [embed], ephemeral: true });
|
||||
});
|
||||
|
||||
if (!user[0]) {
|
||||
await registerUser(interaction.user.username, interaction.user.id).catch(
|
||||
(err) => {
|
||||
sendLog(err);
|
||||
|
||||
const embed = errorEmbed(
|
||||
"An error occured while trying to register you in our database."
|
||||
);
|
||||
|
||||
return interaction.editReply({ embeds: [embed], ephemeral: true });
|
||||
}
|
||||
);
|
||||
|
||||
user = await getUser(interaction.user.id).catch((err) => {
|
||||
sendLog(err);
|
||||
|
||||
const embed = errorEmbed(
|
||||
"An error occured while trying to get your user data."
|
||||
);
|
||||
|
||||
return interaction.editReply({ embeds: [embed], ephemeral: true });
|
||||
});
|
||||
}
|
||||
|
||||
if (user[0].quota >= 0.4) {
|
||||
const embed = errorEmbed(
|
||||
"You don't have enough quota to use this command."
|
||||
);
|
||||
|
||||
return await interaction.editReply({ embeds: [embed], ephemeral: true });
|
||||
}
|
||||
|
||||
response = await answerQuestion(
|
||||
interaction.options.getString("prompt")
|
||||
).catch((err) => {
|
||||
sendLog(err);
|
||||
|
||||
const embed = errorEmbed(
|
||||
"An error occured while trying to send the request to the API."
|
||||
);
|
||||
|
||||
return interaction.editReply({ embeds: [embed], ephemeral: true });
|
||||
});
|
||||
|
||||
const prompt_usage = (response.data.usage.prompt_tokens * 0.01) / 1000;
|
||||
const completion_usage =
|
||||
(response.data.usage.completion_tokens * 0.03) / 1000;
|
||||
|
||||
await incrementQuota(
|
||||
interaction.user.id,
|
||||
prompt_usage + completion_usage
|
||||
).catch((err) => {
|
||||
sendLog(err);
|
||||
|
||||
const embed = errorEmbed(
|
||||
"An error occured while trying to increment your quota."
|
||||
);
|
||||
|
||||
return interaction.editReply({ embeds: [embed], ephemeral: true });
|
||||
});
|
||||
|
||||
const embed = requestResponseEmbed(
|
||||
interaction.user,
|
||||
interaction.options.getString("prompt"),
|
||||
response.data.choices[0].message.content,
|
||||
user[0].quota,
|
||||
prompt_usage,
|
||||
completion_usage
|
||||
);
|
||||
|
||||
await interaction.editReply({ embeds: [embed] });
|
||||
},
|
||||
};
|
107
commands/single requests/quickgpt.js
Normal file
107
commands/single requests/quickgpt.js
Normal file
|
@ -0,0 +1,107 @@
|
|||
const { SlashCommandBuilder } = require("discord.js");
|
||||
const {
|
||||
getUser,
|
||||
registerUser,
|
||||
incrementQuota,
|
||||
} = require("../../libs/mysql.js");
|
||||
const { quickAnswer } = require("../../libs/openAi.js");
|
||||
const { checkLastResetDate } = require("../../libs/quotaReset.js");
|
||||
const { requestResponseEmbed, errorEmbed } = require("../../libs/embeds.js");
|
||||
const { sendLog } = require("../../libs/logs.js");
|
||||
|
||||
module.exports = {
|
||||
data: new SlashCommandBuilder()
|
||||
.setName("quickgpt")
|
||||
.setDescription("Make a single request to the GPT-3.5-turbo API.")
|
||||
.addStringOption((option) =>
|
||||
option
|
||||
.setName("prompt")
|
||||
.setDescription("The prompt to send to the API.")
|
||||
.setRequired(true)
|
||||
),
|
||||
async execute(interaction) {
|
||||
await interaction.deferReply();
|
||||
await checkLastResetDate();
|
||||
user = await getUser(interaction.user.id).catch((err) => {
|
||||
sendLog(err);
|
||||
|
||||
const embed = errorEmbed(
|
||||
"An error occured while trying to get your user data."
|
||||
);
|
||||
|
||||
return interaction.editReply({ embeds: [embed], ephemeral: true });
|
||||
});
|
||||
|
||||
if (!user[0]) {
|
||||
await registerUser(interaction.user.username, interaction.user.id).catch(
|
||||
(err) => {
|
||||
sendLog(err);
|
||||
|
||||
const embed = errorEmbed(
|
||||
"An error occured while trying to register you in our database."
|
||||
);
|
||||
|
||||
return interaction.editReply({ embeds: [embed], ephemeral: true });
|
||||
}
|
||||
);
|
||||
|
||||
user = await getUser(interaction.user.id).catch((err) => {
|
||||
sendLog(err);
|
||||
|
||||
const embed = errorEmbed(
|
||||
"An error occured while trying to get your user data."
|
||||
);
|
||||
|
||||
return interaction.editReply({ embeds: [embed], ephemeral: true });
|
||||
});
|
||||
}
|
||||
|
||||
if (user[0].quota >= 0.4) {
|
||||
const embed = errorEmbed(
|
||||
"You don't have enough quota to use this command."
|
||||
);
|
||||
|
||||
return await interaction.editReply({ embeds: [embed], ephemeral: true });
|
||||
}
|
||||
|
||||
response = await quickAnswer(interaction.options.getString("prompt")).catch(
|
||||
(err) => {
|
||||
sendLog(err);
|
||||
|
||||
const embed = errorEmbed(
|
||||
"An error occured while trying to send the request to the API."
|
||||
);
|
||||
|
||||
return interaction.editReply({ embeds: [embed], ephemeral: true });
|
||||
}
|
||||
);
|
||||
|
||||
const prompt_usage = (response.data.usage.prompt_tokens * 0.001) / 1000;
|
||||
const completion_usage =
|
||||
(response.data.usage.completion_tokens * 0.002) / 1000;
|
||||
|
||||
await incrementQuota(
|
||||
interaction.user.id,
|
||||
prompt_usage + completion_usage
|
||||
).catch((err) => {
|
||||
sendLog(err);
|
||||
|
||||
const embed = errorEmbed(
|
||||
"An error occured while trying to increment your quota."
|
||||
);
|
||||
|
||||
return interaction.editReply({ embeds: [embed], ephemeral: true });
|
||||
});
|
||||
|
||||
const embed = requestResponseEmbed(
|
||||
interaction.user,
|
||||
interaction.options.getString("prompt"),
|
||||
response.data.choices[0].message.content,
|
||||
user[0].quota,
|
||||
prompt_usage,
|
||||
completion_usage
|
||||
);
|
||||
|
||||
await interaction.editReply({ embeds: [embed] });
|
||||
},
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue