verify
verify を指定すると、検索で追加のパスを実行できます。各パスは以前のパスが返した結果を除外するため、2 回目のパスでは 1 回目が到達しなかった記憶に届きます。
Tablet 2 以降で対応しています。実装していないエンジンに要求した場合は呼び出し前に拒否されるため、何もしなかったパスに課金されることはありません。
search と recall で指定する 0-3 の整数です。追加のパス数を指すため、3 では 4 回の取得が行われます。既定値は 0 です。
hits = mem.search("what did I eat", verify=3)
# the SDKs hand back the memories; `verify_used` is on the HTTP response (curl tab)このループで言語モデルは動作しません
各パスはすでに返された id を持ち回り、エンジンはそれらを除外してその先を検索します。クエリは書き換えられないため、同一のリクエストに対する結果は決定的であり、モデルの認証情報も関与しません。追加のパスを使うかどうかは呼び出し側のコードが決めます。
送信する値と返る値
| 呼び出し | 動作 |
|---|---|
| verify | 0 から 3 まで。許可する追加パスの数です。範囲外の値は暗黙に丸められるのではなく 400 で拒否されます。 |
| verify_used | 実際に実行された追加パスの数です。要求した値より小さくなることがあります。 |
新しい結果が返らないパスが出た時点で打ち切られ、使われなかったパスは課金されません。後続のパスが失敗した場合は、そこまでに集まった結果が返ります。
最初のパスにすでに答えが含まれていた場合、追加のパスは精度を下げることがあります。LongMemEval-S の single-session-user 問題では 4.2 ポイント低下します。効果は 1 回の取得が外れる頻度に比例するため、大きなストアほど大きくなります。