RAGとMCPを備えた検索エンジン
LangChain、Model Context Protocol (MCP)、Retrieval-Augmented Generation (RAG)、Ollama を組み合わせて、Web を検索し、情報を取得し、関連する回答を提供できるエージェント AI システムを作成する強力な検索エンジンです。
特徴
Exa API を使用した Web 検索機能
FireCrawl を使用した Web コンテンツ検索
より関連性の高い情報抽出のためのRAG(検索拡張生成)
標準化されたツール呼び出しのためのMCP(モデルコンテキストプロトコル)サーバー
Ollama経由のローカルLLMとOpenAI経由のクラウドベースLLMの両方をサポート
直接検索、エージェントベースの検索、またはサーバーモードをサポートする柔軟なアーキテクチャ
包括的なエラー処理と適切なフォールバック
型ヒント付きのPython 3.13+
効率的なWeb操作のための非同期処理
Related MCP server: WebSearch-MCP
建築
このプロジェクトでは、いくつかの重要なコンポーネントが統合されています。
検索モジュール: Exa API を使用して Web を検索し、FireCrawl を使用してコンテンツを取得します。
RAGモジュール: ドキュメントを埋め込み、チャンク化し、FAISSベクトルストアに保存します。
MCPサーバー:ツール呼び出しのための標準化されたプロトコルを提供します
エージェント: 検索とRAG機能を使用するLangChainベースのエージェント
プロジェクト構造
はじめる
前提条件
Python 3.13以上
詩(オプション、開発用)
Exa と FireCrawl の API キー
(オプション)Ollamaをローカルにインストール
(オプション)OpenAI APIキー
インストール
リポジトリをクローンする
依存関係をインストールする
.envファイルを作成します (docs/env_template.md を参照として使用します)
使用法
アプリケーションには主に 3 つの動作モードがあります。
1. ダイレクト検索モード(デフォルト)
2. エージェントモード
3. MCPサーバーモード
カスタムホストとポートを指定することもできます。
Ollamaの使用(オプション)
ローカル埋め込みと LLM 機能に Ollama を使用するには:
Ollamaをインストール: https://ollama.ai/
モデルをプルします:
.envファイルで適切な環境変数を設定します。
発達
このプロジェクトは、次のベスト プラクティスに従います。
コードフォーマット: 一貫したコードスタイルのための黒とisort
型チェック: 静的型チェック用の mypy
リンティング: コード品質のためのflake8
テスト: 単体テストと統合テスト用の pytest
環境管理: 環境変数を管理するための python-dotenv
ログ記録: コンソールとファイルの両方に構造化されたログ記録
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。
謝辞
エージェントフレームワークのLangChain
標準化されたツール呼び出しのためのモデルコンテキストプロトコル
ローカルLLM機能のためのOllama
ウェブ検索機能のExa
ウェブコンテンツ検索のためのFireCrawl