本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版。
查找命令
在help 后面用几个词描述要做的事,它会列出匹配的命令。例如,查找发布应用的命令:
difyctl help:它会列出命令开头的那些词,如 get、run。再加上其中一个词,就能列出以它开头的全部命令:
help 加命令全名,即可查看它接受的字段(也就是要传给它的值):
--help 或 -h。
运行命令
用标志传值
每个要用的字段都以对应的标志传入,后面跟上值。命令的帮助会列出它的标志,以及每个标志的类型、默认值和是否必填。例如,以下是run console_app workflow 的部分帮助内容:
difyctl get console_app 列出的结果中找到:
-
boolean字段只写标志即设为 true,加上=false则设为 false,例如run console_app chat的--auto-generate-name=false。 -
列表字段(如
string[])有几个值,就把标志重复写几次,例如install plugin的--identifiers a --identifiers b。 -
类型为
json、object或某种map的字段,以 JSON 文本作为标志的值。例如,使用上面帮助中的--inputs:
@ 和文件路径,例如 --inputs @inputs.json。要从 stdin 读取,则写 --inputs @-。
string 字段中的 @ 要格外留意:它从不读取文件。--yaml-content @app.yml 发送的是文本 @app.yml 本身,而非文件内容。要发送文件内容,可写成 --yaml-content "$(cat app.yml)",让 Shell 去读取文件。
以 JSON 发送整个请求
如果请求由脚本生成,或者存放在文件里,就把所有字段放进一个 JSON 对象,用--input 传入(末尾没有 s,不是上文的 --inputs 字段)。
每个字段都用字段名来写,即去掉标志开头的 --,再把连字符换成下划线(写 app_id,不写 --app-id):
--input 也能从文件读取(如 --input @request.json),或从 stdin 读取(--input @-)。
标志的优先级高于 --input 中的同名字段。这样一来,可把请求存在文件里,每次运行只改一个值。如果 request.json 的内容是 {"mode": "workflow", "limit": 50, "page": 1},下面的命令会列出 Workflow 应用的第 2 页:
按提示运行后续命令
有些结果带有hints:服务器建议你接下来运行的命令,凡是服务器知道的值都已填好。如果某条提示正是你下一步要做的,直接运行它,不必自己拼装命令。
例如,用 difyctl run console_app chat 向聊天应用发送消息并收到回复后,结果中会带有这样一条提示:
op 中的点换成空格写成命令,再把 input 传给 --input。其中每个 null 都要换成你自己的值。以这条提示为例,就是运行 difyctl run console_app chat,并把下一条消息填进 query: