0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GraphAIAdvent Calendar 2024

Day 9

GraphAI 0.5.23 ユーザーガイド:CLI オプションと実行結果

Posted at

はじめに

GraphAI コマンドラインツールを実行したとき、色々とオプションあるのですが、詳細解説したものを見つけられなかったので備忘録かねて本記事作成します。

$ graphai
graphai <yaml_or_json_file>

run GraphAI with GraphAI file.

Positionals:
      --yaml_or_json_file  yaml or json file                            [文字列]

オプション:
      --help     ヘルプを表示                                             [真偽]
      --version  バージョンを表示                                         [真偽]
  -l, --list     agents list
  -s, --sample   agent sample data                                      [文字列]
  -d, --detail   agent detail                                           [文字列]
  -v, --verbose  verbose log                   [真偽] [必須] [デフォルト: false]
  -a, --all      all result                    [真偽] [必須] [デフォルト: false]
  -m, --mermaid  mermaid                       [真偽] [必須] [デフォルト: false]
      --yaml     dump yaml                     [真偽] [必須] [デフォルト: false]
      --json     dump json                     [真偽] [必須] [デフォルト: false]
      --log      output log                                             [文字列]

オプションではない引数が 0 個では不足しています。少なくとも 1 個の引数が必要です:

なおインストール方法については以下の記事を参考にしてください。

オプション一覧

--help ヘルプを表示

  • 説明
    ヘルプを表示します。

  • 使用例

    $ graphai --help
    graphai <yaml_or_json_file>
    
    run GraphAI with GraphAI file.
    
    Positionals:
          --yaml_or_json_file  yaml or json file                            [文字列]
    
    オプション:
          --help     ヘルプを表示                                             [真偽]
          --version  バージョンを表示                                         [真偽]
      -l, --list     agents list
      -s, --sample   agent sample data                                      [文字列]
      -d, --detail   agent detail                                           [文字列]
      -v, --verbose  verbose log                   [真偽] [必須] [デフォルト: false]
      -a, --all      all result                    [真偽] [必須] [デフォルト: false]
      -m, --mermaid  mermaid                       [真偽] [必須] [デフォルト: false]
          --yaml     dump yaml                     [真偽] [必須] [デフォルト: false]
          --json     dump json                     [真偽] [必須] [デフォルト: false]
          --log      output log                                             [文字列]
    narita@naritanoMacBook-Pro ~ % 
    

--version バージョンを表示

  • 説明
    バージョンを表示します。

  • 使用例

    $ graphai --version
    0.5.23
    

-l, --list agents list

  • 説明
    利用可能なエージェントを表示します。

  • 使用例

    $ graphai -l       
    Available Agents
    * anthropicAgent - Anthropic Agent
    * arrayFlatAgent - Array Flat Agent
    * arrayJoinAgent - Array Join Agent
    * compareAgent - compare
    * copy2ArrayAgent - Copy2Array agent
    * copyAgent - Returns namedInputs
    * copyMessageAgent - CopyMessage agent
    * countingAgent - Counting agent
    * dataObjectMergeTemplateAgent - Merge object
    * dataSumTemplateAgent - Returns the sum of input values
    * dotProductAgent - dotProduct Agent
    * echoAgent - Echo agent
    * fetchAgent - Retrieves JSON data from the specified URL
    * geminiAgent - Gemini Agent
    * groqAgent - Groq Agent
    * jsonParserAgent - Template agent
    * mapAgent - Map Agent
    * mergeNodeIdAgent - merge node id agent
    * nestedAgent - nested Agent
    * openAIAgent - OpenAI Agent
    * openAIImageAgent - OpenAI Image Agent
    * popAgent - Pop Agent
    * propertyFilterAgent - Filter properties based on property name either with 'include', 'exclude', 'alter', 'swap', 'inject', 'inspect'
    * pushAgent - push Agent
    * replicateAgent - Replicate Agent
    * shiftAgent - shift Agent
    * slashGPTAgent - Slash GPT Agent
    * sleepAndMergeAgent - sleeper and merge Agent
    * sleeperAgent - sleeper Agent
    * sleeperAgentDebug - sleeper debug Agent
    * sortByValuesAgent - sortByValues Agent
    * streamMockAgent - Stream mock agent
    * stringEmbeddingsAgent - Embeddings Agent
    * stringSplitterAgent - This agent strip one long string into chunks using following parameters
    * stringTemplateAgent - Template agent
    * textInputAgent - Text Input Agent
    * tokenBoundStringsAgent - token bound Agent
    * totalAgent - Returns the sum of input values
    * vanillaFetchAgent - Retrieves JSON data from the specified URL
    * wikipediaAgent - Retrieves data
    

-s, --sample agent sample data

  • 説明
    エージェントのサンプルデータを表示します。

  • 使用例

    narita@naritanoMacBook-Pro ~ % graphai -s echoAgent
    * echoAgent
    [
      {
        "inputs": {},
        "params": {
          "text": "this is test"
        },
        "result": {
          "text": "this is test"
        }
      },
      {
        "inputs": {},
        "params": {
          "text": "If you add filterParams option, it will respond to filterParams",
          "filterParams": true
        },
        "result": {}
      }
    ]
    

-d, --detail agent detail

  • 説明
    エージェントの詳細を表示します。

  • 使用例

    $ graphai -d echoAgent
    * echoAgent
    echoAgent - Echo agent
    Author Satoshi Nakajima
    Repository https://github.com/receptron/graphai
    Licence MIT
    

-v, --verbose verbose log

  • 説明
    エージェントの詳細を表示します。

  • 使用例

    $ cat hello_world.yaml
    version: 0.5
    nodes:
      node1: 
        params:
          message: hello
        agent: echoAgent
        isResult: true
    
    # 通常の実行
    $ graphai hello_world.yaml 
    {
        "node1": {
            "message": "hello"
        }
    }
    
    # オプション付きで実行した場合
    $ graphai -v hello_world.yaml
    node1      queued
    node1      =>( []
    node1      {}  {"message":"hello"}
    {
      "node1": {
        "message": "hello"
      }
    

-a, --all all result

  • 説明
    すべての結果を表示します。

  • 使用例

    $ cat hello_world.yaml
    version: 0.5
    nodes:
      node1: 
        params:
          message: hello
        agent: echoAgent
        isResult: false  # falseに変更して表示されないようにする
    
    # 通常実行
    $ graphai hello_world.yaml 
    {}
    
    # オプション付きで実装
    $ graphai -a hello_world.yaml 
    {
      "node1": {
        "message": "hello"
      }
    }
    

-m, --mermaid mermaid

  • 説明
    すべての結果を表示します。

  • 使用例

    $ cat map_agent.yaml 
    version: 0.5
    nodes:
     source:
       value:
         fruits:
           - apple
           - orange
           - banana
           - lemon
           - melon
           - pineapple
           - tomato
     nestedNode:
       agent: mapAgent
       inputs:
         rows: :source.fruits
       graph:
         version: 0.5
         nodes:
           node2:
             agent: stringTemplateAgent
             params:
               template: I love ${m}.
             inputs:
               m: :row
             isResult: true
       params:
         compositeResult: true
     result:
       agent: sleepAndMergeAgent
       inputs:
         array:
           - :nestedNode.node2
       isResult: true
    
    $ graphai -m map_agent.yaml
    flowchart TD
     source(source) -- fruits --> nestedNode
     nestedNode(nestedNode) -- node2 --> result
    

--yaml dump yaml

  • 説明
    yaml形式で出力します。

  • 使用例

    $ cat hello_world.json 
    {
      "version": 0.5,
      "nodes": {
        "node1": {
          "params": {
            "message": "hello"
          },
          "agent": "echoAgent",
          "isResult": true
        }
      }
    }
    
    $ graphai --yaml hello_world.json                   
    version: 0.5
    nodes:
      node1:
        params:
          message: hello
        agent: echoAgent
        isResult: true
    

--json dump json

  • 説明
    json形式で出力します。

  • 使用例

    $ cat hello_world.yaml 
    version: 0.5
    nodes:
      node1: 
        params:
          message: hello
        agent: echoAgent
        isResult: true
    
    $ graphai --json hello_world.yaml
    {
      "version": 0.5,
      "nodes": {
        "node1": {
          "params": {
            "message": "hello"
          },
          "agent": "echoAgent",
          "isResult": true
        }
      }
    }
    

--log output log

  • 説明
    ログを出力します。

  • 使用例

    $ cat hello_world.yaml 
    version: 0.5
    nodes:
      node1: 
        params:
          message: hello
        agent: echoAgent
        isResult: true
    
    # オプションを付与して実行
    $ graphai --log log.txt hello_world.yaml 
    {
      "node1": {
        "message": "hello"
      }
    }
    
    # ログファイルが生成されてる
    $ cat log.txt 
    [
      {
        "nodeId": "node1",
        "state": "completed",
        "agentId": "echoAgent",
        "params": {
          "message": "hello"
        },
        "isLoop": false,
        "repeatCount": 0,
        "startTime": 1733713460531,
        "inputs": [],
        "result": {
          "message": "hello"
        },
        "resultKeys": [
          ":echoAgent",
          ":echoAgent.message"
        ],
        "endTime": 1733713460532
      },
      {
        "nodeId": "node1",
        "state": "completed",
        "agentId": "echoAgent",
        "params": {
          "message": "hello"
        },
        "isLoop": false,
        "repeatCount": 0,
        "startTime": 1733713460531,
        "inputs": [],
        "result": {
          "message": "hello"
        },
        "resultKeys": [
          ":echoAgent",
          ":echoAgent.message"
        ],
        "endTime": 1733713460532
      },
      {
        "nodeId": "node1",
        "state": "completed",
        "agentId": "echoAgent",
        "params": {
          "message": "hello"
        },
        "isLoop": false,
        "repeatCount": 0,
        "startTime": 1733713460531,
        "inputs": [],
        "result": {
          "message": "hello"
        },
        "resultKeys": [
          ":echoAgent",
          ":echoAgent.message"
        ],
        "endTime": 1733713460532
      }
    ]
    

参考サイト

GraphAI cli🤖
https://github.com/receptron/graphai/blob/main/packages/cli/README.md

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?