メむンコンテンツぞスキップ
芋出し画像

DifyでDiscordにGemini招埅しおみた Discord pyによるbotずDify AIPの連携

    こんにちは、Rcatです。
    今回はDiscordのボットを䜜成しお、その䞭身をGeminiにするこずで、擬䌌的にGeminiを招埅しおみたす。
    プログラミング芁玠ずしおは、次のようなこずが挙げられたす。
    チャットボットの堎合のリク゚ストの仕様。1぀の䌚話ずしお継続入力をどう行うのか。BOTの䞭でどうやっお連携するのか。
    それでは早速やっおいきたしょう。

    本蚘事は99%無料です。

    本シリヌズはこちら

    次回はこちら

    寄り道はこちら

    DIfy系目次蚘事

    Dify偎の準備

    チャットボットの準備

    たずは"チャットボット"を䜜成したす。
    初回の蚘事でチャットボットを䜜成しおいるので、これを改造したす。

    改造ずいっおも倧したこずをするわけではありたせん。
    手順のずころにチャットボットずしお振る舞っおくれるように䞀蚀入れるだけです。
    ひずたずこの状態でAPIキヌを発行したす。

    あなたはずあるチャットルヌムの参加者です。
    問いかけに適切に応答しおください。
    画像

    APIが違う!?

    前回はテキストゞェネレヌタヌでのAPIを芋おいきたしたが、チャットボットの堎合は䌚話などがあるので、どういう颚にやっおいるのか確認し盎したずころ、どうやらURLから違うみたいです。
    URLは次の通りです。
    "http://ホスト/v1/chat-messages"

    チャットボットのリク゚ストボディ

    チャットボットの堎合、リク゚ストボディを倉化がありたす。
    具䜓的にはむンプットが空になり、ク゚リが倖に出おいる点ですね。

    画像
    APIアクセスより

    チャットボットの堎合、入力テキストはqueryに入れたす。
    テキストゞェネレヌタヌで䜿った"inputs"は䜿甚したせん。
    たた、連続した䌚話を行う堎合のパラメヌタヌずしお"conversation_id"ずいうのが存圚したす。これを䜿うこずで䌚話のやり取りが成立するみたいです。

    チャットボットのリク゚スト関数

    前回䜜ったクラスに以䞋のチャットボット専甚の関数を远加したした。
    やっおるこずずしおは、リク゚ストボディを䜜る関数を専甚のものに倉曎したした。
    たた、このクラスは1぀の䌚話にのみ察応する前提で、盎前のやり取りを保持し続ける堎合は"conversation_id"を含めるこずで䌚話ずしお凊理を行いたす。

    画像

    Discord偎の準備

    BOTの䜜成

    䞋蚘の蚘事を参考にボットを䜜成し、招埅しずいおください。

    BOTプログラムの䜜成抜粋

    こちらはBOTを䜜成で玹介した蚘事末尟で、玹介しおいるテンプレヌトを䜿甚しお䜜っおいきたす。䞊から䞋たで解説するず長くなっおしたうので抜粋したす。
    党文に関しおは本蚘事、最䞋郚をご確認ください。

    こちらがメッセヌゞが送られおきた時のむベントになりたす。
    2぀の特定のメッセヌゞ以倖は党おAIに回したす。

    画像

    AIに回しお凊理する郚分はこちらです。
    難しいこずはありたせん。入力されたメッセヌゞを新しく䜜ったチャット甚のメ゜ッドに枡すだけです。

    画像

    少し前にも玹介したしたが、最埌はこちらの関数でAIに凊理を投げたす。
    䌚話が続きなのか、新芏なのかはnewコマンドが入力された時のグロヌバル倉数の倀によっおこの関数のResume匕数に枡されるずいう仕組みです。
    Resumeが真の堎合は、前回のメッセヌゞにくっ぀いおいたメッセヌゞIDを぀けお送信するこずで続いおいる1぀の䌚話ずしお凊理したす。

    画像

    実際にチャットしおみる

    DiscordでGeminiにず䌚話する

    それでは早速チャットしおみたしょう。
    前回の䌚話の内容が考慮されおいるのかどうかを確認するため、あえお2回目以降は䞻語を省いおいたす。

    画像

    チャットの結果は䞊蚘の通りです。
    どうやらきちんず考慮されおいるみたいですね。
    1回目に猫に぀いおの話を振りたした。
    2回目にどこが奜きか聞いおいたす。ポむントはこの時、"猫のどこが奜き"ず聞いおいないずころです。
    それにもかかわらず、猫の奜きなずころをあげおきたずいうこずは前回の䌚話が考慮されおいるずいう蚌拠です。
    そしお3回目、前回の䌚話がさらに考慮されおいるのかもう䞀床詊したずころ猫の鳎き声に関する返答が来たので、こちらもきちんず考慮されおいるようです。

    実はログで芋られる

    先ほどは䌚話の内容から今たでのやり取りが考慮されおいるかどうかを刀別したしたが、実はこれログから芋られたす。
    䞀番最新のやり取りを芋るず、今たで送った党おの䌚話がログに蚘されおいるこずがわかりたす。

    画像

    䜕回前たで考慮されるのか

    ずりあえず20回
    これはダメみたいですね。

    Rcat999 
    これからいく぀かの情報が入力されたす。
    最埌に、凊理開始ずいった時点で凊理を開始しおください。
    そうでない堎合は継続入力です。
    Gemini
     — 今日 18:26
    了解したした。情報を入力しおください。凊理開始ず指瀺があるたでお埅ちしたす。
    Rcat999 — 今日 18:27
    ねこはかわいい
    Gemini
     — 今日 18:27
    確かに、猫は非垞に愛らしく、人気のあるペットです。
    Rcat999 — 今日 18:27
    猫はもふもふ
    Gemini
     — 今日 18:27
    はい、猫の柔らかくもふもふした毛䞊みは、倚くの人にずっお倧きな魅力です。撫でたり抱きしめたりするず、ずおも心地よいですよね。
    Rcat999 — 今日 18:27
    猫はニャヌず鳎く
    Gemini
     — 今日 18:27
    はい、猫は通垞「ニャヌ」ずいう音で鳎きたす。この鳎き声は、コミュニケヌションや感情衚珟に䜿甚され、さたざたな意味を持぀こずができたす。䟋えば、空腹、愛情、泚意を匕くずきなどに「ニャヌ」ず鳎きたす。
    Rcat999 — 今日 18:27
    猫のしっぜはしなやか
    Gemini
     — 今日 18:27
    はい、猫のしっぜは非垞にしなやかで柔軟です。バランスをずったり、感情を衚珟したり、コミュニケヌションをずったりするために䜿甚されたす。䟋えば、しっぜを高く䞊げおいれば機嫌が良く、しっぜを䞋げおいれば怖がっおいるこずを瀺しおいたす。
    Rcat999 — 今日 18:27
    猫の詰めは鋭い
    Gemini
     — 今日 18:27
    はい、猫の爪は非垞に鋭く、獲物を捕らえたり、朚に登ったりするために䜿甚されたす。たた、爪ずぎをするこずで爪を研ぎ、健康に保っおいたす。ただし、猫の爪は定期的にトリミングしお、家具や人を傷぀けないようにする必芁がありたす。
    Rcat999 — 今日 18:28
    猫は狩人
    Gemini
     — 今日 18:28
    はい、猫は生たれながらのハンタヌです。鋭い爪、鋭い歯、優れた芖力ず聎力を備えおおり、獲物を远跡しお捕らえるこずができたす。䞻にネズミや鳥などの小動物を狩りたすが、堎合によっおは魚や昆虫も食べたす。
    Rcat999 — 今日 18:28
    猫はマタタビ奜き
    Gemini
     — 今日 18:28
    はい、倚くの猫はマタタビずいう怍物に含たれるネペタラクトンずいう成分に反応したす。この成分は猫に陶酔感や倚幞感を䞎え、転げ回ったり、よだれを流したり、鳎いたりするなどの奇劙な行動を匕き起こしたす。ただし、すべおの猫がマタタビに反応するわけではありたせん。
    Rcat999 — 今日 18:28
    䞉毛猫
    Gemini
     — 今日 18:28
    䞉毛猫ずは、癜、黒、オレンゞの3色を被毛に持぀猫のこずです。ほずんどがメスで、オスは非垞にたれです。䞉毛猫の毛色は遺䌝的に決たっおおり、染色䜓の䞍掻性化によっお発生したす。
    Rcat999 — 今日 18:28
    猫は良く寝る
    Gemini
     — 今日 18:28
    はい、猫は睡眠を倚く必芁ずする動物です。平均しお1日1216時間、堎合によっおは20時間以䞊も寝るこずがありたす。猫の睡眠は浅いレム睡眠ず深いノンレム睡眠を亀互に繰り返しおおり、獲物から身を守りながら䌑息をずっおいたす。
    Rcat999 — 今日 18:29
    猫じゃらし
    Gemini
     — 今日 18:29
    猫じゃらしずは、猫の遊び道具の䞀皮で、棒の先に矜根や垃などの小物が取り付けられおいたす。猫は猫じゃらしを远いかけたり、じゃれたりするのが倧奜きで、運動䞍足解消やストレス発散に圹立ちたす。たた、飌い䞻ずのコミュニケヌションツヌルずしおも䜿われたす。
    Rcat999 — 今日 18:29
    猫はキヌボヌドで寝る
    Gemini
     — 今日 18:29
    はい、猫はキヌボヌドの䞊で寝るこずを奜む傟向がありたす。キヌボヌドは暖かく、猫の䜓にフィットする圢をしおいるため、居心地の良い堎所になりたす。たた、飌い䞻が近くにいるこずが倚く、安心感を埗られるこずも理由の䞀぀です。ただし、猫がキヌボヌドの䞊で寝おいるずきは、誀っおキヌを抌さないように泚意が必芁です。
    Rcat999 — 今日 18:30
    猫は颚呂で暎れる
    Gemini
     — 今日 18:30
    倚くの猫は氎に濡れるこずを嫌がり、お颚呂で暎れるこずがありたす。猫の被毛は氎をはじく性質があり、濡れるず䜓枩が䜎䞋しおしたいたす。そのため、猫は本胜的に氎堎を避けたす。たた、お颚呂は狭い空間で逃げ堎がないため、猫にずっおストレスを感じやすい環境になりたす。
    Rcat999 — 今日 18:30
    猫はCAT
    Gemini
     — 今日 18:30
    はい、「CAT」は英語で「猫」を意味する単語です。この蚀葉は、䞭䞖英語の「catte」に由来し、さらに叀いフランス語の「chat」に遡りたす。猫を衚す蚀葉ずしお広く䜿甚されおおり、䞖界䞭の倚くの蚀語で採甚されおいたす。
    Rcat999 — 今日 18:31
    子猫は元気
    Gemini
     — 今日 18:31
    はい、子猫は非垞に元気で掻発です。奜奇心旺盛で遊び奜きで、䞀日䞭走り回ったり、じゃれたりしおいたす。子猫の゚ネルギヌレベルは、健康状態や幎霢によっお異なりたすが、䞀般的に生埌68か月たでは最も掻発です。この期間は、子猫が呚囲の䞖界を探怜し、運動胜力や瀟䌚的スキルを身に぀ける重芁な時期です。
    Rcat999 — 今日 18:31
    猫はこた぀で䞞くなる
    Gemini
     — 今日 18:31
    はい、猫は寒い時期になるずこた぀の䞭で䞞くなるこずを奜みたす。こた぀は暖かく居心地の良い堎所であり、猫にずっお理想的な隠れ堎所になりたす。猫は狭い空間を奜む傟向があり、こた぀の囲いは安党で安心感を䞎えたす。たた、こた぀の䞭で䞞くなるず、猫は呚囲の環境から遮断され、リラックスしお眠るこずができたす。
    Rcat999 — 今日 18:32
    肉球
    Gemini
     — 今日 18:32
    肉球ずは、猫の足の裏にある柔らかいパッド状の郚分のこずです。肉球は脂肪組織ず匟性繊維で構成されおおり、衝撃を吞収し、猫が静かに歩くのに圹立ちたす。たた、肉球には汗腺があり、猫が䜓枩を調節するのに圹立ちたす。さらに、肉球にはフェロモン腺があり、猫が自分の瞄匵りをマヌキングするために䜿甚したす。
    Rcat999 — 今日 18:32
    猫のひげ
    Gemini
     — 今日 18:32
    猫のひげは、感芚受容噚ずしお機胜する特殊な毛です。ひげは顔のさたざたな堎所に生えおおり、䞻に獲物の怜出、呚囲の環境の探査、バランスの維持に䜿甚されたす。ひげは非垞に敏感で、空気の流れや振動を感知できたす。猫はひげを䜿っお、暗闇でも障害物を避けたり、獲物の䜍眮を特定したりするこずができたす。たた、ひげは猫の感情を衚珟するのにも圹立ちたす。䟋えば、ひげを前に突き出すず譊戒しおいるこずを瀺し、ひげを埌ろに倒すずリラックスしおいるこずを瀺したす。
    Rcat999 — 今日 18:33
    舌はざらざら
    Gemini
     — 今日 18:33
    はい、猫の舌はざらざらしおいたす。猫の舌には、乳頭ず呌ばれる小さな突起がびっしり生えおおり、これがざらざらした感觊を䞎えたす。乳頭は、グルヌミング、獲物の捕獲、食物の摂取に圹立ちたす。乳頭は逆向きに生えおおり、猫が毛づくろいをする際、毛玉や汚れを取り陀くのに圹立ちたす。たた、乳頭は獲物の骚や毛皮をこそげ萜ずすのにも䜿甚されたす。さらに、乳頭は食物を口の䞭に運ぶのにも圹立ちたす。
    Rcat999 — 今日 18:34
    すらりずした黒猫
    Gemini
     — 今日 18:34
    すらりずした黒猫は、その優雅さず神秘的な矎しさで知られおいたす。その挆黒の被毛は、闇の䞭で溶け蟌み、獲物に忍び寄ったり、危険から身を隠したりするのに圹立ちたす。たた、すらりずした䜓型は、俊敏さず玠早さを可胜にし、獲物を远いかけたり、狭い隙間をすり抜けたりするのに圹立ちたす。黒猫は、独立心があり、愛情深く、遊び奜きな性栌で知られおいたす。そのナニヌクな矎しさず魅力的な性栌により、黒猫は䞖界䞭で愛されおいたす。
    Rcat999 — 今日 18:34
    狭いずころが奜き
    Gemini
     — 今日 18:34
    猫は狭い堎所が倧奜きです。これは、安党で居心地の良い隠れ堎所を提䟛するためです。狭い堎所は、捕食者から身を守り、倖敵から離れおリラックスできる堎所を提䟛したす。たた、狭い堎所は猫に安心感を䞎え、ストレスを軜枛するのに圹立ちたす。猫は、段ボヌル箱、キャットハりス、ベッドの䞋など、狭い堎所があればどこにでも隠れたす。狭い堎所で䞞くなるず、猫は暖かく、保護されおいるず感じるこずができたす。
    Rcat999 — 今日 18:34
    キャットりォヌク
    Gemini
     — 今日 18:34
    キャットりォヌクずは、猫が登ったり、歩いたり、遊んだりできる、壁や倩井に取り付けられた構造物のこずです。キャットりォヌクは、猫に垂盎空間を提䟛し、運動や遊びの機䌚を増やすのに圹立ちたす。たた、キャットりォヌクは、猫が呚囲の環境を高い堎所から芳察したり、獲物を探したりするのにも䜿甚できたす。キャットりォヌクは、単䞀の棚から耇雑な倚局構造たで、さたざたな圢状やサむズで利甚できたす。猫の奜みに合わせお、カヌペット、ロヌプ、垃地などのさたざたな玠材で䜜るこずができたす。
    Rcat999 — 今日 18:35
    凊理開始
    私が2番目に蚀ったこずは䜕?
    Gemini
     — 今日 18:35
    凊理を開始するには、私が最初に䜕を蚀ったのかを把握する必芁がありたす。チャットの履歎を提䟛しおいただければ、2番目に䜕を蚀ったのかを特定できたす。

    答えですが、玄11回のようです。
    䞊蚘チャットのプロンプトログを確認したした。
    するず䞀番䞊に来おいるのは"猫はCAT"でした。
    ぀たり、これより前の情報は倱われおいるずいうこずです。

    画像

    ただし、これはあくたでも今回の話であり11回ずいう状態から倚分決たっおる倀ではないんだず思いたす。
    䟋えば、モデルのトヌクン䞊限に収たるようにDifyが調敎しおいるかずか考えられたす。少なくずも簡単なチャットであれば問題ないず思われたす。

    たずめ

    今回はチャットボットをAPIで動かしおみたした。
    今たでテキストゞェネレヌタヌ前提で色々やっおいたので、チャットボットが少し仕様が違うずいうのが想定倖でした。しかし、おかげでチャットボットの䜿甚もわかっおきたので、䜕かしらのアプリケヌションを䜜る時に生かせそうです。

    プログラムの党文

    BOT

    䞊でも玹介した通り䞋蚘の蚘事で玹介しおいるテンプレヌトを䜿甚しお䜜っおいたす。
    あくたでも必芁な郚分だけ曞き換えおいるので、䞍芁な郚分も倚いです。

     
     

    Rcat999

     
     
    モノづくりが趣味。 "売っおないなら自分で䜜ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワヌク 党郚やりたす。 蚘事執筆はAI䞍䜿甚。 ご連絡や利甚芏玄はプロフィヌル蚘事参照。

    あなたぞのおすすめ