ollama 支持在消息中使用"tool"角色,

af7jpaap  于 6个月前  发布在  其他
关注(0)|答案(2)|浏览(51)

你想做什么?

新的Herme 2 Pro模型建议功能调用的结果以带有"tool"角色的消息形式呈现,例如:

<|im_start|>tool
<tool_response>...result here...</tool_response>
<|im_end|>

聊天API不支持带有"tool"角色的消息 - 将其视为错误请求。

我们应该如何解决这个问题?

在消息API中接受"tool"角色将使使用Hermes Pro的人的生活更加轻松 - 对于基于相同开放数据集的未来模型也是如此。
这对于Ollama中的模板工作有影响 - 甚至可能需要对模板进行彻底的重新思考。

不解决这个问题会有什么影响?

不解决这个问题意味着用户必须创建自己的模板并使用Ollama的 raw 选项,这抵消了使用Ollama的一些乐趣。
我确实认为函数调用和构建本地代理是Ollama真正可以发挥优势的一个领域,如果这样做的经验完全没有痛苦的话。

还有其他问题吗?

Hermes Pro功能调用与提示/模板指令的仓库:
https://github.com/NousResearch/Hermes-Function-Calling

sxissh06

sxissh061#

<|im_start|>assistant<tool_call>... 也需要 JSON-mode 支持。

xpcnnkqh

xpcnnkqh2#

这也是在langchain内部实现更清洁的方式所需要的。
目前,ChatOllama不支持处理ToolMessage,其类型为tool
为了解决这个问题,在OllamaFunctions(一个调用兼容的ChatOllama子类的工具)中,我们将ToolMessage作为类型assistant传递。

相关问题