@dynatrace-oss/dt-eval-lib

中文文档
0.0.23-alpha发布于 2026/11/10Apache-2.0TypeScriptES Module零依赖构建来源已验证近 30 天下载 1.2万

用于运行 LLM as- a- judge 评审的最小类型Script 库

中文使用文档
文档目录12 节
  1. 安装
  2. 构建
  3. 测试
  4. 快速使用
  5. 可用计量
  6. 供应商
  7. 环境变量
  8. 谷歌双子企业平台(Vertex AI) 设置
  9. Azure OpenAI 设置
  10. 亚马逊 Bedrock 设置
  11. 计量识别
  12. 配置

dt- eval- lib (英语)

npm version npm downloads Build License

用于运行LLM-as-a-judge评价的最小类型Script库.

安装

npm install @dynatrace-oss/dt-eval-lib

然后安装您的提供者的对等依赖 :

提供者同伴依赖关系
openai, (中文(简体) ), azure-openainpm install openai
anthropicnpm install @anthropic-ai/sdk
vertex, (中文(简体) ), gemininpm install @google/genai
bedrocknpm install @aws-sdk/client-bedrock-runtime

构建

npm run build

测试

npm test

快速使用

import { evaluate, BuiltInMetric } from "@dynatrace-oss/dt-eval-lib";

const result = await evaluate(
  BuiltInMetric.Toxicity,
  {
    input: "Tell me a joke",
    output: "Why did the chicken cross the road? To get to the other side!",
  },
  {
    provider: {
      provider: "openai",
      apiKey: "sk-...",
    },
  },
);

console.log(result.score);       // { value: 1, label: "pass" }
console.log(result.explanation); // { summary: "...", reasoning: "..." }

可用计量

所有内置参数返回 a 连续 计分 [0.0, 1.0]标签 "pass" 何时 value >= threshold 财务报告和审定财务报表 "fail" 否则。 每个内置的公尺默认值 threshold: 0.5 -通过呼叫控制它 EvalConfig.scoring.thresholdOverride真相来源: src/prompts/catalog-data.ts。 。 。 .

度量衡数字分数范围使用的字段来自 EvalInput
answer-completenessBuiltInMetric.AnswerCompleteness0.0–1.0 (中文(简体) )input, (中文(简体) ), output
biasBuiltInMetric.Bias0.0–1.0 (中文(简体) )input, (中文(简体) ), output
concisenessBuiltInMetric.Conciseness0.0–1.0 (中文(简体) )input, (中文(简体) ), output
context-relevanceBuiltInMetric.ContextRelevance0.0–1.0 (中文(简体) )input
factual-accuracyBuiltInMetric.FactualAccuracy0.0–1.0 (中文(简体) )input, (中文(简体) ), output
faithfulnessBuiltInMetric.Faithfulness0.0–1.0 (中文(简体) )input, (中文(简体) ), output
fluencyBuiltInMetric.Fluency0.0–1.0 (中文(简体) )input, (中文(简体) ), output
hallucinationBuiltInMetric.Hallucination0.0–1.0 (中文(简体) )input, (中文(简体) ), output
output-prompt-injectionBuiltInMetric.OutputPromptInjection0.0–1.0 (中文(简体) )output
pii-leakageBuiltInMetric.PiiLeakage0.0–1.0 (中文(简体) )input, (中文(简体) ), output
prompt-injectionBuiltInMetric.PromptInjection0.0–1.0 (中文(简体) )input
relevanceBuiltInMetric.Relevance0.0–1.0 (中文(简体) )input, (中文(简体) ), output
summarization-qualityBuiltInMetric.SummarizationQuality0.0–1.0 (中文(简体) )input, (中文(简体) ), output
toxicityBuiltInMetric.Toxicity0.0–1.0 (中文(简体) )output
user-frustrationBuiltInMetric.UserFrustration0.0–1.0 (中文(简体) )input

说明: “ 所用的字段” 一栏列出哪些字段是鼠标提示实际读取的 . EvalInput.output 在所有调用时需要类型-通过 output: "" 仅用于计量的 input。 。 。 .

供应商

支助 开放AI, (中文(简体) ), 安东尼, (中文(简体) ), Azure OpenAI 系统, (中文(简体) ), 谷歌双子企业平台(Vertex AI),以及 亚马逊贝德洛克通过代码或环境变量中的明确选项配置.

环境变量

# OpenAI
OPENAI_API_KEY=sk-...
OPENAI_BASE_URL=https://your-proxy.example.com/v1  # optional

# Anthropic
ANTHROPIC_API_KEY=sk-ant-...
ANTHROPIC_BASE_URL=https://your-proxy.example.com  # optional

# Azure OpenAI (all three required)
AZURE_OPENAI_API_KEY=...
AZURE_OPENAI_ENDPOINT=https://<resource>.openai.azure.com
AZURE_OPENAI_API_VERSION=2024-02-01

# Google Gemini Enterprise Platform (Vertex AI) — ADC path (no API key needed)
GOOGLE_CLOUD_PROJECT=my-gcp-project
GOOGLE_CLOUD_LOCATION=us-central1  # optional, defaults to "global"

# Google Gemini Enterprise Platform (Vertex AI) — API key path
GOOGLE_API_KEY=AIza...

# Amazon Bedrock — static credentials (optional if using IAM roles / SSO)
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
AWS_DEFAULT_REGION=us-east-1  # optional, defaults to "us-east-1"

每个选项的配置按此顺序解决:

  1. 明确价值 provider 选项
  2. 环境变量

谷歌双子企业平台(Vertex AI) 设置

使用带有提供者ID的应用程序默认证书( ADC) vertex 当运行在 GKE 或带有工作负荷身份的 Cloud 运行时, 或者通过 apiKey 带有提供者 ID gemini 用于基于密钥的认证.

Azure OpenAI 设置

所有四个领域都需要—— model 是您的 Azure 部署名称, 它由用户定义, 没有默认 .

await evaluate(BuiltInMetric.Toxicity, input, {
  provider: {
    provider: "azure-openai",
    apiKey: "...",                                    // or AZURE_OPENAI_API_KEY
    baseUrl: "https://<resource>.openai.azure.com",  // or AZURE_OPENAI_ENDPOINT
    apiVersion: "2024-02-01",                         // or AZURE_OPENAI_API_VERSION
    model: "my-gpt4-deployment",                      // your deployment name
  },
});

亚马逊 Bedrock 设置

使用AWS SDK证书链——IAM角色,SSO,以及 AWS_PROFILE 全部自动解决。 只有不能使用基于角色的认证时,才需要静态证书.

说明: 谷歌提供者标识 vertex 财务报告和审定财务报表 gemini 两者都使用 @google/genai SDK; (中文(简体) ); azure-openai 财务报告和审定财务报表 openai 两者都使用 openai SDK(英语:SDK).

计量识别

计量标准由 BuiltInMetric um. 也可以通过习惯 PromptDefinition 直接对象 :

import { evaluate, BuiltInMetric } from "@dynatrace-oss/dt-eval-lib";

await evaluate(BuiltInMetric.Toxicity, input, config);   // built-in metric via enum
await evaluate(myCustomPrompt, input, config);             // custom PromptDefinition object

使用 listPrompts() 财务报告和审定财务报表 getPrompt() 用于发现现有衡量标准:

import { listPrompts, getPrompt, BuiltInMetric } from "@dynatrace-oss/dt-eval-lib";

const all = listPrompts();                        // all 15 built-in metrics
const tox = getPrompt(BuiltInMetric.Toxicity);    // single metric by ID

配置

import type { EvalConfig, EvalInput } from "@dynatrace-oss/dt-eval-lib";

// What you pass to evaluate()
const input: EvalInput = {
  input: "What is the capital of France?",    // required — the user query
  output: "The capital of France is Paris.",  // required — the LLM response to evaluate
  context: "...",                              // optional — retrieved documents (RAG)
  expectedOutput: "...",                       // optional — reference answer
};

// How to run the evaluation
const config: EvalConfig = {
  provider: {
    provider: "openai",  // "openai" | "anthropic" | "azure-openai" | "vertex" | "gemini" | "bedrock"
    apiKey: "sk-...",    // optional if env var is set
    baseUrl: "https://", // optional — openai and anthropic only
    model: "...",        // optional — see src/engine/providers/index.ts for per-provider defaults
    timeout: 30000,      // optional — request timeout in ms (default: 30000)
    maxRetries: 2,       // optional — retries on transient errors (default: 2)
  },
  scoring: {
    thresholdOverride: 0.8, // optional — override the metric's pass threshold (default: 0.5)
  },
};

版本与发布记录

@dynatrace-oss/dt-eval-lib 共发布 15 个版本,首次发布于 2026/04/16;过去 12 个月发布了 15 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.0.23-alphalatest2026/11/103 天前
0.0.22-alpha2026/11/0211 天前
0.0.21-alpha2026/10/2321 天前
0.0.20-alpha2026/10/121 个月前
0.0.19-alpha2026/09/012 个月前
0.0.18-alpha2026/09/012 个月前

其他发布通道:alpha1 → 0.0.1-alpha1,alpha → 0.0.13-alpha。

关于 @dynatrace-oss/dt-eval-lib 的常见问题

@dynatrace-oss/dt-eval-lib 是什么?

用于运行 LLM as- a- judge 评审的最小类型Script 库

如何安装 @dynatrace-oss/dt-eval-lib?

在项目目录运行 npm install @dynatrace-oss/dt-eval-lib,或使用 pnpm add / yarn add / bun add。

@dynatrace-oss/dt-eval-lib 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@dynatrace-oss/dt-eval-lib 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@dynatrace-oss/dt-eval-lib 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js ^22.23.4 || ^24.22.1 || >=26.12.1。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@dynatrace-oss/dt-eval-lib 可以商用吗?

@dynatrace-oss/dt-eval-lib 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@dynatrace-oss/dt-eval-lib 的下载量有多少?

根据 npm 官方下载统计,@dynatrace-oss/dt-eval-lib 在 2026/10/13 – 2026/11/11 这 30 天内被下载 12,102 次,日均约 403 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@dynatrace-oss/dt-eval-lib 还在维护吗?

最新版本 0.0.23-alpha 发布于 2026/11/10(3 天前);至今共发布 15 个版本,其中过去 12 个月发布了 15 个;首次发布于 2026/04/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。