> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-docs-3071-org-scoped-api-keys.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Evaluation<R, E, M>

> TypeScript SDK 레퍼런스

scorer 집합과 데이터셋을 포함하는 Evaluation을 설정합니다.

`evaluation.evaluate(model)`을 호출하면 데이터셋의 각 행이 모델에 전달되며, 데이터셋의 column 이름이 `model.predict`의 argument 이름에 맞게 매핑됩니다.

그런 다음 모든 scorer를 호출하고 결과를 weave에 저장합니다.

정의 위치: [src/evaluation.ts:139](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/evaluation.ts#L139)

## 예시

```ts twoslash theme={null}
// @noErrors
// 예시를 데이터셋으로 수집합니다
const dataset = new weave.Dataset({
  id: 'my-dataset',
  rows: [
    { question: 'What is the capital of France?', expected: 'Paris' },
    { question: 'Who wrote "To Kill a Mockingbird"?', expected: 'Harper Lee' },
    { question: 'What is the square root of 64?', expected: '8' },
  ],
});

// 맞춤형 점수화 함수를 정의합니다
const scoringFunction = weave.op(function isEqual({ modelOutput, datasetRow }) {
  return modelOutput == datasetRow.expected;
});

// 평가할 함수를 정의합니다
const model = weave.op(async function alwaysParisModel({ question }) {
  return 'Paris';
});

// 평가를 시작합니다
const evaluation = new weave.Evaluation({
  id: 'my-evaluation',
  dataset: dataset,
  scorers: [scoringFunction],
});

const results = await evaluation.evaluate({ model });
```

<div id="extends">
  ## 확장
</div>

* [`WeaveObject`](./weaveobject)

<div id="type-parameters">
  ## 유형 매개변수
</div>

<div id="r">
  ### R
</div>

`R` *extends* `DatasetRow`

<div id="e">
  ### E
</div>

`E` *extends* `DatasetRow`

<div id="m">
  ### M
</div>

`M`

<div id="constructors">
  ## 생성자
</div>

<div id="constructor">
  ### 생성자
</div>

> **new Evaluation**\<`R`, `E`, `M`>(`parameters`): `Evaluation`\<`R`, `E`, `M`>

정의 위치: [src/evaluation.ts:150](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/evaluation.ts#L150)

#### 매개변수

<div id="parameters">
  ##### parameters
</div>

`EvaluationParameters`\<`R`, `E`, `M`>

#### 반환값

`Evaluation`\<`R`, `E`, `M`>

<div id="overrides">
  #### 재정의
</div>

[`WeaveObject`](./weaveobject).[`constructor`](./weaveobject#constructor)

<div id="properties">
  ## 속성
</div>

<div id="__savedref">
  ### \_\_savedRef
</div>

> `선택` **\_\_savedRef**: [`ObjectRef`](./objectref) | `Promise`\<[`ObjectRef`](./objectref)>

정의 위치: [src/weaveObject.ts:71](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/weaveObject.ts#L71)

<div id="inherited-from">
  #### 상속됨
</div>

[`WeaveObject`](./weaveobject).[`__savedRef`](./weaveobject#__savedref)

<div id="accessors">
  ## 접근자
</div>

<div id="description">
  ### 설명
</div>

<div id="get-signature">
  #### 조회 시그니처
</div>

> **get** **description**(): `string` | `undefined`

정의 위치: [src/weaveObject.ts:98](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/weaveObject.ts#L98)

<div id="returns">
  ##### 반환값
</div>

`string` | `undefined`

<div id="inherited-from">
  #### 상속됨
</div>

[`WeaveObject`](./weaveobject).[`description`](./weaveobject#description)

***

<div id="name">
  ### 이름
</div>

<div id="get-signature">
  #### 조회 시그니처
</div>

> **get** **name**(): `string`

정의 위치: [src/weaveObject.ts:94](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/weaveObject.ts#L94)

<div id="returns">
  ##### 반환값
</div>

`string`

<div id="inherited-from">
  #### 상속됨
</div>

[`WeaveObject`](./weaveobject).[`name`](./weaveobject#name)

<div id="methods">
  ## 메서드
</div>

<div id="evaluate">
  ### evaluate()
</div>

> **evaluate**(`__namedParameters`): `Promise`\<`Record`\<`string`, `any`>>

정의 위치: [src/evaluation.ts:165](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/evaluation.ts#L165)

#### 매개변수

<div id="__namedparameters">
  ##### \_\_namedParameters
</div>

<div id="maxconcurrency">
  ###### maxConcurrency?
</div>

`number` = `5`

<div id="model">
  ###### 모델
</div>

`WeaveCallable`\<(...`args`) => `Promise`\<`M`>>

<div id="ntrials">
  ###### nTrials?
</div>

`숫자` = `1`

#### 반환값

`Promise`\<`Record`\<`string`, `any`>>

***

<div id="predictandscore">
  ### predictAndScore()
</div>

> **predictAndScore**(`__namedParameters`): `Promise`\<\{ `model_latency`: `number`; `model_output`: `any`; `model_success`: `boolean`; `scores`: \{\[`key`: `string`]: `any`; }; }>

정의 위치: [src/evaluation.ts:244](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/evaluation.ts#L244)

#### 매개변수

<div id="__namedparameters">
  ##### \_\_namedParameters
</div>

<div id="columnmapping">
  ###### columnMapping?
</div>

`ColumnMapping`\<`R`, `E`>

<div id="example">
  ###### 예시
</div>

`R`

<div id="model">
  ###### 모델
</div>

`WeaveCallable`\<(...`args`) => `Promise`\<`M`>>

#### 반환값

`Promise`\<\{ `model_latency`: `number`; `model_output`: `any`; `model_success`: `boolean`; `scores`: \{\[`key`: `string`]: `any`; }; }>

***

<div id="saveattrs">
  ### saveAttrs()
</div>

> **saveAttrs**(): `object`

정의 위치: [src/weaveObject.ts:75](https://github.com/wandb/weave/blob/8c5f077eb11c42b84000726ff20504abc728d3fb/sdks/node/src/weaveObject.ts#L75)

#### 반환값

`object`

<div id="inherited-from">
  #### 상속됨
</div>

[`WeaveObject`](./weaveobject).[`saveAttrs`](./weaveobject#saveattrs)
