DC娱乐网

openai的兼容协议,设计得并不好。在它的协议里,在json中,tools定义

openai的兼容协议,设计得并不好。

在它的协议里,在json中,tools定义和messages是并列排列的。而messages以role=system的message也就是系统提示词开头。

但实际上最后发给AI,AI看到的是,系统提示词的后面是tools定义。

我跟AI确认过它看到的工具定义,就是我发给它的工具定义,没有做任何改变。也就是说,openai协议给它做了个简单的拼接。

所以,这会让开发者无法控制工具定义在系统提示词中的出现顺序,总而造成缓存命中降低。因为,系统提示词可能会需要加载动态的skills,会变的。tools定义放它后面就亏了,本来能缓存命中,变成了不命中了。

所以怎么说呢,openai协议虽然出现得早,但设计得并不好。

解决方法,其实就是直接把工具定义拼接到系统提示词中,但网关是否让过还每测试过,回头试试。

还有,流式操作这玩意儿,毛用都没有。各大服务商,全是一次性发过来的,但却是用流式操作的接口。每个字都包着大量的json,画蛇添足。我从来没见过哪个服务商是把请求的回应一个字一个字的发过来的。都是一起发过来,但每个字都包着json,看日志都费眼睛。还不如直接请求非流式接口。