ポートフォリオに戻る

プロジェクト詳細 ②

社内ナレッジベースシステム

社内ナレッジベースシステム

社内規程・業務マニュアルを対象に、全文検索とベクトル検索を組み合わせたハイブリッド検索基盤を構築。PM兼システムアーキテクトとして、技術選定から推進まで担当した在職プロジェクトです。

Python FastAPI Vue3 Elasticsearch Kafka

プロジェクト概要

分散した社内文書を、全文+ベクトルのハイブリッド検索で効率的に探せるようにする基盤。

多くの企業では社内文書が複数システムやフォルダに分散し、必要な情報を探すのに時間がかかります。そこで全文検索とベクトル検索を組み合わせたナレッジ検索基盤を構築し、社内規程・業務マニュアルを効率的に検索・活用できるシステムを開発しました。次段階のマルチモーダル基盤(AIKnowledgeBaseNew)につながる、検索基盤づくりの起点です。

背景・課題

  • 社内文書が複数システム/フォルダに分散
  • 必要な情報の探索に時間がかかる
  • 文書形式が不統一で索引設計が難しい

主な機能

  • 全文検索(キーワード一致)
  • ベクトル検索(意味的な近さ)
  • ハイブリッド検索による精度向上
  • Kafka非同期での文書処理・索引更新

担当(役割)

  • PM / システムアーキテクト
  • 全体アーキテクチャ設計・技術選定
  • 開発計画の策定とプロジェクト推進
  • ハイブリッド検索・非同期基盤の設計

アーキテクチャ

システム構成

Vueフロントからの検索リクエストを、FastAPIが受け、Elasticsearchのハイブリッド検索とLLM回答生成につなぐ構成です。重い文書処理はKafkaで非同期化しています。

flowchart LR
    U["利用者(Vue3 フロント)"]
    API["FastAPI"]
    K["Kafka(非同期処理)"]
    ES["Elasticsearch(全文 + ベクトル)"]
    L["LLM(回答生成)"]
    U --> API
    API --> K
    K --> ES
    API --> ES
    ES --> L
    L --> API

なぜハイブリッド検索か

全文検索はキーワードや固有名詞に強く、ベクトル検索は意味的に近い文書を拾えます。両者を組み合わせることで検索の再現率と精度を両立しました。

なぜKafkaで非同期化か

文書処理と索引更新を非同期化することで、アップロード時のタイムアウトを避け、大量文書でも安定して処理できる構成にしました。