OpenAI、Anthropic、テキストへのレンダリング¶
ContextPackはプロバイダーに依存しません。選択とポリシー評価が完了してからレンダリングすることで、SDKとは独立して同じパックとマニフェストを確認できます。
v0.1系列のロール対応¶
Cognoxiumのロール |
|
|
|
|---|---|---|---|
|
|
トップレベルの |
|
|
|
トップレベルの |
|
|
|
|
|
|
|
|
|
|
|
|
|
v0.1系列では、ツール呼び出しIDとプロバイダー固有のツール結果オブジェクトは保持されません。アプリケーションでこれらのフィールドが必要な場合は、カスタムRendererを使用してください。
生成されるデータ構造を確認する¶
import cognoxium as cx
pack = cx.CognitionFrame.from_records([
{"id": "policy", "payload": "Be concise.", "role": "system",
"sources": ["app://policy"], "trust": "trusted", "retention": "required",
"created_at": "2026-01-01T00:00:00Z"},
{"id": "tool", "payload": "42", "role": "tool",
"sources": ["tool://calculator"], "created_at": "2026-01-01T00:01:00Z"},
]).pack(budget=100)
openai_input = pack.to_openai()
anthropic_input = pack.to_anthropic()
print(openai_input[0]["role"], openai_input[0]["content"][0]["type"])
print(openai_input[1]["role"], openai_input[1]["content"][0]["text"])
print(anthropic_input["system"])
print(anthropic_input["messages"][0]["role"])
system input_text
user [tool result]
42
Be concise.
user
to_openai()は入力メッセージのマッピングからなるリストを返します。to_anthropic()はsystemとmessagesを持つマッピングを返します。プロバイダーSDKは独立して進化するため、本番リクエストを送る前に、これらの構造をアプリケーションで固定しているSDKバージョンと比較してください。
ペイロードの対応¶
Textはテキスト値としてレンダリングされます。
JSONは正規化されたコンパクトなJSON文字列としてレンダリングされます。
ReferenceはURIとしてレンダリングされます。
Binaryはv0.1系列のパックへ入れられません。任意/優先項目は除外され、必須項目では
UnsupportedContentが送出されます。
どのレンダラーもReference URIの内容を取得しません。参照先の解決、認証、認可はホストアプリケーションの責任です。
カスタムレンダラー¶
pack.render(renderer)を呼び出します。カスタムレンダラーはイミュータブルなパックを受け取り、表現できないペイロードを黙って文字列化せず、UnsupportedContentを送出する必要があります。プラグインの作成を参照してください。