cantian-ai
v0.0.55
Published
`CompletionLlm` 和 `ResponseLlm` 对外事件类型一致,`stream()` 返回 `ModelChunk`:
Readme
ai
Usage
流式事件类型(CompletionLlm vs ResponseLlm)
CompletionLlm 和 ResponseLlm 对外事件类型一致,stream() 返回 ModelChunk:
MODEL_CALLING: 已发起模型请求(url,init)TOKEN: 文本增量(delta)MESSAGE: 完整消息(role,content)TOOL_CALL: 模型发起工具调用(callId,name,arguments)USAGE: 本轮调用统计(tokens、耗时、estimatedCost、input/output)
如果是 agenticStream()(Agent 模式),除了上面这些,还会有:
TOOL_CALLING: 开始执行某个工具AGENTIC_TOOL_TOKEN: 工具执行过程中的增量输出TOOL_CALL_OUTPUT: 工具执行结果AGENT_USAGE: 整个 agent 多轮调用汇总统计(包含tokenUsageId)
提前获取 tokenUsageId
agenticStream() 支持通过 options.tokenUsageId 由外层传入 tokenUsageId,方便外层先保存消息并建立关联:
const tokenUsageId = crypto.randomUUID();
for await (const chunk of llm.agenticStream(messages, modelOptions, {
logMeta: { traceId: 'abc' },
tokenUsageId,
})) {
// 此时可用 tokenUsageId 关联消息
// 最终 AGENT_USAGE chunk 也会带上同一个 tokenUsageId
}