Toolify——为任意LLM API添加完善的Function Calling支持

FunnyCups 2025-07-17 23:00 1

2025/7/31更新:添加模型映射


项目地址:



博文地址:



本程序在实现上类似于Open WebUI的code interpreter功能,通过xml标签让AI调用函数。事实上站内N佬已经发过一个类似的实现:让任何 OpenAI 兼容渠道强行支持 Function Call !! 美中不足的是不支持多工具调用,并且要求模型在开头立刻输出函数调用,无法输出其他的文本内容。


刚好之前公益站很多人说希望模型支持函数调用,于是写了这个项目。已经在公益站测试了一段时间,自己也用着,感觉没有很大的问题,遂发布。


本项目应该可以最大程度上让不支持函数调用的OpenAI compatible接口/模型支持函数调用:



  • 允许模型在输出的任何地方调用函数

  • 兼容<think>思维链

  • 支持一次性多函数调用

  • 支持多上游渠道配置

  • 模型可以看到自己上次调用的具体函数和参数

  • 支持Docker Compose快速部署


两点说明:



  1. 为了兼容流式响应,流式输出时实际上会逐个扫描模型的输出结果,所以流式请求传入tools参数会导致输出变慢变卡

  2. 由于是通过提示词实现的,肯定效果不如原生支持Function Calling的接口好,但胜在能用,性能好的模型调用起来应该没太大问题。我自己在公益站的所有模型上都应用了,自己也测试过,还是可以的


嗯,好像想不到什么其他可以说的了,就这样吧。

大家有用上的可以给个star,谢了。

最新回复 (19)
  • Snoopy 07-17 23:09
    1

    已star,有空学习下

  • 大帅哥 07-17 23:19
    2

    支持大佬

  • 雨下不停 07-17 23:43
    3

    感谢分享,学习一下

  • jooooody 07-17 23:45
    4

    牛逼大佬,可惜对第三方key+cc没信心了

  • 07-17 23:45
    5

    感谢大佬分享

  • cookie 07-18 00:01
    6

    感谢分享

  • 07-18 08:06
    7

    前排支持大佬

  • giserd 07-18 08:16
    8

    代码写的好工整,学习了

  • FunnyCups 楼主 07-18 08:28
    9

    大佬

  • FunnyCups 楼主 07-18 08:29
    10

    都是ai写得好 ^-^

  • 南山 07-18 08:41
    11

    大佬太厉害了

  • greg 07-18 08:43
    12

    star,谢谢分享

  • docker 07-18 09:30
    13

    感谢分享

  • Network_flow 07-18 15:21
    14

    这正是我最近需要的

  • MuShang 07-18 15:31
    15

    太强了佬

  • giserd 07-18 16:48
    16

    我准备在你的代码基础上把MCP加上,让模型根据mcp获取tools,编排工具执行

  • FunnyCups 楼主 07-18 17:04
    17

    mcp本质不就是传递标准化的tools参数吗?我现在这版代码接入任何用mcp的程序都可以用吧

  • W 07-19 07:33
    18

    正在试用,用完回来写报告

  • FunnyCups 楼主 07-19 09:24
    20

    第一个问题我回去看下。第二个问题应该是你这没有传入tools参数,不然不会显示Function calling enabled: False,另外我就用roo code的,没有碰到这个问题

* 帖子来源Linux.do
返回