テンセントのオープンソース知識管理サービスWeKnoraが10月29日に0.9.0を公開した。検索結果を統合する基準を設定画面で調整でき、内蔵アシスタントが文書や、それらをまとめて管理する領域であるナレッジベースの管理作業を行う。運用担当者は反復業務を対話で処理し、検索管理者は意味の近い内容を探すベクトル検索とキーワード検索の結果を反映する比重を直接調整できる。

1. 画面で検索結果の統合を調整

検索設定は、検索候補の収集、結果の統合、再ランキングの3つのタブに分かれる。再ランキングは結果の順位を付け直す機能だ。管理者は結果の統合タブで、ベクトル検索とキーワード検索の結果を反映する比重を変更できる。設定は自動保存され、APIで指定した値も他の設定を保存する際に維持される。

RRFは、異なる検索結果を順位に基づいて1つのリストに統合する方式だ。平滑化定数は上位の結果に与える優位性を調整し、値を大きくするとその優位性が小さくなる。重みは各検索方式が最終結果にどれだけ寄与するかを決める。従来はAPIで設定していた項目を、画面で調整できるようになった。

表:RRF検索設定のサーバーデフォルト値

条件:値0は各項目のデフォルト値の選択を意味し、2つの重みの合計を1にする必要はない。

単位:平滑化定数・重み(単位なし)

画面で検索結果の統合を調整
項目デフォルト値役割
平滑化定数60値を大きくすると上位結果の優位性が低下
ベクトルの重み0.7統合結果にベクトル検索が寄与する比重
キーワードの重み0.3統合結果にキーワード検索が寄与する比重

不正な数値入力は反映されない。

2. 操作一覧に基づいて管理業務を実行

内蔵のWeKnoraアシスタントは、実行できる操作を見つけて実行し、既存の権限チェック、検証、監査記録に従う。ユーザーが複数の管理画面を行き来する代わりに、対話で作業を依頼する仕組みだ。

操作はユーザー権限で実際のリクエスト処理経路を通って実行される。実行可能な項目だけを集めた許可リストは、実行ファイルに組み込まれたAPI仕様書であるSwagger文書から起動時に構成される。操作を追加するハンドラー、つまりリクエストを受け取って処理するコードのコメント例は次のとおりだ。

// @x-agent      {"id":"knowledge.delete","risk":"destructive","target":"knowledge.get","label":"title"}
// @x-agent-hint "Removes the document with its chunks, embeddings and graph data. Cannot be undone."
// @Param        id   path      string  true  "知识ID"  extensions(x-agent=knowledge_id)

当初はナレッジベースや文書の参照、原文を再び解析する再パース、削除、Wikiの統計やリンクの再構築などに対応した。その後、ナレッジベース、FAQ、タグ、文書グループの管理や、エージェント、拡張機能であるスキル、アシスタントの機能を拡張するツールの管理にまで操作範囲が広がった。

実行中のバージョンのガイド文書を検索して読むこともできる。

3. 現在の画面とロールに合わせた利用

アシスタントはサイドバー、コマンド検索、文書画面などから開くことができ、現在の文書やWikiページを対話のコンテキストとして渡す。ユーザーはアシスタントを横に固定する形やフローティングパネルで利用でき、実行履歴は通常の対話履歴とは別に管理される。

アクセス段階は、読み取り専用、確認後に実行、自動書き込みで構成され、デフォルトは確認後に実行だ。管理者はワークスペースの上限を定め、実際の実行にはユーザー設定と管理者の上限のうち、より制限の厳しい段階が適用される。自動書き込みでも、破壊的な操作とスキルのインストールには確認が必要だ。

ロール別の基本基準は、読み取りには閲覧者、書き込みと破壊的な操作には投稿者の権限だ。実行できない操作は、必要なロールや読み取り専用状態などの理由とともに表示され、ユーザーは実行されない理由を把握できる。

4. スケジュール実行とコストの移動

作業を予定に合わせて実行する自動化も追加された。予定は反復実行の時点を規則で記すcron形式、または1回限りの実行で指定し、タイムゾーンも設定できる。最小間隔は5分だ。実行は所有者の権限で行われ、承認待ちの通知がアプリ内に表示される。3回連続で失敗すると自動化は停止し、APIキーでは自動化を作成できない。

従来は確認なしで実行されていたWikiの修正も、デフォルトのアクセス段階では確認カードを経由する。対話で依頼した修正も、実行前にユーザーが確認する手順が設けられたことになる。

自動化の履歴と実行はデータベースに保存されるため、アップグレードには保存構造の変更を適用するマイグレーションも必要だ。リリース案内に示されたマイグレーションのバージョンは、PostgreSQL 000134、SQLite 000051だ。

0.9.0の要点は、検索結果の統合を設定画面へ、知識管理の実行を対話へ移し、権限と承認を自動化の制御手段として組み合わせた点にある。