在Agently框架中,链式输出和Agent=()等语法的使用,是Agently框架设计的一部分,旨在简化代码编写,提高开发效率。以下是对这些语法的详细解释:
链式输出语法
链式输出是Agently框架的一个重要特性,它允许开发者通过链式调用的方式,逐步构建和配置Agent的行为。这种方式不仅代码简洁,而且逻辑清晰,便于理解和维护。
链式输出的语法通常表现为一系列的方法调用,每个方法都对Agent进行某种配置或操作,然后返回Agent对象本身,以便进行下一个方法的调用。例如:
agent = (
Agently.create_agent()
.set_settings("current_model", "ZhipuAI")
.set_settings("model.ZhipuAI.auth", { "api_key": "your_api_key" })
)
在这个例子中,create_agent() 方法创建了一个新的Agent实例,然后通过 set_settings() 方法设置了模型为ZhipuAI,并提供了相应的认证信息。每个方法调用都返回Agent对象本身,从而可以继续调用下一个方法。
Agent=() 语法
在Python中,Agent=() 这样的语法并不常见,但在Agently框架中,它被用来创建和初始化Agent实例。这种语法实际上是利用了Python的赋值表达式和括号的组合,来实现一种更简洁的实例创建方式。
例如:
agent = (
Agently.create_agent()
.set_settings("current_model", "ZhipuAI")
.set_settings("model.ZhipuAI.auth", { "api_key": "your_api_key" })
)
这里的 agent = () 并不是传统意义上的赋值语句,而是通过括号将一系列方法调用组合在一起,最终将创建和配置好的Agent实例赋值给变量 agent。
示例解释
假设我们要创建一个Agent,让它输出5个单词和3个句子,可以这样写:
import Agently
agent = (
Agently.create_agent()
.set_settings("current_model", "ZhipuAI")
.set_settings("model.ZhipuAI.auth", { "api_key": "your_api_key" })
)
result = (
agent
.input("为我输出5个单词和3个句子")
.instruct("输出语言", "中文")
.output({
"单词": [("str", )],
"句子": ("list", ),
})
.start()
)
print(result)
在这个示例中:
-
Agently.create_agent()创建了一个新的Agent实例。 -
set_settings()方法设置了当前模型为ZhipuAI,并提供了API认证信息。 -
input()方法向Agent输入了一个请求,要求输出5个单词和3个句子。 -
instruct()方法指定了输出语言为中文。 -
output()方法定义了期望的输出结构,包括单词列表和句子列表。 -
start()方法启动了Agent,执行上述配置的任务。 -
最后,
result变量存储了Agent的执行结果,并通过print()输出。
通过这种方式,开发者可以清晰地看到Agent的创建、配置和执行过程,每个步骤都通过链式调用紧密相连,逻辑流畅且易于理解。

被折叠的 条评论
为什么被折叠?



