利用技術・システム構成

vaccine-chatbot の技術スタックと役割(運用前提も含む)

全体像

ローカルLLM(Ollama)と RAG(PDF→ベクトル検索)を組み合わせ、厚労省資料に基づく回答を返すプロトタイプです。 フロント(GitHub Pages)からは、HTTPS で公開した API(FastAPI)に対して /chat を呼び出します。

バックエンド(API)

補足: ブラウザ上で blocked by CORS policy と表示されても、実際には API 側が 500 を返している(またはトンネル先が落ちている)だけのことがあります。 まず GET /healthGET /statusGET /sources の順で 200 が返るかを確認してください(UIは起動時に /sources を呼びます)。

APIバージョン: 0.2.0
API の主なエンドポイント: /health, /status, /diagnostics, /sources, /reload, /search, /generate, /chat

LLM / 埋め込み(ローカル推論)

初回の遅さ対策として、API起動時に埋め込み処理を軽くウォームアップします(失敗しても API は落としません)。

RAG(PDF取り込み・検索)

PDFは ./pdfs(環境変数 PDF_DIR)に配置します。追加/更新後は POST /reload で索引(検索の準備)を作り直して反映できます。 スキャンPDFでテキスト抽出できない場合は「要OCR」として案内されます。必要なら ocrmypdf による自動OCRも可能です(環境変数 OCR_MODE=auto / OCR_LANG など。macOS例: brew install ocrmypdf tesseract)。 チャンク分割は CHUNK_SIZE / CHUNK_OVERLAP で調整できます。

フロントエンド(GitHub Pages)

公開/運用(例)

クイックトンネル(Quick Tunnel)はURLが変わるため、常時稼働は固定トンネル(named tunnel)が推奨です(README参照)。

主要ライブラリ(requirements.txt)