[AI] 複数の大規模言語モデル(LLM)と対話できるチャットツールのソースコードをGitHubに公開

プログラミング

AIのプログラムの勉強中です。自分が欲しいなと思っていた「複数の大規模言語モデル(LLM)と対話できるチャットツール」を作成したので、GitHubに公開しました。
勉強中のプログラムなので色々と不備もありますが、そこはご理解ください。

GitHub - Jun-kaneko/SelectLLM_Dic_Notion: GradioをGUIとして、LLMを選択してチャットができます
GradioをGUIとして、LLMを選択してチャットができます. Contribute to Jun-kaneko/SelectLLM_Dic_Notion development by creating an account on GitReadMore

機能概略

以下の機能があります。

<1> LLMを選択してチャットができる。
<2> 質問のタイプが選択できる。「通常の質問」と「英単語の質問」を切り替え可能。
<3> Notion連携。チャットした内容を自分のNotionに送信できる

環境

私は今は、Railway(https://railway.com/)でこのプログラムを動作させていますが、同じようなサービス(Hugging FaceのSpacesなど)であればそのまま起動できると思います。

GitHubのREADME.mdに記載した環境変数を定義が必要ですが、プログラムはそのままで使えると思います。

機能

<起動時の画面>

① 「質問タイプを選択」

英単語の意味を調べるときに使います。システムプロンプトを自分用にアレンジできるので、自分の欲しい情報をプログラムの中に書いておけば、チャット内で指示が不要です。
例えば、私のシステムプロンプトは以下です。

あなたはフレンドリーな優秀な英語の講師です。英語の文法、単語について聞かれたら、英語学習者中級レベルの人に対してわかりやすく説明をしてください。また、例や面白情報があると良いです。回答は日本語です。

回答の一部ですが以下のような返信がきます。私は特に「面白情報」が気に入っています。

「通常の質問」の場合、「②のシステムプロンプト」はデフォルトのままでも良いですし、画面から変更することもできます。

システムプロンプトのプログラムは以下のあたりです。

② システムプロンプト

説明が後になりましたが、LLMと会話をする場合、「システムプロンプト」と「ユーザプロンプト」があります。
「システムプロンプト」は、LLMから回答をしてもらうときのおおまかな方針です。キャラクターのようなものです。詳しく説明してほしいとか、初心者向けに説明して欲しいとかです。
「ユーザプロンプト」は、質問そのものです。ChatGPTでしたら私たちが通常入力している質問です。

私はこのプログラムを英和辞典としても使っているので、「システムプロンプト」を簡単に切り替えられるようにしています。

③ モデルを選択

以下が選択できます。

  • OpenAI(GPT-4o-mini)
  • Anthropic(Claude-3-Haiku)
  • Google(Gemini-2.5-Flash)
  • DeeepSeek(deepseek-chat)

使用するためには、各LLMからAPIキーを取得して環境変数に入れてください。
ストリーミング応答(LLMからの応答がリアルタイムで表示される)しています。

その他のLLMも追加可能です。
Claudeだけちょっとインターフェースが異なるのですが、他は同じ処理方法です。

④ チャット履歴、⑤ユーザ入力

⑤のユーザ入力が右側、左側にアイコンとLLMからの回答がチャット形式で表示されます。

⑥ 送信、⑦クリア

⑤のユーザ入力に質問を入れて、⑥送信を押すと問い合わせが送られます。

⑦のクリアで質問、回答がクリアされます。
クリアは、ChatGPTの「新しいチャット」と同じようなもので、今までのやり取りの内容をすべて忘れます。

今回のアプリでは、やり取りをしたチャットを保存しておく機能はありませんので、クリアは気をつけてください。

⑧ Notionに送信する

チャット履歴をNotionの指定されたデータベースに保存できます。質問タイプによって異なるデータベースに保存することも可能です。

私は、英単語は別のDBに保存しています。

以下はちょっと前のプログラムでアップしたときのもので、GitHubに上がっているブログラムとはちょっと表示方法が変わっています。

まとめ

このプログラムが何かの参考になれば嬉しいです。

プログラムの環境を作ったり、LLMのAPIを取得したりとするのが面倒だが使ってみたい、という人がいたら連絡をいただけたらと思います。

その場合に、事前に理解しておいていただきたいのはHuggingFace, Railway, LLMのAPIなどを使用するので、ある程度快適に使用するためには0円では運用はできないです。

それでもChatGPTのような月に何千円もかかりません。
多少不便ではあるが使えれば良いというのであれば、月に100円もかかりませんし、多少便利に使うのであっても月に1,000円はかかりません。

次のAIプログラムのアイデアがあるので、できたらまたこちらで公開します。
LangGraphかCrewAIを使う予定です。

END

コメント

タイトルとURLをコピーしました