テンセントのオープンソース知識管理サービスWeKnoraが10月29日に0.9.0を公開した。検索結果を統合する基準を設定画面で調整でき、内蔵アシスタントが文書や、それらをまとめて管理する領域であるナレッジベースの管理作業を行う。運用担当者は反復業務を対話で処理し、検索管理者は意味の近い内容を探すベクトル検索とキーワード検索の結果を反映する比重を直接調整できる。
1. 画面で検索結果の統合を調整
検索設定は、検索候補の収集、結果の統合、再ランキングの3つのタブに分かれる。再ランキングは結果の順位を付け直す機能だ。管理者は結果の統合タブで、ベクトル検索とキーワード検索の結果を反映する比重を変更できる。設定は自動保存され、APIで指定した値も他の設定を保存する際に維持される。
RRFは、異なる検索結果を順位に基づいて1つのリストに統合する方式だ。平滑化定数は上位の結果に与える優位性を調整し、値を大きくするとその優位性が小さくなる。重みは各検索方式が最終結果にどれだけ寄与するかを決める。従来はAPIで設定していた項目を、画面で調整できるようになった。
条件:値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の要点は、検索結果の統合を設定画面へ、知識管理の実行を対話へ移し、権限と承認を自動化の制御手段として組み合わせた点にある。
