AI読書コパイロット (ai_reading_copilot)

AI/ML

概要

AI Reading Copilotは、ユーザーの「読書感想」を入力すると、それを元に高品質な書評を自動生成するプロトタイプです。内部ではSentence Transformersでテキストをベクトル化し、FAISSによる近傍検索で既存の関連書評を取り出してコンテキストに組み込みます。その上でRAGパイプラインとして大規模言語モデル(GLMや智谱AIなど)に適切なプロンプトを与え、求める文体での書評を生成。さらにAIによる自動スコアリング機能で生成物の品質も評価します。UIはStreamlitで提供され、ローカル実行で簡単に試せます。(約300字)

GitHub

リポジトリの統計情報

  • スター数: 5
  • フォーク数: 0
  • ウォッチャー数: 5
  • コミット数: 3
  • ファイル数: 8
  • メインの言語: Python

主な特徴

  • RAGパイプライン:埋め込み(Sentence Transformers) → FAISS検索 → LLM生成の流れを実装
  • マルチスタイル生成:口語〜論評的な文体まで複数の書評スタイルに対応
  • 自動品質評価:生成された書評をAIが採点して品質指標を返す
  • 簡易Web UI:Streamlitでローカル動作、すぐに試用可能

技術的なポイント

このプロジェクトの中核は「既存知識の補助を受けて高品質な文章を生成する」RAGの実装です。まずユーザー入力(読書感想)をSentence Transformersでベクトル化し、FAISSによって事前に索引化された書評コーパスから類似文を高速に検索します。検索結果はLLMへのプロンプトに組み込まれ、モデルは参照情報を踏まえたうえで指定した文体・長さの書評を生成します。利点は、モデルの“幻覚”を抑えつつ、既存レビューの具体例を参照して説得力のある出力を作る点です。実装面ではFAISSの索引作成と検索パラメータ(クラスタ数や近傍数)、Embeddingモデルの選択が精度に直結します。また、LLMとのやり取りではプロンプト設計(テンプレート化やコンテキスト長の管理)と、品質評価用のスコアリングプロンプトが重要になります。現状はローカルで完結する構成で、将来的な改善点としてはベクトルDBのスケールアップ(Milvus/Pinecone等)、多言語対応、モデル切り替えのための抽象化、生成物のフェアネス/バイアスチェックなどが考えられます。(約700字)

プロジェクトの構成

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

  • .gitignore: file
  • README.md: file
  • app.py: file(Streamlitアプリのエントリ。UIとユーザー入力→RAGパイプライン呼び出しを担当)
  • data: dir(書評コーパスやデモ用データを格納)
  • rag: dir(RAG関連の処理群。埋め込み、FAISS構築・検索、プロンプト生成、LLM呼び出しを含む)
  • requirements.txt: file(依存パッケージ。sentence-transformers, faiss, streamlitなどが列挙)
  • utils.py: file(補助的なユーティリティ関数。入出力やフォーマット処理)
  • config.py: file(モデルや検索パラメータを管理する設定)

…他 3 ファイル

各ファイルの役割(補足)

  • app.py: ユーザー入力を受け取り、RAGモジュールを順次呼ぶことで書評生成とスコア表示を行う。ローカルで streamlit run app.py すれば起動。
  • rag/embedding.py(想定): Sentence Transformersを用いてテキストをベクトル化。モデル選定で性能が変わるため容易に差し替えられる設計が望ましい。
  • rag/faiss_index.py(想定): FAISSで索引を作成し、近傍検索を実行。インデックスの保存/読み込み処理を含む。
  • rag/generator.py(想定): 検索結果とユーザー入力を組み合わせ、プロンプトを構築してLLMに問い合わせる部分。出力の整形や多様な文体のテンプレートを管理。

使い方(簡易)

  1. 依存関係をインストール: pip install -r requirements.txt
  2. Streamlitで起動: streamlit run app.py
  3. ブラウザで http://localhost:8501 を開き、読書感想を入力して生成ボタンを押す。

改良ポイントと実運用上の注意

  • セキュリティ/プライバシー: ローカルで動かす限り問題は小さいが、外部LLMを叩く場合は入力に個人情報が含まれないよう留意が必要です。
  • スケーラビリティ: FAISSは高速だがインメモリでの運用が前提。大規模データではMilvusやPinecone等の外部ベクトルDBを検討。
  • 評価: 自動スコアは参考値。実運用ではヒューマン評価を交えた品質検証が不可欠。
  • プロンプト設計: 出力の一貫性向上にはテンプレート管理とリザルトポストプロセッシングが有効。

まとめ

RAG×LLMで手軽に試せる書評生成プロトタイプ。拡張性が高く実験用途に適する。(約50字)

リポジトリ情報:

READMEの抜粋:

AI Reading Copilot

一个基于 RAG + 大语言模型 的智能书评生成助手。

项目功能

  • 输入阅读感受生成书评
  • 基于 FAISS 向量检索相关书评
  • 支持不同书评生成风格
  • AI 自动评分生成书评质量
  • Web 界面交互(Streamlit)

技术架构

RAG Pipeline;

用户输入

Embedding 向量化

FAISS 检索相关书评

构建 Prompt

LLM 生成书评

AI 质量评分

技术栈

  • Python
  • FAISS
  • Sentence Transformers
  • GLM / 智谱 AI
  • Streamlit

运行方式

安装依赖:

pip install -r requirements.txt

启动应用:

streamlit run app.py

打开浏览器:

http://localhost:8501

项目结构:

ai_read...