文档
集成
工具调用生成器
插件支持目前处于内部测试阶段。在此加入测试。
要启用工具使用,过程会稍微复杂一些。有关适配 OpenAI API 的全面示例,请参阅openai-compat-endpoint 插件。
您可以使用 ctl.getToolDefinitions()
读取可用工具的定义。例如,如果您正在制作在线模型适配器,则需要将工具定义传递给模型。
一旦模型开始进行工具调用,您需要将这些调用告知 LM Studio。
使用 ctl.toolCallGenerationStarted
报告工具调用生成的开始(即模型开始生成工具调用)。
使用 ctl.toolCallGenerationEnded
报告工具调用成功生成,或使用 ctl.toolCallGenerationFailed
报告工具调用生成失败。
(可选)您还可以使用 ctl.toolCallGenerationNameReceived
在工具名称可用时立即报告被调用的工具的名称。您还可以使用 ctl.toolCallGenerationArgumentFragmentGenerated
报告工具调用参数的片段,因为它们是生成的。这两种方法对于提供更好的用户体验很有用,但并非严格必要。
总而言之,您的生成器必须按以下顺序调用这些 ctl 方法:
ctl.fragmentGenerated
,以报告生成的非工具调用文本片段。ctl.toolCallGenerationStarted
,以指示工具调用生成的开始。ctl.toolCallGenerationNameReceived
,以报告被调用的工具的名称。ctl.toolCallGenerationArgumentFragmentGenerated
,以报告工具调用参数的生成片段。ctl.toolCallGenerationEnded
报告工具调用成功生成,或调用 ctl.toolCallGenerationFailed
报告工具调用生成失败。ctl.fragmentGenerated
,以报告生成的非工具调用文本片段。(通常不应该发生这种情况,但对于某些小型模型来说,技术上是可能的。关键是:这与模型接收工具结果并继续对话不同。这只是模型在发出工具请求后拒绝停止对话——工具结果尚未对模型可用。 当发生多轮预测时,即模型实际接收工具调用时,您的生成器函数将再次使用更新后的对话状态进行调用。)某些 API 格式可能会将工具名称与工具调用生成的开头一起报告,在这种情况下,您可以在 ctl.toolCallGenerationStarted
之后立即调用 ctl.toolCallGenerationNameReceived
。
某些 API 格式可能没有增量工具调用更新(即一次性给出整个工具调用请求),在这种情况下,您只需调用 ctl.toolCallGenerationStarted
,然后立即调用 ctl.toolCallGenerationEnded
。
此页面的源代码可在 GitHub 上获取