Newer
Older
TelosDB / journals / 20260219-0005-Vibrato形態素解析復旧.md

20260219-0005-Vibrato形態素解析復旧

作業実施の理由

日本語の形態素解析(わかち書き)機能が、Lindera の辞書ダウンロード失敗(DNS/ネットワークの問題)によりビルドエラーとなっており、正規の日本語検索が利用できない状態だったため、より堅牢な Vibrato への切り替えを行い、機能を復旧させる。

指示内容

  • 背景: Lindera のビルドエラーにより、日本語の LSA 検索機能が停止していた。
  • 観点: Windows 環境でのビルド安定性、外部ネットワーク不要の自己完結型バイナリ。
  • 意図: 辞書をバイナリに埋め込み、どのような環境でも確実に日本語検索が動くようにする。

指摘事項とその対応

  • 指摘: 辞書ダウンロードの URL が 404 や HTML 取得になってしまう。
  • 対応: GitHub の Release ページから .tar.xz アーカイブを取得し、内部の system.dic.zst を正しく抽出・配置する手順を確立した。
  • 指摘: include_bytes! のパスエラー。
  • 対応: ファイル位置からの正確な相対パスに修正し、コンパイルを通した。

作業詳細

  1. AIエージェントは Lindera を削除し、Cargo.tomlvibratozstd を導入した。
  2. AIエージェントは daac-tools/vibrato のリリースから辞書アーカイブを救出し、src-tauri/resources/ipadic.vibrato.zst に配置した。
    • 取得元URL: https://github.com/daac-tools/vibrato/releases/download/v0.5.0/ipadic-mecab-2_7_0.tar.xz
    • アーカイブ内パス: ipadic-mecab-2_7_0/system.dic.zst
  3. AIエージェントは src/utils/tokenizer.rs を全面的に刷新し、Vibrato による形態素解析ラッパーを実装した。
  4. AIエージェントは辞書読み込みロジックにて、解凍済みバイナリと圧縮バイナリの両方に対応するハイブリッド方式を採用し、堅牢性を高めた。

Mermaid図解

sequenceDiagram
    participant U as ユーザー
    participant A as AIエージェント (Antigravity)
    participant C as Compiler (Cargo)
    participant D as Dictionary (Asset)

    A->>U: Vibrato への切り替えを提案
    U->>A: 承認
    A->>D: 辞書アーカイブのダウンロード
    A->>A: アーカイブから辞書を抽出
    A->>A: tokenizer.rs の実装修正
    A->>C: cargo test 実行
    C-->>A: Test Passed (わかち書き成功)
    A->>U: 作業完了報告

AI視点での結果

Vibrato への移行により、Lindera で発生していたネットワーク起因のビルドエラーを完全に解消した。辞書をバイナリに埋め込んだことで、ポータビリティが向上し、TelosDB の本来の目的である「どこでも動く軽量検索」が日本語でも実現可能となった。