コンテンツにスキップ
検索語を入力してください

    セマンティック検索

    dagaynの semantic_search_nodes_tool はFTS5全文検索とベクトル類似度を組み合わせたハイブリッド検索を提供する。埋め込みが無い環境でもFTSのみで動作する。

    dagayn install --mode <mode> で既定戦略を選ぶ。

    モード概要ネットワーク
    fts-onlyFTS5 のみ不要
    local-embeddingBGE-M3 GGUF + llama.cpp sidecar初回モデル取得のみ
    local-embedding-llama / lowQwen3-Embedding sidecar同上
    リモート APIOpenAI / Google / MiniMax 等

    機密リポジトリでは fts-only または local-embedding を推奨する。

    Terminal window
    dagayn build --local-embedding
    dagayn update --local-embedding
    dagayn build --local-embedding --mode llama-qwen3

    MCPからは embed_graph_tool が相当する。

    オプション用途
    --local-embedding-timeoutsidecar 起動待ち
    --local-embedding-request-timeout1リクエストのタイムアウト
    --local-embedding-batch-size既定 1(sidecar)
    --local-embedding-bin autollama-server 自動選択

    build後は常に利用可能。porter + unicode61トークナイザ。

    種別内容
    シンボル名login, AuthService
    qualified namesrc/auth.py::login
    生成トークンOpenAIEmbeddingProvideropen ai embedding provider
    シグネチャ / docstring関数の型情報・説明
    Markdown 本文DocSection / DocBody のテキスト

    かな・漢字を含むソース / ドキュメントは、利用可能時にMeCab互換トークナイザで分割してからFTSに投入する。ASCII語はそのまま残し、混在文書でも英語シンボル名が検索できる。

    1. クエリ全文をそのままBM25
    2. 自然言語から抽出した識別子トークン(snake_case / PascalCase / camelCase)ごとに再検索

    例:"tests for embed_graph"embed_graph トークンでもヒットする。

    cosine similarityで近傍を取る。埋め込み構築後のみ有効。

    テキストモード(material / narrative)

    Section titled “テキストモード(material / narrative)”

    同一ノードに2種類のベクトルを保持できる。

    モード向くクエリテキストの出所
    material目的説明、「何をする関数か」名前、docstring、隣接コメント
    narrative手順・プロセス、「どう動くか」呼び出し・読み書き・ループ等の静的ファクト

    Intent rerankがクエリを軽量ヒューリスティックで分類し、どちらのベクトルを重視するか切り替える。

    FTSランキングとembeddingランキングを Reciprocal Rank Fusion(k=10)でマージする。

    [ \text{RRF score}(d) = \sum_i \frac{1}{k + \text{rank}_i(d)} ]

    k=10はスコアを ~0.05–0.2に広げるキャリブレーション用(教科書的な60より小さい)。単一リストの順序は保ちつつ、別リストからの追加証拠で順位が入れ替わる。

    処理条件倍率
    Kind boostPascalCase クエリClass / Type ×1.5
    Kind boostsnake_case クエリFunction ×1.5
    Kind boostdotted pathqualified name ×2.0
    Context-file boostcontext_files 指定×1.5
    Test deboostis_test=True×0.6(テスト明示クエリ時は除外)
    Intent rerank識別子 / 目的 / 手順 / docmaterial / narrative 切替
    hybrid → fts_only → embedding_only → keyword_fallback (LIKE)
    search_mode意味
    hybridFTS + embedding
    fts_only埋め込みなし
    embedding_onlyFTS 索引破損時
    keyword_fallbackFTS 未構築時

    各ヒットの sourcefts / embedding / both / keyword

    dagayn eval で検索品質をベンチマークできる。

    benchmark用途
    doc_fuzzy_search自然言語 → doc セクションの FTS vs embedding 比較
    embedding_materialsmaterial 戦略(粒度・コメント同梱等)の比較
    guidance_precisionレビュー guidance の precision@k
    • fts-only:ネットワーク不要
    • ローカル埋め込み:ソース全文はsidecar内で完結
    • リモートAPI:シンボル名・要約テキストに限り、フルソース一括アップロードはしない設計
    Terminal window
    dagayn status

    provider別ベクトル数、欠落ノード、孤立embedding行、complete / partial / stale / empty を表示する。