Murphy IRC Bot:ローカルOllamaインスタンスとIRCをつなぐボット

Tool

概要

Murphy IRC Botは、ローカル環境で動作するOllamaの言語モデルをIRCチャネルと接続し、チャットインターフェースを実現するボットです。BunというJavaScriptランタイムを用いて実装されており、外部依存を持たず軽量に動作します。ユーザーがIRC上で「!murphy」コマンドを使うと、その後に続く文章をOllamaのAPIに送信。生成されたテキスト応答をIRCチャネルに返信します。設定ファイルでIRCサーバーやチャネル名、使用モデルなどを柔軟に変更可能で、TCP/TLS両対応の通信機能も備えています。自宅サーバーなどローカル環境でAIチャットを手軽に利用したい方に適したツールです。

GitHub

リポジトリの統計情報

  • スター数: 2
  • フォーク数: 0
  • ウォッチャー数: 2
  • コミット数: 2
  • ファイル数: 4
  • メインの言語: JavaScript

主な特徴

  • Bunランタイムを用いたシンプルで高速なIRCボット実装
  • ローカルOllamaインスタンスの言語モデル呼び出しをIRCコマンドで操作可能
  • TCPおよびTLS接続に対応し、複数チャネルの監視が可能
  • 外部パッケージ不要で設定ファイルから柔軟に環境を切り替えられる

技術的なポイント

Murphy IRC Botは、JavaScriptの新しいランタイム「Bun」を活用して開発されている点が最大の特徴です。Bunは高速なJSエンジンと統合されたパッケージマネージャを備えており、Node.jsとは異なる軽量かつ高速な実行環境を提供します。このボットはBunの標準機能のみで実装されており、外部ライブラリの導入を排除することで依存関係の煩雑さを回避しています。

IRCクライアント機能は、TCPまたはTLSによるIRCサーバーへのソケット接続で実現。設定ファイル(config.json)からホスト名、ポート番号、TLS利用有無、ニックネーム、監視チャネル、使用するOllamaモデル名などを読み込み、柔軟に環境に合わせて接続設定が可能です。TLS接続により安全な通信もサポートしています。

IRC上では、「!murphy」というコマンドをトリガーとして機能します。ユーザーがチャネルで「!murphy <質問や命令>」の形で投稿すると、その後に続く文字列を抜き出し、ローカルのOllama APIエンドポイント「/api/generate」へHTTP POSTリクエストを送信します。ストリーミングレスポンスを利用せず、一括で生成結果を取得。返されたテキストをIRCチャネルに投稿し、対話形式のやり取りを実現します。

この設計により、Ollamaのローカル言語モデルを活用したAIチャットボットを、外部サービスに依存せずに簡単にIRC上で利用可能です。また、Bunの軽量かつ高速な処理により、低遅延での応答を実現。開発者はソースコードをカスタマイズして拡張も容易であり、必要に応じて複数チャネルやコマンドの追加対応も可能です。

まとめると、Murphy IRC Botは最新のJavaScriptランタイム技術とローカルAIモデルを組み合わせ、シンプルながら実用的なIRCチャットボットの実装例として注目に値します。特にネットワーク環境に制限があるローカル環境やプライバシー重視の用途に適しており、OSSとしての拡張性も期待できます。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: Git管理対象外ファイルの指定
  • README.md: プロジェクト概要と使い方の説明
  • config.example.json: 設定ファイルのサンプル(IRC接続情報やOllama設定)
  • murphy.js: メインのIRCボット実装スクリプト

まとめ

Bunで軽量実装されたローカルOllama連携IRCボットのシンプルかつ実用的なサンプル。

リポジトリ情報: