【要約】業務の非効率さを解決したくてAIを調べたらRAGに行き着いた話 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
設計業務における以下の課題を解決対象としている。
- ・膨大なデータの収集、整理、精査に伴う工数増。
- ・専門知識のベテランへの集中と属人化。
- ・他部署からの問い合わせ対応による業務中断。
- ・新人が必要な情報に即座にアクセスできない環境。
- ・LLM特有のハルシネーション(虚偽回答)のリスク。
// Approach
1.**インデックス構築 (
build_db.py)**- ・
DirectoryLoaderでドキュメントを読み込み。 - ・
RecursiveCharacterTextSplitterを使用。 - ・
chunk_size=400,chunk_overlap=80で分割。 - ・
OpenAI text-embedding-3-smallでベクトル化しChromaに保存。
2.**QAアプリ実装 (
app.py)**- ・
retrieverで関連チャンクを検索。 - ・LangChainのChainを用いて、コンテキストと質問をLLMへ渡す。
- ・
StreamlitでチャットUIを構築。
// Result
RAGASを用いた定量評価を実施。
- ・Faithfulness(忠実度): 0.917
- ・Context Recall(検索網羅率): 1.000
- ・Context Precision(検索精度): 1.000
- ・Answer Relevancy(回答適合度): 0.648
Senior Engineer Insight
> プロトタイプ構築のスピード感は評価できる。技術スタックも標準的だ。しかし、Answer Relevancyが0.6台という点は実運用において致命的。質問と資料の表現の乖離が原因だ。実戦投入には、ハイブリッド検索やリランクの導入が必須。また、ライブラリの頻繁な破壊的変更への対応コストも考慮すべき。技術の骨格よりも、データの質と検索戦略の設計こそが、RAGの成否を分ける。