# @dynatrace-oss/dt-eval-lib 中文文档

规范地址：https://npmcn.com/package/%40dynatrace-oss/dt-eval-lib/

版本：0\.0\.23-alpha
npm 元数据更新时间：2026-11-10T13:23:32.085Z
中文译文更新时间：2026-11-13T02:45:12.868Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40dynatrace-oss/dt-eval-lib
原文对照：https://npmcn.com/package/%40dynatrace-oss/dt-eval-lib/?lang=original
项目主页：https://github.com/dynatrace-oss/dt-evals#readme
源码仓库：https://github.com/dynatrace-oss/dt-evals

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：208 kB，19 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：^22\.23\.4 \|\| ^24\.22\.1 \|\| \>=26\.12\.1
- 运行依赖：0 个
- peer 依赖：ajv ^8\.0\.0，openai ^4\.73\.0，recheck ^4\.0\.0，@google/genai ^1\.0\.0，@anthropic-ai/sdk ^0\.32\.0，@aws-sdk/client-bedrock-runtime ^3\.0\.0
- 首次发布：2026-04-16T14:42:06.082Z
- 最新版本发布：2026-11-10T13:23:29.971Z
- 近 30 天下载量：12102（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：15（近 12 个月 15 个）

## 中文简介

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

## 安装

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

也可以使用：`pnpm add @dynatrace-oss/dt-eval-lib`、`yarn add @dynatrace-oss/dt-eval-lib`、`bun add @dynatrace-oss/dt-eval-lib`

## README

# dt- eval- lib (英语)

[![npm version](https://img.shields.io/npm/v/@dynatrace-oss/dt-eval-lib/alpha?style=flat-square&label=npm&color=cb3837)](https://www.npmjs.com/package/@dynatrace-oss/dt-eval-lib) [![npm downloads](https://img.shields.io/npm/dm/@dynatrace-oss/dt-eval-lib?style=flat-square&color=cb3837)](https://www.npmjs.com/package/@dynatrace-oss/dt-eval-lib) [![Build](https://github.com/dynatrace-oss/dt-evals/actions/workflows/ci-lib.yml/badge.svg?branch=main)](https://github.com/dynatrace-oss/dt-evals/actions/workflows/ci-lib.yml) [![License](https://img.shields.io/badge/license-Apache_2.0-blue?style=flat-square)](https://npmcn.com/package/%40dynatrace-oss/LICENSE)

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

## 安装

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

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

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

## 构建

```bash
npm run build
```

## 测试

```bash
npm test
```

## 快速使用

```ts
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`](https://npmcn.com/package/%40dynatrace-oss/dt-eval-lib/src/prompts/catalog-data.ts)。 。 。 .

| 度量衡 | 数字 | 分数范围 | 使用的字段来自 `EvalInput` |
| --- | --- | --- | --- |
| `answer-completeness` | `BuiltInMetric.AnswerCompleteness` | 0.0–1.0 (中文(简体) ) | `input`, (中文(简体) ), `output` |
| `bias` | `BuiltInMetric.Bias` | 0.0–1.0 (中文(简体) ) | `input`, (中文(简体) ), `output` |
| `conciseness` | `BuiltInMetric.Conciseness` | 0.0–1.0 (中文(简体) ) | `input`, (中文(简体) ), `output` |
| `context-relevance` | `BuiltInMetric.ContextRelevance` | 0.0–1.0 (中文(简体) ) | `input` |
| `factual-accuracy` | `BuiltInMetric.FactualAccuracy` | 0.0–1.0 (中文(简体) ) | `input`, (中文(简体) ), `output` |
| `faithfulness` | `BuiltInMetric.Faithfulness` | 0.0–1.0 (中文(简体) ) | `input`, (中文(简体) ), `output` |
| `fluency` | `BuiltInMetric.Fluency` | 0.0–1.0 (中文(简体) ) | `input`, (中文(简体) ), `output` |
| `hallucination` | `BuiltInMetric.Hallucination` | 0.0–1.0 (中文(简体) ) | `input`, (中文(简体) ), `output` |
| `output-prompt-injection` | `BuiltInMetric.OutputPromptInjection` | 0.0–1.0 (中文(简体) ) | `output` |
| `pii-leakage` | `BuiltInMetric.PiiLeakage` | 0.0–1.0 (中文(简体) ) | `input`, (中文(简体) ), `output` |
| `prompt-injection` | `BuiltInMetric.PromptInjection` | 0.0–1.0 (中文(简体) ) | `input` |
| `relevance` | `BuiltInMetric.Relevance` | 0.0–1.0 (中文(简体) ) | `input`, (中文(简体) ), `output` |
| `summarization-quality` | `BuiltInMetric.SummarizationQuality` | 0.0–1.0 (中文(简体) ) | `input`, (中文(简体) ), `output` |
| `toxicity` | `BuiltInMetric.Toxicity` | 0.0–1.0 (中文(简体) ) | `output` |
| `user-frustration` | `BuiltInMetric.UserFrustration` | 0.0–1.0 (中文(简体) ) | `input` |

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

## 供应商

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

### 环境变量

```bash
# 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 部署名称, 它由用户定义, 没有默认 .

```ts
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` 直接对象 :

```ts
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()` 用于发现现有衡量标准:

```ts
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
```

## 配置

```ts
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 是什么？

用于运行 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 和提交记录判断。

