Open18

ChatGPTをDiscordに接続するやで

かえでかえで

とりあえず何かしらのサーバーはホスティングしないといけないっぽい。
Discordの公式のBotドライバーがDiscord.jsとJSなのでNode.jsでやろうと思います。

現在Node.jsに絶賛はまっているのでちょうどいい🧡🧡🧡

かえでかえで

必要なものざっくり

  • サーバー 今回はGCPの無料枠で契約してるやつを使う
  • OpenAIのアカウントとキー ちなみにGPTの利用は有料
  • Discord Bot 新しく作った
    • Discord botを動かすためのDiscord.js
  • OpenAIのライブラリもあるっぽい?
かえでかえで

いや・・・
まずそもそも

Node.js 16.9.0 or newer is required.

らしい

node -v

v10.19.0

だったので、とりあえずNode.jsをアップデート

かえでかえで

普通に

npm install discord.js

でいけた。
あとnpmをアップデートできるよと言われたのでしておいた。

かえでかえで

一旦これでできたよ


//ここから上で秘密鍵やらTokenやらを設定しておいてください

const client = new Client({
  intents: [GatewayIntentBits.Guilds, GatewayIntentBits.MessageContent, GatewayIntentBits.GuildMessages]
});

const openai = new OpenAIApi(configuration);

async function chat(text){
  const completion = await openai.createChatCompletion({
    model: "gpt-3.5-turbo",
    messages: [{ role: "user", content: text }],
  });
  return completion.data.choices[0].message.content ;
}


//起動確認
client.once('ready', () => {
    console.log(`${client.user.tag} Ready`);
});

//返答
client.on('messageCreate', message => {
    if (message.author.bot) {
        return;
    }
    
    
    else {
      (async()=>{
        mes = await chat(message.content);
        await message.channel.send(mes);

      })();
    }
});