4.3 框架集成:LangChain 与 Vercel AI SDK


4.3 框架集成:LangChain 与 Vercel AI SDK

本节摘要:如果你的项目已经跑在框架上,Jev 有两个官方级集成。LangChain 侧是 langchain-typesafe 包:TypeSafeClassifier 把 Jev 变成链里的一个分类器(state 可以是文本、结构化数据甚至 LangChain 消息对象),更有价值的是两个开箱中间件——ModelRouterMiddleware 用 Jev 按请求难度在多个模型间路由(成本杀手),AutoModeMiddleware 用 Jev 在工具执行前做风险检查与拦截(Agent 护栏)。Vercel AI SDK 7 侧通过 experimental_evaluate 接入,注意命名映射:Noul 在此叫 boolean,答案字段叫 probability,置信度在 providerMetadata.typesafe.confidence。本节的三个集成都是第 6~7 章模式的"官方预制品"。

学习目标

阅读完本节,你应当能够:

  1. 在 LangChain 里用 TypeSafeClassifier 做一次判断。
  2. 描述 ModelRouterMiddlewareAutoModeMiddleware 各自解决什么问题。
  3. 在 Vercel AI SDK 里调用 Jev 并找到置信度字段。

一、LangChain:TypeSafeClassifier

安装:pip install langchain-typesafe(需要 TYPESAFE_API_KEY)。

from langchain_typesafe import Noul, TypeSafeClassifier classifier = TypeSafeClassifier() response = classifier.invoke({ "state": "The deploy failed twice and customers are seeing 500s. Can someone look now?", "questions": { "urgent": Noul(instructions="Does this need attention right now?"), }, }) urgency = response.nouls["urgent"].noul # 0~1,与 4.1/4.2 的结果同构

state 的三种形态:文本、结构化数据、LangChain 消息对象——最后一种意味着你可以把一段对话历史直接作为"程序状态"交给 Jev 判断(比如"该对话是否开始跑题")。

二、LangChain 中间件:路由与护栏的预制品

ModelRouterMiddleware —— 模型路由(第 6.2 节的官方版)

from langchain_typesafe import ModelRouterMiddleware, ModelChoice router = ModelRouterMiddleware( instructions="根据任务复杂度选择模型", choices={ "fast": ModelChoice(model="openai:luna", criteria="简单改写、格式转换、事实性问答"), "powerful": ModelChoice(model="openai:sol", criteria="多步推理、长文写作、复杂代码"), }, ) # 每个 LLM 请求先过 Jev(~100ms、近零成本),再决定用哪个模型执行

价值逻辑:一次近零成本的 Choice 决定后续秒级 LLM 调用走便宜模型还是旗舰模型——简单流量占比高的系统,路由器本身就是成本优化器。

AutoModeMiddleware —— 工具护栏(第 7.3 节的官方版)

from langchain_typesafe import AutoModeMiddleware auto_mode = AutoModeMiddleware(tools=["bash"]) # Agent 每次要执行 bash 前,Jev 先检查该调用是否属于危险操作,危险则拦截

LangChain 官方将此定位为"闭源 harness 分类器(Claude/Codex/Cursor 内置的那类)的开源替代"——护栏逻辑从黑箱变成你代码里可审计的中间件。

三、Vercel AI SDK 7

安装(AI SDK ≥ 7.0.105,Node 22+):

npm install ai @ai-sdk/typesafe-ai

用法要点与命名映射(这是本节最容易踩的差异点):

Jev 原名 Vercel AI SDK 中的名字 答案字段
Noul boolean probability
Choice select
Score rating
import { experimental_evaluate } from "ai"; const result = await experimental_evaluate({ model: "typesafe-ai/jev", // 也可经 AI Gateway 调用 state: "Deploy failed twice, customers seeing 500s.", questions: { urgent: { type: "boolean", instructions: "Needs attention right now" }, }, }); const p = result.answers.urgent.probability; // 即 noul 概率 const conf = result.providerMetadata.typesafe.confidence; // 置信度藏在元数据里

⚠️ Vercel 侧三个注意:① Noul 改名 boolean、字段改叫 probability;② 置信度不在答案上而在 providerMetadata.typesafe.confidence——做门控(第 5.3 节)别漏读;③ 走 AI Gateway 时企业版可开 zeroDataRetention 标志(合规敏感场景)。

四、五种方式怎么选

方式 适合
curl / requests(4.1) 学协议、排障、极简依赖环境
官方 SDK(4.2) 独立服务、脚本、任何新项目
LangChain(4.3) 已用 LangChain 的应用/Agent,直接拿路由与护栏中间件
Vercel AI SDK(4.3) 已跑在 Vercel 生态的应用,与 generate/stream 同一编程模型

本节要点回顾

  1. LangChainTypeSafeClassifier 判断;ModelRouterMiddleware 路由省钱;AutoModeMiddleware 工具护栏——后两者是第 6~7 章模式的官方预制品。
  2. Vercelexperimental_evaluate,Noul→boolean、noul→probability、置信度在 providerMetadata。
  3. 选型:跟随你项目的既有框架;没有框架就用官方 SDK。

到这里,"调用 Jev"已经不是问题。下一章往下挖一层:为什么十三个问题一次问完反而更便宜?概率凭什么能当工程契约?confidence 到底在测什么?


作者与出处
原作者: 灏天文库
整理: 灏天文库整理
本站整理收录,版权归原作者/开源协议所有;欢迎通过原文链接访问源仓库。
发布者: 作者: 灏天文库 转发
评论区 (0)
U