GraphAI - GOD Format
GOD Format(Graph Object Dot Format)
GOD Formatは、GraphAIデータ構造を表現するための軽量で人間が読みやすいフォーマットです。GraphAI Object Dot (GOD)仕様に基づき、GraphAI内で依存関係を定義したり、データを取得するために使用されます。
GOD Formatの概要
GOD Formatは、GraphAIでのデータ依存関係を簡潔に記述できるフォーマットです。構文はコロン (:) で始まり、ドット (.) で要素を区切ります。基本構造は以下の通りです。
:nodeId.prop1.prop2
nodeId
: データを取得する元のノードを指定します。
prop1
, prop2
: ノード内のプロパティやネストしたデータのパスを指定します。これらは連結することで深い階層のデータにもアクセス可能です。
配列の場合、要素は $0
, $1
などでアクセスできます。
使用可能な場所
GOD Formatは以下の箇所で使用できます:
- inputs: ノードのデータ依存関係と入力値を定義するため。
- params: ノードの実行時に必要なパラメータを指定するため。
- graph: ネストしたGraphを実行する為に、GraphDataを定義するため。
- if/unless: 条件付きでノードを実行するため。
- agent: エージェントを動的に指定するため。
- console (after): ノードの実行結果をログとして出力するため(この場合、nodeIdは省略可能で、.から始まります)。
GOD Formatの使用例
1.基本的な構文
:nodeId.prop1.prop2
指定されたnodeIdのprop1内にネストされたprop2の値を取得します。
期待されるデータ
{
prop1: {
prop2: "hello"
}
}
2.配列の要素指定
:nodeId.prop1.$0
指定されたnodeIdのprop1内の配列の最初の要素を取得します。
期待されるデータ
{
prop1: [1,2,3]
}
3.console after
console: {
after: {
log: ".prop1.prop2"
}
}
console.afterで使用され、現在のノードの実行結果に基づいてprop1やprop2を参照します。この場合、nodeIdは省略されます。
4.動的な文字列挿入
GOD Formatは文字列内での動的な値挿入にも対応しています。例:
this is ${:nodeId.prop1.prop2}
nodeIdのprop1内にネストされたprop2の値を文字列に挿入します。
ネスト構造と柔軟性
inputs、params、およびconsole.afterでは、ネストした記述にも対応しており、複雑なデータ構造を簡潔かつ効率的に記述できます。
例
inputs: {
messages: [
{
role: "system",
content: ":context.person0.system",
},
{
role: "user",
content: ":context.person1.greeting",
},
],
context: ":context",
}
依存関係の管理
GOD Formatで指定されたnodeIdは、Graph実行時の依存関係を定義する重要な役割を果たします。
console.after(ログ目的)を除くすべての箇所で、指定された依存関係はGraphの動作に必要なものとして扱われます。
人工知能を活用したアプリケーションやサービスを活用し、内発的動機付けで行動するエンジニア、起業家、社会起業家をサポートするコミュニティーです。 singularitysociety.org
Discussion