langchain4j 你能解释一下@ToolMemoryId的设计概念吗?我对它有点困惑,

pprl5pva  于 6个月前  发布在  其他
关注(0)|答案(4)|浏览(71)

为什么需要@ToolMemoryId注解,当我在源代码中只看到@memoryid被设置为带有@ToolMemoryId注解的字段,而它实际上并没有在ToolExecutor#execute中使用?您能解释一下这个设计背后的理念吗?
谢谢!

y1aodyip

y1aodyip1#

你好,@Fj-ivy。我不确定我是否理解你的问题。
@ToolMemoryId 注解用于 DefaultToolExecutorToolSpecifications
或者问题是:如果我们可以像这样重复使用相同的 @MemoryId 注解,为什么我们需要一个新的(@ToolMemoryId)注解?

interface Assistant {

    String chat(@MemoryId int memoryId, @UserMessage String userMessage);
}

class Tools {

    @Tool
    void addTask(@MemoryId int memoryId, Task task) {
        ...
    }
}
6jygbczu

6jygbczu2#

你好,@Fj-ivy。我不确定我是否理解你的问题。
@ToolMemoryId 注解用于 DefaultToolExecutorToolSpecifications
或者问题是:如果我们可以像这样重复使用相同的 @MemoryId 注解(@ToolMemoryId),为什么我们需要一个新的注解?

interface Assistant {

    String chat(@MemoryId int memoryId, @UserMessage String userMessage);
}

class Tools {

    @Tool
    void addTask(@MemoryId int memoryId, Task task) {
        ...
    }
}

嗯,基本上,@ToolMemoryId 和 @memoryid 注解是相等的。如果你使用两个注解,可能会增加学习负担。

7nbnzgx9

7nbnzgx93#

我同意,引入新的注解是不必要的,因为现有的注解可以被重用。
我认为我们可以通过改变逻辑来允许 @ToolMemoryId@MemoryId@Tool 方法参数上使用,并弃用 @ToolMemoryId,WDYT?
你愿意创建一个 PR 吗?

uyto3xhc

uyto3xhc4#

我同意,引入新的注解是不必要的,因为现有的注解可以被重用。我认为我们可以通过改变逻辑来允许 @ToolMemoryId@MemoryId@Tool 方法参数上使用,并弃用 @ToolMemoryId,WDYT?你愿意创建一个PR吗?
好的,我会创建一个PR!

相关问题