ollama [Feature Request] Force function calling for a model

k75qkfdt  于 2个月前  发布在  其他
关注(0)|答案(4)|浏览(47)

不确定这是否属于ollama-python或这里,但我会在这里打开它。你能添加一种在任何模型上使用函数调用的方法吗,还是这是模型本身必须支持的功能?

fzsnzjdm

fzsnzjdm1#

据我所知,它必须由模型支持。此外,由于输出中的不一致性较多,较小的模型通常在函数调用方面比较大的模型更差。

x7yiwoj4

x7yiwoj42#

任何模型都可以用于函数调用,但如果没有针对它进行训练,结果可能会很差。对于那些没有明确支持工具的模型,您可以通过系统消息中的工具和指令传递,参见#5793(评论)。

khbbv19g

khbbv19g3#

任何模型都可以用于函数调用,但如果没有针对它进行训练,结果可能会很差。对于那些没有明确支持工具的模型,您可以通过系统消息中的工具和指令传递,参见#5793(评论)。
我看到你在这个例子中使用的是llama3。你是使用8B还是40B版本?

wn9m85ua

wn9m85ua4#

llama3:8b-instruct-q4_0,但这仅仅是因为原始帖子作者试图使用那个模型。结果:

{
  "functionName": "get_weather",
  "parameters": [
    {
      "parameterName": "query",
      "parameterValue": "Beijing"
    }
  ]
}

phi3:3.8b-mini-128k-instruct-q4_0的结果,用JSON markdown块 Package 起来,以便客户端进行后处理以获取函数调用:

\```json
{
  "functionName": "get_weather",
  "parameters": [
    {
      "parameterName": "query",
      "parameterValue": "Beijing"
    }
  ]
}
\```

gemma2:9b-instruct-q4_K_M也将其 Package 在JSON块中:

\```json
{
 "functionName": "get_weather",
 "parameters": [
  {
   "parameterName": "query",
   "name of parameter": "location",
   "parameterValue": "Beijing"
  }
 ]
}
\```

qwen2:7b-instruct-q4_K_M,它已经针对工具使用进行了训练,尽管当前模板不支持它:

{
  "functionName": "get_weather",
  "parameters": [
    {
      "parameterName": "query",
      "parameterValue": "Beijing"
    }
  ]
}

nous-hermes:7b-llama2-q4_0,是ollama库中最古老的模型之一,基于llama2:

{
  "functionName": "get_weather",
  "parameters": [
    {
      "parameterName": "location",
      "name": "location or city",
      "parameterValue": "beijing"
    },
    {
      "required": true
    }
  ]
}

相关问题