Bolnee-Chat: ビジネスウェブサイト向けセルフホスト型RAGチャットボット

Bolnee-Chatは、ビジネスウェブサイトへの統合を目的として設計された、セルフホスト型の検索拡張生成(RAG)チャットボットプラットフォームです。特定のウェブサイトのコンテンツやアップロードされたドキュメントに基づいたAIボットを作成でき、シンプルな2行のJavaScriptスニペットを介してデプロイ可能です。ベンダーロックインやメッセージごとの課金を避けるため、ユーザー自身のインフラストラクチャ全体でホストされます。

コア機能とRAGの実装

Bolnee-Chatは、RAGパイプラインを使用して、チャットボットの回答がLLMの内部知識のみに頼るのではなく、提供されたソース資料に基づいていることを保証します。

知識の取り込み

プラットフォームは、知識を追加するための2つの主要な方法をサポートしています:

  • Website Crawling: Pythonベースのクローラー(crawler/crawler.py)が、h1h2p、およびliタグからコンテンツを抽出します。クローラーはrobots.txtを尊重し、サイトマップとホームページを処理して、重複を排除し、コンテンツをJSONファイルに保存します。
  • File Uploads: システムはPDF、TXT、MD、およびDOCXファイルをインジェスト(取り込み)します。

インデックス作成と検索

取り込まれたデータは、チャンクに分割され、Full-Text Search (FTS) を使用してSQLiteデータベースに保存されます。ユーザーがボットにクエリを投げると、システムはこれらのチャンクに基づいて根拠のあるプロンプトを構築し、回答に使用されたソースの引用を提供します。データベースに一致するソースが見た当たらない場合、設定可能なフォールバックメッセージがトリガーされます。

技術アーキテクチャとスタック

Bolnee-Chatは、モダンなTypeScriptとPythonのスタックで構築されており、容易なデプロイのために軽量なデータベースを利用しています。

テックスタック

  • Frontend: React 19, Vite, TypeScript, および Tailwind CSS。
  • Backend: Express (Node.js 18+) および Python 3.10+(クローラー用)。
  • Database: チャットボット、ソース、チャンク、およびメッセージを保存するためのSQLite(better-sqlite3経由)。
  • LLM Integration: OpenRouter, OpenAI, Groq, Ollama, および vLLMを含む、あらゆるOpenAI互換プロバイダーをサポートしています。

セキュリティとストレージ

  • API Key Encryption: プロバイダーのAPIキーとベースURLはAES-256-GCMを使用して暗号化され、クライアント側の埋め込みスニペットには決して公開されません。
  • Avatar Management: ユーザーがアップロードしたアバター(PNG, JPG, WEBP、最大2MB)は、データURLから保存されたファイルに変換され、/api/public/avatar/:idを介してアクセス可能になります。

デプロイと統合

プラットフォームは、VercelやCloudflare Pagesを含む、さまざまなホスティング環境への迅速なデプロイ向けに設計されています。

統合プロセス

統合は、ウェブサイトの</body>タグの直前に、設定オブジェクトとスクリプトタグを追加することで実現されます:

<script>
  window.BotConfig = {
    botName: "Customer Bot",
    avatar: "https://your-domain/api/public/avatar/BOT_ID",
    chatUrl: "https://your-domain/api/public/chat/BOT_ID",
    accentColor: "#111111",
    greeting: "Hi! How can I help?",
    theme: "dark"
  };
</script>
<script src="https://your-domain/chatbot-widget.js" async></script>

ウィジェット機能

  • Persistence: localStorageを使用してVISITOR_IDとチャット履歴を保存し、挨拶が一度しか表示されないこと、および会話がセッションを越えて維持されることを保証します。
  • Streaming: リアルタイムの回答ストリーミングのために、Server-Sent Events (SSE) を実装しています。
  • UI/UX: 右下にフローティングバブル、スライディングウィンドウ(360x520)、およびテーマ対応のスタイリング(light, dark, または auto)を特徴としています。

管理者管理

Bolnee-Chatは、複数のボットを管理し、インタラクションを監視するための包括的なダッシュボードを含んでいます。

ボット管理

管理者は、ボットの外観(名前、アバター、アクセントカラー、およびテーマ)をカスタマイズし、APIから直接利用可能なモデルを取得することでLLMプロバイダーを構成できます。

分析とエクスポート

訪問者のチャットは、visitorIdおよびIPアドレスによってグループ化されます。ダッシュボードは、総メッセージ数とアクティブセッション(過去5分間に個別の訪問者として定義)に関する統計を提供します。チャットログは、CSV (Excel), JSON, または PDF 形式でエクスポート可能です。

Sources