基本概念¶
コンテキスト項目¶
ContextItemは、モデルへ入力する型付きデータの一単位です。コンテンツに加え、パックへ含めるかを判断するために必要な識別情報、ロール、出所、信頼区分、機密区分、保持要件、優先度、有効期間、来歴をまとめて保持します。
ペイロードにはText、正規化されたJSON、Binary、Referenceを使用できます。v0.1系列でパックできるのはText、JSON、Referenceです。Binaryは保存と往復変換だけに対応します。
フレーム、パック、マニフェスト¶
CognitionFrameは、コンテキストレコードと不変の変換計画を保持します。ContextPackには、1回のモデル呼び出し用に選択された項目が含まれます。PackManifestは、その選択理由を機械可読な形式で示します。
filter()、select()、with_columns()、join()、sort()、limit()、dedupe()、rank()、redact()、quarantine()、demote()を呼び出すと、新しいフレームが返されます。通常のフレーム計画を実行するには、collect()、to_records()、pack()のいずれかを呼び出します。v0.1系列ではgroup_by().agg()だけが例外で、直ちに評価されます。
出所、信頼区分、機密区分¶
sourcesはコンテンツの出所を記録します。信頼区分と機密区分は別々の指定です。信頼済みの社内ポリシーでも制限対象にでき、公開Webのコンテンツは機密でなくても未信頼にできます。
untrustedだからといって、自動的に拒否されるわけではありません。これは、アプリケーションがそのコンテンツを信頼済みと表明していないことを意味します。未信頼のコンテンツを拒否する必要がある場合は、境界ポリシー、quarantine()、または独自のPolicyを使用してください。
保持要件¶
required(必須)の項目は除外できません。preferred(優先)の項目は任意の項目より先に検討され、optional(任意)の項目は順位、優先度、トークン使用量、決定論的なIDのタイブレークによって競合します。項目を必須に指定することは契約であり、順位付けの目安ではありません。
来歴¶
変換では、コンテンツハッシュと親IDが保持されます。完全一致による重複排除では、出所を集約し、信頼区分、機密区分、保持要件、有効期限に対して保守的な規則を適用します。その結果生成されるマニフェストには、統合の判断とメタデータの競合が記録されます。
決定論と再現性¶
Cognoxiumでは、レコードの順序、明示的な値、設定、トークンプロファイルのフィンガープリント、プラグインのフィンガープリントがすべて同じなら、結果を再現できます。選択後も元の会話順が保たれるため、入力順を変更するとパック内の順序も変わることがあります。
厳密な再現性が必要な場合は、固定したidとcreated_atを指定してください。これらのフィールドを省略すると、コンストラクターの既定値としてランダムなUUIDと現在時刻が使われます。