3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【目指せ完走賞】なりかくんのDiscordAdvent Calendar 2022

Day 23

【23日目】Discordで会話Botを作ってみる

Last updated at Posted at 2022-12-22

はじめに

こんにちは、なりかくんです。
今回は、discord.jsを使って会話Botを作ってみようと思います。

会話AIに使うサービス

今回は、会話AIにmeboという会話AI構築サービスを使ってみようと思います。
https://mebo.work/

まず無料で登録します。
image.png

登録出来たらダッシュボードから「新規作成して開始する」をクリックします。
image.png

ここで作成するエージェントの名前などを設定します。
image.png
image.png

設定出来たら、「登録して開始する」をクリックします。
image.png

これで登録完了です。
image.png

トレーニングなどでAIを強化していきます。トレーニングしたら反映します
image.png

プレビューで試してみると、会話はほぼ成り立ちませんが一応会話は出来ます。
image.png

では、公開してみましょう。今回は限定公開で扱います。
image.png

APIを有効にします。そして、出てくる情報をメモしておきます。
image.png

discord.jsに組み込む

では、discord.jsに組み込みたいと思います。
今回は、以下のようなコードを作りました。

mebo.js
const request = require("request");
const { Client, GatewayIntentBits, IntentsBitField } = require('discord.js');
const { token } = require('./config.json');

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

client.on('ready', () => {
	console.log(`${client.user.tag}でログインしました。`);
});

client.login(token);

client.on('messageCreate', async message => {
	try {
        if (message.author.bot) return;
        let meboResult = await mebo(message.channel.id, message.content);
        message.reply(meboResult.bestResponse.utterance);
	} catch (error) {
		console.error(error);
	}
});

function mebo(chId, msg) {
    return new Promise((resolve, reject) => {
        request({
            url: "https://api-mebo.dev/api",
            method: "POST",
            json: {
                api_key: "API Key",
                agent_id: "Agent ID",
                utterance: msg,
                uid: chId
            }
        }, function (error, response, body) {
            if (error) {
                reject(error);
            } else {
                resolve(body);
            }
        });
    });
}

実際に動かしてみます。意外と結構会話がなりちます。
image.png

おじさんの相手には最適かもしれないですね。
image.png

今回は、meboを使って会話Botを作ってみました。無料プランだと会話できる回数が限られているので、他に無料で使えるやつがあればそれを使うのもいいかもしれないです。

以上です、最後までお読みいただきありがとうございました。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?