应用程序: 应用程序不检测调用之间的输出 类型变化
作者: harsh4vardhan创建于 2026年8月6日更新于 2026年8月11日
Application. call-QQ 缓存生成器并仅在型号'改变时重新创建(第101行):
如果是模特儿的话!
自我。模型 = 模型
self.generator = 生成器(型号,自输出)`输出-类型'是一种公共实例属性。 如果在使用同型号的调用之间发生突变,为旧型所建造的 steal generator——静默地再用. 新的限制从未适用。
** 最低限度的例子:**
[Python] 从大纲。应用程序导入应用程序 从unittest.mock 导入 MagicMock, 补丁
有补丁("outlines.applications."). 发电机")作为MockGenerator: 电话 = [] mockGenerator.side effect = lambda m, ot: calls.append(ot) 或 MagicMock( )
app = 应用程序(MagicMock (),输出 类型=int) 型号 = MagicMock ()
app( 型号, Q) # 生成器已建入 app.output 类型=str app(型号,QQ)#同型号——发电机不重建.
打印( 调用) # [ < class' int' ] — str 从未使用过
** Fix:** 延长无效状态,以便同时检测出`输出-类型'变化:
```2ZZ
如果模型 ! = 自. model 或自. output type!!=自. cached output type:(或跟踪当前生成器建成时使用的输出类型).
内容来源: dottxt-ai/outlines