<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Testing on YennJ12 Engineering Blog</title><link>https://yennj12.js.org/yennj12_blog_V4/tags/testing/</link><description>Recent content in Testing on YennJ12 Engineering Blog</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Tue, 30 Jun 2026 14:00:00 +0800</lastBuildDate><atom:link href="https://yennj12.js.org/yennj12_blog_V4/tags/testing/feed.xml" rel="self" type="application/rss+xml"/><item><title>Langfuse 入門 Part 3 — LLM 評估:Score、LLM-as-a-Judge、Dataset 與 Experiment</title><link>https://yennj12.js.org/yennj12_blog_V4/posts/langfuse-intro-part3-evaluation-zh/</link><pubDate>Tue, 30 Jun 2026 14:00:00 +0800</pubDate><guid>https://yennj12.js.org/yennj12_blog_V4/posts/langfuse-intro-part3-evaluation-zh/</guid><description>寫傳統程式,你有單元測試:斷言 add(2,3) == 5,綠燈就是對。 寫 LLM 應用,「正確答案」往往沒有唯一解——同一個問題有一百種好的回答方式。 那你怎麼測?怎麼知道改了 prompt 之後是變好還是變壞?這就是 LLM 評估要解的問題,也是 Langfuse 最核心的價值。
一、為什麼 LLM 評估這麼難 Part 1 說過,LLM 的「錯」是品質退化而非當機。這帶來一個根本困難:品質很難測。
傳統測試 LLM 評估 ─────────────── ─────────────── assert f(x) == 預期值 「這個回答好不好?」 ✅ 確定、二元、自動 ❓ 主觀、連續、難自動 困難來自三點:
沒有唯一正解:「解釋一下這份財報」可以有無數種好答案。 品質是多維的:正確性、忠實度(有沒有編造)、完整性、語氣、格式……每個維度都要分開看。 改一處動全身:調了 prompt 修好了 A 問題,可能默默弄壞了 B 問題——你需要回歸測試。 Langfuse 的評估體系,就是把這三個困難逐一拆解。核心是一個概念:Score(評分)。
二、Score:把「好不好」變成一個數字 Part 1 提過,Score 是 Langfuse 評估的基石。它把主觀品質,變成可記錄、可追蹤、可比較的值,附加在 trace 或 observation 上。
最直接的用法是用 SDK 寫入。比如收到使用者按了「👍 / 👎」:
1from langfuse import get_client 2langfuse = get_client() 3 4# 把使用者回饋寫成一個 score 5langfuse.</description></item><item><title>Everything Claude Code: The Ultimate Production-Ready Plugin Collection Guide</title><link>https://yennj12.js.org/yennj12_blog_V4/posts/everything-claude-code-setup-best-practices/</link><pubDate>Sat, 24 Jan 2026 16:30:00 +0800</pubDate><guid>https://yennj12.js.org/yennj12_blog_V4/posts/everything-claude-code-setup-best-practices/</guid><description>Master the everything-claude-code repository: a comprehensive collection of production-ready agents, skills, hooks, and MCP configurations evolved over 10+ months of intensive use. Learn setup, best practices, and advanced techniques to supercharge your Claude Code workflow.</description></item><item><title>Java Learning Journey: Fundamentals to Advanced</title><link>https://yennj12.js.org/yennj12_blog_V4/posts/comprehensive-java-learning-journey-fundamentals-to-advanced/</link><pubDate>Sat, 27 Sep 2025 10:00:00 +0000</pubDate><guid>https://yennj12.js.org/yennj12_blog_V4/posts/comprehensive-java-learning-journey-fundamentals-to-advanced/</guid><description>Complete exploration of Java programming concepts through practical examples, covering core language features, object-oriented principles, design patterns, modern frameworks, and advanced topics like reactive programming and microservices.</description></item></channel></rss>