TypeSafeClassifier 将状态分类为键入的决策和概率。它接受字符串、结构化的 JSON 以及 LangChain 消息对象。用于需要集中决策的场景,例如路由请求、选择模型或检查是否可以安全运行工具调用。
设置
安装@langchain/typesafe 及其 @langchain/core 依赖项:
dangerouslyAllowBrowser: false 以拒绝浏览器使用,如下面的快速入门示例所示。
在 TypeSafe 控制台 中创建 API 密钥并导出它:
可选:设置
TYPESAFE_BASE_URL 以使用兼容的网关、测试服务器或私有部署。默认值为 https://api.typesafe.ai。快速入门
使用一组命名的固定问题配置TypeSafeClassifier。共享状态的问题在一个请求中独立并行评估:
response.answers 中。nouls、choices 和 scores 访问器按类型分组答案对象。响应还包括 model、usage 和可选的 requestId。usage.inputTokens 和 usage.outputTokens 字段是可选的。
分组访问器是不可枚举的获取器。对象展开和 JSON 序列化会忽略它们;在存储或传输响应时使用 answers。
状态可以是字符串、JSON 对象或数组,或 LangChain 消息。分类器将消息对象转换为文本,包括嵌套在更大的对象内部时。
配置请求
构造函数选项控制身份验证和请求行为:apiKey:覆盖TYPESAFE_API_KEY。baseUrl:覆盖TYPESAFE_BASE_URL。timeout:设置每个请求的超时时间(毫秒)。默认为30000。maxRetries:设置最大重试次数。默认为2;将其设置为0以禁用重试。fetch:为代理或测试提供自定义传输。
signal、tags 和 metadata,作为 invoke 的第二个参数传递。问题和模型是构造函数设置,不是每次调用的覆盖。
分类器还支持 batch 和 pipe。其 stream 方法生成完整的分类结果,而不是增量答案。
处理错误
该包导出TypeSafeError、TypeSafeAPIError、TypeSafeAuthenticationError 和 TypeSafeRateLimitError。使用它们的 isInstance(error) 方法来识别失败。避免无差别地记录 API 错误正文:它们可能包含提交的状态。
TypeSafe 接收您提交的状态,包括消息内容和工具调用参数。在调用分类器之前删除密钥或敏感数据。
决策类型
每个问题使用三种 基本类型 之一。将问题定义为具有type 为 "noul"、"choice" 或 "score" 的对象。该包不导出 Noul、Choice 或 Score 构造函数:
一个
noul 答案没有 confidence 或 probabilities。对于范围,使用 score 而不是 noul:一个 noul 的 0.5 表示在是和否之间均等分配,而不是“中等。”
跟踪
启用 LangSmith 跟踪时,TypeSafe 分类结果会出现在 LangSmith 中。您可以与您的智能体一起检查输入、输出和可用 Token 使用情况。LangSmith 在跟踪输出中记录usage,而不是作为计价的 LLM 指标。
参考文档
官方原文:src/oss/javascript/integrations/providers/typesafe.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。