LangKit
免费
LangKit 是 WhyLabs 开源的 LLM 文本指标工具包(Python 库),提供文本质量、文本相关性、安全与隐私、情感与毒性分析等开箱即用指标,与 whylogs 数据日志库深度集成,适用于生产有境 LLM 输入/输出的可观测性与安全监控。AI编程
LangKit
核心参数与统计
LangKit 是 WhyLabs 开源的 Python 文本指标工具包,专注于为生产有境中的大语言模型(LLM)交互提供结构化的可观测性信号。它不是独立应用,而是一个嵌入 Python 数据管道的库,与开源数据日志库 whylogs 深度集成。
| 项目 | 公开信息 |
|---|---|
| 官方定位 | Open-source text metrics toolkit for monitoring language models |
| 交付形态 | Python 库(PyPI 包) |
| 开源许可 | Apache-2.0 |
| GitHub Stars | 约 991 |
| GitHub Forks | 72 |
| 最新版本 | v0.0.35(2024-11-07) |
| 总发布数 | 35 个版本 |
| 支持平台 | Python API(与 whylogs 配合) |
| 核心模块 | Text Quality、Text Relevance、Security & Privacy、Sentiment & Toxicity |
定位边界:LangKit 不是端到端监控平台,也不是安全防火墙。它是一组可编程的 UDF(用户定义函数)集合,输出结构化指标供 whylogs 记录,再交由 WhyLabs 平台或自定义管道分析。它的价值在于把非结构化的 LLM 文本转化为可量化的数值指标。
性能参考:官方公布的基准测试显示,在 c5.xlarge 实例上,"Light metrics" 模式可达 2335 chats/sec,而启用全部 LLM 指标后降至 8.2 chats/sec;在 g4dn.xlarge(含 GPU)上,全指标模式可达 1.79 chats/sec。这一数据说明,全量指标存在显著计算开销,生产部署时需要按场景选择性启用。
用户与市场认可
社区基础:GitHub 约 991 stars、72 forks、10 位贡献者,15 位 watchers,社区规模中等但精准,主要集中在 AI 可观测性与 LLMOps 领域。35 个发布版本表明项目有持续的维护投入。
行业背景:LangKit 由 WhyLabs 开发并开源。WhyLabs 曾是 AI 可观测性赛道的头部初创公司,由来自 Amazon、Google、New Relic 等公司的团队创立。公司已于 2025-2026 年间停止运营,但完整平台已开源,LangKit 与 whylogs 作为核心组件将继续以开源形式存在。
采用前提:LangKit 的价值高度依赖 whylogs 生态。团队如果已经在使用 whylogs 做数据日志,接入 LangKit 几乎零成本;否则需要额外引入一条数据日志管道,评估时需算入这部分集成工作。
成本优势
LangKit 本身是 Apache-2.0 许可的开源项目,使用成本为零。
- C 端/个人开发者:免费。通过 pip install langkit[all] 即可使用,无额度限制、无 API Key 要求。计算资源由本地或自管服务器承担。
- API/开发者:免费。LangKit 本身不产生 API 调用费用,但如果使用需要外部模型的功能(如基于 OpenAI 的幻觉检测),需自行承担对应 API 费用。
- 企业/私有化:免费自托管。由于 WhyLabs 已停止运营,原 WhyLabs 平台的托管服务已不可用。企业只能走自托管路径,将 LangKit 集成到自有数据管道中,使用 whylogs 记录指标并自建可视化/告警链路。隐性成本包括:集成开发工时GPU/CPU 计算资源、存储与运维。
隐性成本:全量 LLM 指标的开销不可忽略。官方基准显示,全指标模式在 CPU 实例上的吞吐仅为 0.28 chats/sec(c5.xlarge),这意味着高并发场景需要 GPU 实例或选择性启用部分指标。采用前建议用官方 notebook 在目标有境做压测。
主要功能
- 文本质量(Text Quality):自动计算可读性评分、复杂度和年级分数。适用于监控输出是否过于晦涩或过于简单,帮助发现模型退化或格式漂移。
- 文本相关性(Text Relevance):计算 prompt 与 response 之间的相似度分数,支持用户自定义主题的相似度对比。用于检测模型是否"答非所问"或偏离业务主题。
- 安全与隐私(Security and Privacy):包含五个子模块——patterns(自定义正则匹配计数)、jailbreaks(越狱攻击相似度)、prompt injection(提示注入相似度)、hallucinations(响应一致性检查)、refusals(拒绝响应相似度)。这组功能可将安全信号从人工抽检升级为持续自动化扫描。
- 情感与毒性(Sentiment and Toxicity):提供情感分析与毒性分析。适用于社交内容审核、客服对话监控等需要实时内容安全的场景。
- PII 检测:v0.0.29 起新增 PII(个人身份信息)检测模块,可识别文本中的敏感信息。
专家视点:LangKit 的核心价值不在于单个指标,而在于"指标组合的协同效应"。例如,将文本质量 + 相关性 + 安全模块同时启用,可以在一条数据管道中同时监控输出质量下降、主题偏离、注入攻击和幻觉风险,无需在多个工具间切换。与 whylogs 的深度集成使得所有指标自动对齐到同一套数据 Profile 中,便于做跨维度的异常关联分析。
模型与版本演进
LangKit 遵循语义化版本,以 v0.0.x 为主线持续迭代。以下为关键发布节点:
主线发布
- v0.0.35(2024-11-07):修复 rolling logger schema,更新 notebook 的 opt-in upload 逻辑,当前最新稳定版。
- v0.0.34(2024-10-30):升级依赖至 whylogs 1.5,保持与上游 whylogs 的兼容性。
- v0.0.33(2024-08-12):将 textstat 替换为自维护的 whylabs-textstat,减少外部依赖风险。
- v0.0.32(2024-05-29):新增 local models 支持,允许在本地运行模型而非依赖外部 API。
- v0.0.31(2024-03-06):增加可配置的 detoxify 模型选项用于毒性分析,改进幻觉检测的错误暴露。
- v0.0.30(2024-02-07):移除 faiss 依赖,升级 embeddings 到 v2,降低安装体积与复杂度。
- v0.0.29(2024-01-23):新增 PII 检测模块与 VADER 情感支持。
- v0.0.28(2023-12-09):支持 OpenAI 客户端 v0/v1 双兼容,新增 Proactive Injection Detection。
- v0.0.27(2023-11-28):新增特征提取包装器CUDA 基准测试。
- v0.0.26(2023-11-22):支持 Azure OpenAI 托管模型GPU 用量控制。
迭代特征:项目从 v0.0.26 到 v0.0.35 间隔约一年,保持了月均 1-2 个版本的节奏。早期的版本重点在功能扩充(安全模块PII、本地模型),后期转向稳定性与依赖维护。WhyLabs 停运后,项目更新频率可能进一步放缓。
技术优势
机制 — 效果 — 场景分析:
- 基于 whylogs 的 UDF 架构:LangKit 的每个指标模块实现为一个或多个 whylogs UDF,自动挂载到 whylogs 的日志管道中。这意味着用户无需手动编写特征提取逻辑,只需导入模块并初始化 schema,就能在数据日志过程中同步产出指标。对于已有 whylogs 集成的团队,此机制可实现"零额外代码"的可观测性增强。
- 基于相似度的安全检测:jailbreak、prompt injection、refusal 等安全模块使用向量相似度匹配已知攻击/拒绝模式,而非规则引擎。这种方法的优势在于能泛化到未见过的变体攻击,劣势是对嵌入模型质量敏感且存在误报。生产部署建议先用基准数据集校准阈值。
- 模块化按需加载:LangKit 的指标被拆分为独立模块,用户仅安装和导入需要的功能,避免不必要的计算开销。官方提供的"light metrics""LLM metrics""all metrics"三档配置正是这一设计的体现——在 c5.xlarge 上,light 模式(2335 chats/sec)比全量模式(0.28 chats/sec)快约 8300 倍。
- 本地模型可选:v0.0.32 起支持在本地运行检测模型,不强制依赖外部 API。这对于数据主权敏感或离线有境的部署至关重要——安全指标可以在完全无外网的情况下计算。
如何使用
相关信息未公开,以官方实时页面为准。
产品定价
LangKit 本身完全免费且开源。定价层次如下:
| 层次 | 费用 | 说明 |
|---|---|---|
| Python 库 | 免费 | Apache-2.0 许可,无使用限制 |
| 计算资源 | 自担 | 指标计算消耗 CPU/GPU 资源,按实际用量承担云服务费 |
| 托管平台 | 不可用 | WhyLabs 平台已停止运营,无商业托管选项 |
| 企业支持 | 不可用 | WhyLabs 公司已停运,无商业支持合约 |
后续选项:由于 WhyLabs 平台的关闭,LangKit 用户目前只能以自托管方式使用。社区可能在未来 fork 项目或在 whylogs 基础上构建新的可视化方案。评估采用时需确认自身团队有能力维护这条开源链路。
应用场景
- LLM 生产监控:在生产有境中持续采集 prompt/response 的文本质量、相关性、安全指标,用于发现模型退化(输出质量下降)、主题漂移(相关性分数降低)或异常输入(注入/越狱攻击)。适用岗位:MLOps 工程师AI 应用开发者。
- 安全合规审计:启用 PII 检测、注入检测和越狱检测模块,对 LLM 交互日志做自动化安全扫描。适用于金融机构、医疗等受监管行业的 LLM 部署场景。核验重点:误报率与召回率的平衡。
- 内容质量管控:对模型输出做可读性、情感、毒性分析,确保面向用户的内容符合品牌语调与安全标准。适用于客服对话、社交媒体内容生成、教育内容生产等场景。
- 提示词工程评估:在开发阶段用文本相关性指标比较不同 prompt 变体与理想输出的语义距离,量化 prompt 优化效果。核验重点:相似度阈值需按业务语义定义,而非一刀切。
适用人群
- MLOps / AI 基础设施工程师:需要为 LLM 应用建立可观测性管道的技术团队。LangKit 提供标准化指标提取,降低自建监控系统的重复劳动。前置条件:团队已有或愿意引入 whylogs。
- AI 安全研究员:需要批量分析 prompt 安全性的研究人员。LangKit 的注入/越狱/幻觉模块提供可复用的相似度检测基线。不适配场景:需要高精度定制规则或实时拦截的场景,LangKit 只产生指标,不执行阻断。
- LLM 应用开发者:正在构建基于 LLM 的产品并需要了解模型行为是否异常的开发者。通过几条 Python 代码即可接入生产监控。不适配场景:非 Python 技术栈的团队(LangKit 是纯 Python 库)。
- 不适合的人群:需要零代码可视化监控面板的团队(LangKit 不提供 UI,指标需自行可视化);需要实时安全拦截网关的团队(LangKit 是日志分析工具而非防火墙);对 WhyLabs 平台有依赖的存量用户(平台已停运,需迁移至自托管方案)。
总结与展望
LangKit 的价值在于为 LLM 生产监控提供了一个标准化、可编程的指标提取层。它把文本质量、相关性、安全、情感等多维信号封装为 whylogs UDF,用户只需数行代码就能将非结构化的 LLM 交互转化为结构化可观测数据。Apache-2.0 许可和 35 个版本的迭代记录证明了项目的工程成熟度。
当前限制与不确定项:
- WhyLabs 公司已停止运营,平台托管链路失效。LangKit 的未来维护节奏和社区活跃度存在不确定性,建议采用前关注 GitHub 仓库的近 3 个月提交记录。
- 全量指标的计算开销很大(CPU 实例上 <1 chat/sec),生产部署必须按场景选择性启用模块,并规划 GPU 资源。
- LangKit 仅提供指标提取,不包含可视化、告警、仪表盘等监控闭有功能,需自行在 whylogs 输出之上构建。
- 安全模块基于相似度匹配,对嵌入模型质量敏感,需在生产有境用实际数据校准阈值。
采购与采用风险评估:LangKit 适合已经或计划使用 whylogs 的 Python 技术团队,作为 LLM 可观测性管道的指标来源层。评估采用前需确认三点:(1) 团队有能力自托管 whylogs 并处理输出的 Profile 数据;(2) 目标场景的并发量在 LangKit 选定模块的性能预算内(建议先用官方基准做压测);(3) 对项目未来的维护节奏有合理的预期管理。对于需要开箱即用监控平台或非 Python 技术栈的团队,LangKit 当前不是合适的选择。
相关工具:Cursor
LangKit 的使用方法
LangKit 以 Python 库形式分发,通过 PyPI 安装,入口为与 whylogs 配合的 SDK 集成。
安装:
pip install langkit[all]
如需最小安装(不包含可选依赖如 torch、transformers),使用:
pip install langkit
基本使用:
import whylogs as why
from langkit import llm_metrics
# 初始化 LLM 指标 schema
schema = llm_metrics.init()
# 记录一次 prompt/response 交互并自动计算指标
results = why.log(
{"prompt": "What is machine learning、", "response": "Machine learning is..."},
schema=schema
)
# 结果中包含文本质量、相关性、安全等所有已注册指标的统计
profile = results.profile()
按需启用特定模块:
from langkit import text_quality, sentiment
schema = llm_metrics.init()
# 仅启用文本质量与情感分析模块
schema = text_quality.init() # 注册可读性、复杂度指标
schema = sentiment.init() # 注册情感与毒性指标
集成到生产管道:LangKit 的典型使用方式是在 LLM 调用链中插入日志点,将 prompt 和 response 传入 why.log(),然后定时将 profile 上传到 WhyLabs 平台(原方案,平台已停运)或写入本地存储做后续分析。
入口:GitHub 仓库(https://github.com/whylabs/langkit)包含完整文档FAQ、示例 notebook 和模块文档。
版本信息
- LangKit 0.0.35 :修复 rolling logger schema,更新 notebook 的 opt-in upload 逻辑。
- LangKit 0.0.34 :更新依赖至 whylogs 1.5,修复兼容性问题。
- LangKit 0.0.33 :将 textstat 替换为 whylabs-textstat,更新 README 图片。
- LangKit 0.0.32 :新增本地模型支持(local models),更新 textstat 代码片段。
- LangKit 0.0.31 :增加可配置的 detoxify 模型支持,改进响应幻觉检测的错误处理。
- LangKit 0.0.30 :移除 faiss 依赖,升级 embeddings v2。
用户评价