[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"pack-detail-llm-eval-guardrails-zh":3,"seo:pack:llm-eval-guardrails:zh":61},{"code":4,"message":5,"data":6},200,"操作成功",{"pack":7},{"slug":8,"icon":9,"tone":10,"status":11,"status_label":12,"title":13,"description":14,"items":15,"install_cmd":60},"llm-eval-guardrails","⚖️","#B45309","stable","稳定","LLM 评测 & 护栏","DeepEval \u002F Promptfoo \u002F Ragas \u002F Opik \u002F Guardrails AI — 上线前给每次 prompt 改动打分，提前抓退化。",[16,28,38,45,53],{"id":17,"uuid":18,"slug":19,"title":20,"description":21,"author_name":22,"view_count":23,"vote_count":24,"lang_type":25,"type":26,"type_label":27},292,"a4d57f88-3711-4032-8ad5-f2040ae03178","deepeval-llm-testing-framework-30-metrics-a4d57f88","DeepEval — LLM Testing Framework with 30+ Metrics","DeepEval is a pytest-like testing framework for LLM apps with 30+ metrics. 14.4K+ GitHub stars. RAG, agent, multimodal evaluation. Runs locally. MIT.","Script Depot",353,0,"en","skill","Skill",{"id":29,"uuid":30,"slug":31,"title":32,"description":33,"author_name":34,"view_count":35,"vote_count":24,"lang_type":25,"type":36,"type_label":37},618,"288cfb9f-58ef-4890-a0f7-f698ada3447e","promptfoo-llm-eval-red-team-testing-framework-288cfb9f","Promptfoo — LLM Eval & Red-Team Testing Framework","Open-source framework for evaluating and red-teaming LLM applications. Test prompts across models, detect jailbreaks, measure quality, and catch regressions. 5,000+ GitHub stars.","Agent Toolkit",240,"prompt","Prompt",{"id":39,"uuid":40,"slug":41,"title":42,"description":43,"author_name":22,"view_count":44,"vote_count":24,"lang_type":25,"type":26,"type_label":27},291,"2c856b4d-64e5-46b2-9bbd-a7ce9f7a7296","ragas-evaluate-rag-llm-applications-2c856b4d","Ragas — Evaluate RAG & LLM Applications","Ragas evaluates LLM applications with objective metrics, test data generation, and data-driven insights. 13.2K+ GitHub stars. RAG evaluation, auto test generation. Apache 2.0.",242,{"id":46,"uuid":47,"slug":48,"title":49,"description":50,"author_name":51,"view_count":52,"vote_count":24,"lang_type":25,"type":26,"type_label":27},443,"a543eba5-fe14-46f3-9aa5-96a5a23b72d0","opik-debug-evaluate-monitor-llm-apps-a543eba5","Opik — Debug, Evaluate & Monitor LLM Apps","Trace LLM calls, run automated evaluations, and monitor RAG and agent quality in production. By Comet. 18K+ GitHub stars.","AI Open Source",293,{"id":54,"uuid":55,"slug":56,"title":57,"description":58,"author_name":34,"view_count":59,"vote_count":24,"lang_type":25,"type":26,"type_label":27},773,"ffbad589-cd32-4eca-9518-fdcf9167ca21","guardrails-ai-validate-llm-outputs-production-ffbad589","Guardrails AI — Validate LLM Outputs in Production","Add validation and guardrails to any LLM output. Guardrails AI checks for hallucination, toxicity, PII leakage, and format compliance with 50+ built-in validators.",327,"tokrepo install pack\u002Fllm-eval-guardrails",{"pageType":62,"pageKey":8,"locale":63,"title":64,"metaDescription":65,"h1":13,"tldr":66,"bodyMarkdown":67,"faq":68,"schema":84,"internalLinks":94,"citations":107,"wordCount":120,"generatedAt":121},"pack","zh","LLM 评测 & 护栏：DeepEval \u002F Promptfoo \u002F Ragas \u002F Opik","开源 LLM 评测包：DeepEval \u002F Promptfoo \u002F Ragas \u002F Opik \u002F Guardrails AI。上线前给 prompt 改动打分，运行时约束输出。TokRepo 一条命令装齐。","五个开源工具把 prompt 迭代从「凭感觉」变成「可量化的工程」：离线评测 \u002F RAG 专用打分 \u002F 可观测 \u002F 运行时输出约束。","## 这个 pack 装了什么\n\n这个包收齐了 LLM 功能上线后、「这周模型变差了」不再能糊弄的团队最终都会用上的 **五个开源工具**。工具分两半：上线前评测（每次 prompt 改动都打分）和运行时护栏（约束模型实际输出）。\n\n| # | 资产 | 阶段 | 强在哪 |\n|---|---|---|---|\n| 1 | DeepEval | 上线前 | pytest 风格 LLM 输出单元测试（G-Eval \u002F Faithfulness \u002F 幻觉指标） |\n| 2 | Promptfoo | 上线前 | 跨模型 A\u002FB prompt 对比 + 红队扫描 |\n| 3 | Ragas | 上线前 | RAG 专用指标：context 精度 \u002F 忠实度 \u002F 回答相关性 |\n| 4 | Opik | 可观测 | 生产链路追踪、每个请求的评测分、数据集策展 |\n| 5 | Guardrails AI | 运行时 | 验证输出 schema 与策略，自带重试与重问 |\n\n这个分工很关键。上线前评测在客户看到之前抓退化；运行时护栏抓你没预测到的退化。两个都要 —— 只评测漏掉没采样到的对抗输入，只护栏不知道是哪次 prompt 改动引起漂移。\n\n## 为什么评测现在是入场券\n\n三个推力让评测变成「能上线 vs 卡住」的分水岭：\n\n- **模型升级按厂商节奏发**。Anthropic 出 Sonnet 4.7，你在 4.6 上跑通的 prompt 在 4.7 上行为可能微妙不同。没评测套件，你从客服工单里发现；有 Promptfoo，跑一条 `promptfoo eval -c promptfooconfig.yaml --providers anthropic:claude-4.7,anthropic:claude-4.6` 30 秒看到 diff。\n- **Prompt 没有编译错误**。代码里打错字会抛异常；prompt 里打错字产生看起来合理但更差的输出，然后上线。评测是 prompt 从来没有的编译步。\n- **RAG 质量悄悄退化**。新加进来的 doc 被检索到但其实不相关，回答质量降但没有任何报错。Ragas 给每个查询出 context 精度和忠实度分，让你在退化累积之前发现。\n\n## 一条命令装齐\n\n```bash\n# 把整个 pack 装进当前项目\ntokrepo install pack\u002Fllm-eval-guardrails\n\n# 或只装单个\ntokrepo install promptfoo\ntokrepo install ragas\n```\n\nTokRepo CLI 装好 `evals\u002F` 目录（带样例测试用例）、`promptfooconfig.yaml`、Ragas notebook（已接你检索器）、Guardrails AI rail 文件模板。CI 片段按评测套件通过率把 merge。\n\n## 常见踩坑\n\n- **LLM-as-judge 没接地**。DeepEval 和 Ragas 用 judge 模型给答案打分，但 judge 跟被测系统是同一个模型时分会乐观偏。用不同家族当 judge，或固定更强模型（例如打 GPT 输出时用 Claude judge）。\n- **评测集才 5 条**。手挑的 5 个样例覆盖不了长尾。目标 50-200 条，从真实生产日志衍生（Opik 让这步简单 —— 采样坏输出、打标签、提升进评测集）。\n- **把 Guardrails 当魔法过滤**。Guardrails 做 *结构*（合法 JSON \u002F 无脏话 \u002F 符合 schema）—— 抓不到「事实错但格式对」的答案。要叠 Ragas 忠实度检查。\n- **对生产流量跑评测烧钱**。每次都重打分的话评测套件能让 LLM 账单乘 5-10。embedding 缓存、夜跑采样、judge 用便宜模型。\n- **非文本输出没评测**。Agent 输出工具调用，要用结构化断言评测 *工具调用形态*，不只是最终文本。Promptfoo 通过自定义 `transform` 和 `assert` 钩子支持。\n\n## 这套不够用的时候\n\n要超出 Opik 的完整 **生产可观测**（延迟分位 \u002F 按用户成本 \u002F 模型路由分析），看 LangSmith 或 Arize Phoenix —— 都没放进 pack 因为它们更偏编排不是评测。要 **安全分类器**（越狱检测 \u002F prompt 注入打分），加 Llama Guard 或 NVIDIA NeMo Guardrails —— Guardrails AI 重在输出验证不是对抗输入检测。要做 **人工标注** 大规模评测，Argilla 或 Label Studio 接 Opik 数据集格式。",[69,72,75,78,81],{"q":70,"a":71},"整套全跑下来收费吗？","五个工具都是宽松开源（Apache 2.0 或 MIT）。计算开销是变量：每次评测调用一次 LLM，200 条 × 4 个 prompt 变体 × 2 模型 = 一次跑 1600 次 LLM 调用。激进缓存、夜跑采样、发版才全跑。Ragas 和 DeepEval 支持 LLM-as-judge 用便宜模型（Haiku \u002F gpt-4o-mini）压低 judge 成本。",{"q":73,"a":74},"比 LangSmith \u002F Braintrust 怎么样？","LangSmith 和 Braintrust 是托管平台，把评测、可观测、数据集策展放一个 UI。这个 pack 给你 80% 功能 0 成本 + 完全自建。代价：组件自己接（Promptfoo 评测 \u002F Opik 追踪 \u002F Guardrails 运行时）而不是一个仪表盘搞定。否则团队完全不会做评测就选托管；工程时间比席位费便宜就选这个 pack。",{"q":76,"a":77},"Claude Code \u002F Cursor 能用吗？","能。Claude Code 可以从功能规格生成 Promptfoo 配置和 DeepEval 测试用例 —— 给它规格 + 几个 prompt 样例，它生成 `evals\u002Ftest_*.py` 和 `promptfooconfig.yaml`。TokRepo 资产页带把这接到 `prompt-eval` 斜杠命令的 subagent prompt。Cursor 走自定义规则。",{"q":79,"a":80},"Promptfoo 跟 DeepEval 区别？","Promptfoo 配置驱动（YAML），强项在跨厂商 \u002F 模型 A\u002FB 对比 —— 「应该从 GPT 切 Claude 吗」这种问题专治。DeepEval 代码驱动（pytest），强项在单 prompt 的单元测试式断言 —— 「这个回答必须提 X 不能有 Y」。多数团队两个都跑：Promptfoo 选模型，DeepEval 抓 prompt 退化。",{"q":82,"a":83},"加 Guardrails AI 的运维坑？","Guardrails 重问会乘延迟和成本 —— 每次验证失败触发一次新的 LLM 调用修输出。设最大重试 1-2 次，在 Opik 监控 reask 率（>5% 说明 prompt 本身错了不是输出错了），底层模型支持时（Claude \u002F GPT-4o \u002F Gemini 都支持）优先用结构化输出（JSON schema）而不是重问。",{"@context":85,"@type":86,"name":87,"description":88,"numberOfItems":89,"publisher":90},"https:\u002F\u002Fschema.org","CollectionPage","LLM Eval & Guardrails","Open-source pack for scoring prompt changes and constraining LLM outputs: DeepEval, Promptfoo, Ragas, Opik, Guardrails AI.",5,{"@type":91,"name":92,"url":93},"Organization","TokRepo","https:\u002F\u002Ftokrepo.com",[95,99,103],{"url":96,"anchor":97,"reason":98},"\u002Fzh\u002Fpacks\u002Frag-pipelines","RAG 流水线","评估检索质量和生成质量并行",{"url":100,"anchor":101,"reason":102},"\u002Fzh\u002Fpacks\u002Fprompt-engineering-toolkit","Prompt 工程工具箱","被这些评测器打分的 prompt",{"url":104,"anchor":105,"reason":106},"\u002Fzh\u002Ftools\u002Fclaude-code","Claude Code","能从需求规格生成 Promptfoo 配置的 agent",[108,112,116],{"claim":109,"source_name":110,"source_url":111},"Promptfoo is an open-source CLI for testing and evaluating LLM apps with model comparisons and assertions","promptfoo\u002Fpromptfoo","https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo",{"claim":113,"source_name":114,"source_url":115},"Ragas provides metrics like faithfulness and answer relevancy for evaluating RAG pipelines","explodinggradients\u002Fragas","https:\u002F\u002Fgithub.com\u002Fexplodinggradients\u002Fragas",{"claim":117,"source_name":118,"source_url":119},"Guardrails AI defines validation rules to constrain LLM outputs to expected formats and policies","guardrails-ai\u002Fguardrails","https:\u002F\u002Fgithub.com\u002Fguardrails-ai\u002Fguardrails",506,"2026-05-02T15:00:00Z"]