披露:这篇文章是作为MonkeyCode产品推广的一部分而编写的.
为什么这值得读取: 一个免费的模型端点,带有一大笔的代号津贴,是验证一个新的CLI工作流程的好地方,但它可以在你注意到之前在一个单回回回回回回回环中通过津贴燃烧.
我建立了一个小型的状态预算警卫,在呼叫前检查预计费用,记录呼叫后的实际使用,当终点发出出乎意料的反应时,拒绝触摸分类账.
它作为一次性的先通过自由端点,当形状改变时留下一个干净的出口.
MonkeyCode的外延描述了一个开源项目,它有免费的模型路线和免费的主机服务器.
我也不视之为永久的依赖。
我把它们当作一个测试目标:一个无需合同即可拨打的终点, 下面的工具独立于MonkeyCode的精确模型列表;它只假设一个OpenAI风格的聊天补全路径和在响应中的用法核算.
如果自由服务器不遵循该形状, 则交换一个功能 。
大多数模型仪表板都报告事后的总使用情况。
这已经足够做临时工作了,但当你把一个终点线接入一个圈子时,这还不够。
我在自己的草案中看到了两个可以避免的失败。
在第一次响应到来之前,一个实时重试的收发包机重新启动了四次缓慢的请求,乘以总的象征性支出.
一个长的上下文缓冲器持续发送同样的6k-token历史 在每一个转弯,因为我忘了修剪旧消息。
仪表板显示的是总下降量,但没有显示是哪个电话造成的。
当地分类账通过在预计总数超过预算时拒绝发送请求来规定。
它不取代供应商仪表板。
它会在终点获得消费活物的机会之前做出决定.
下面的脚本有三项工作:从JSON文件中加载一个预算和已经使用的数量,为下一个呼叫记录作出保守的飞行前估计,按端点返回的实际使用量,并故意将分类账在原子上保存为粗略:即时字节除以四个,加上所要求的最大响应符号,加上15%的比值.
这对非英语文本或代码重的提示来说并不是象征性的,而是有意保守的,因为目标是停止意外浪费,而不是取而代之的计量。
如果您需要精确的飞行前编号,请为您正在拨打的模型添加本地标识器 。
然后源出并调用: :在相信它之前先测试后卫 使用一个不打出真正终点的故障固定.
预期结果是非零退出和分类账不变。
如果您想要一个金丝雀套房的决定表, 请保持微小的检查: 假想预期退出 Ledger 更改 缺少基础 URL 或模型 无0 无法到达的端点 或超时的无0 预测支出超过预算 非0 零 零 零 零 增加 反应 无法使用符号数 无0 任何我运行过一次,然后允许任何更大的脚本调用端点 。
失败的运行告诉我整合的哪一部分改变了 而不是让我从平衡图中猜测 在自由服务器适合独建时,自由服务器作为金丝雀目标最有用,而不是永久后端.
我先将这个脚本指向自由路由,将模型名称保存在一个环境变量中,并将所有结果存储在本地分类账中.
如果终点有一天会改变,唯一的改变是URL或模型名.
如果端点报告不同的使用字段,则脚本停止而不是默默地低估.
我也设置了一个很难的精神退场:如果自由终点足够慢,我需要30秒以上的超时,那么它还没有准备好实际的CLI.
分类账不能固定延迟性;它只会防止它在我测量时变得昂贵.
有关3 000万托肯数字的重要背景 我得到的参考文献描述的是一个免费的分层,有3000万吨