forked from openai/openai-node
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgrader-models.ts
More file actions
340 lines (291 loc) · 7.39 KB
/
grader-models.ts
File metadata and controls
340 lines (291 loc) · 7.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import { APIResource } from '../../core/resource';
import * as ResponsesAPI from '../responses/responses';
export class GraderModels extends APIResource {}
/**
* A LabelModelGrader object which uses a model to assign labels to each item in
* the evaluation.
*/
export interface LabelModelGrader {
input: Array<LabelModelGrader.Input>;
/**
* The labels to assign to each item in the evaluation.
*/
labels: Array<string>;
/**
* The model to use for the evaluation. Must support structured outputs.
*/
model: string;
/**
* The name of the grader.
*/
name: string;
/**
* The labels that indicate a passing result. Must be a subset of labels.
*/
passing_labels: Array<string>;
/**
* The object type, which is always `label_model`.
*/
type: 'label_model';
}
export namespace LabelModelGrader {
/**
* A message input to the model with a role indicating instruction following
* hierarchy. Instructions given with the `developer` or `system` role take
* precedence over instructions given with the `user` role. Messages with the
* `assistant` role are presumed to have been generated by the model in previous
* interactions.
*/
export interface Input {
/**
* Inputs to the model - can contain template strings.
*/
content: string | ResponsesAPI.ResponseInputText | Input.OutputText | Input.InputImage | Array<unknown>;
/**
* The role of the message input. One of `user`, `assistant`, `system`, or
* `developer`.
*/
role: 'user' | 'assistant' | 'system' | 'developer';
/**
* The type of the message input. Always `message`.
*/
type?: 'message';
}
export namespace Input {
/**
* A text output from the model.
*/
export interface OutputText {
/**
* The text output from the model.
*/
text: string;
/**
* The type of the output text. Always `output_text`.
*/
type: 'output_text';
}
/**
* An image input to the model.
*/
export interface InputImage {
/**
* The URL of the image input.
*/
image_url: string;
/**
* The type of the image input. Always `input_image`.
*/
type: 'input_image';
/**
* The detail level of the image to be sent to the model. One of `high`, `low`, or
* `auto`. Defaults to `auto`.
*/
detail?: string;
}
}
}
/**
* A MultiGrader object combines the output of multiple graders to produce a single
* score.
*/
export interface MultiGrader {
/**
* A formula to calculate the output based on grader results.
*/
calculate_output: string;
/**
* A StringCheckGrader object that performs a string comparison between input and
* reference using a specified operation.
*/
graders: StringCheckGrader | TextSimilarityGrader | PythonGrader | ScoreModelGrader | LabelModelGrader;
/**
* The name of the grader.
*/
name: string;
/**
* The object type, which is always `multi`.
*/
type: 'multi';
}
/**
* A PythonGrader object that runs a python script on the input.
*/
export interface PythonGrader {
/**
* The name of the grader.
*/
name: string;
/**
* The source code of the python script.
*/
source: string;
/**
* The object type, which is always `python`.
*/
type: 'python';
/**
* The image tag to use for the python script.
*/
image_tag?: string;
}
/**
* A ScoreModelGrader object that uses a model to assign a score to the input.
*/
export interface ScoreModelGrader {
/**
* The input text. This may include template strings.
*/
input: Array<ScoreModelGrader.Input>;
/**
* The model to use for the evaluation.
*/
model: string;
/**
* The name of the grader.
*/
name: string;
/**
* The object type, which is always `score_model`.
*/
type: 'score_model';
/**
* The range of the score. Defaults to `[0, 1]`.
*/
range?: Array<number>;
/**
* The sampling parameters for the model.
*/
sampling_params?: unknown;
}
export namespace ScoreModelGrader {
/**
* A message input to the model with a role indicating instruction following
* hierarchy. Instructions given with the `developer` or `system` role take
* precedence over instructions given with the `user` role. Messages with the
* `assistant` role are presumed to have been generated by the model in previous
* interactions.
*/
export interface Input {
/**
* Inputs to the model - can contain template strings.
*/
content: string | ResponsesAPI.ResponseInputText | Input.OutputText | Input.InputImage | Array<unknown>;
/**
* The role of the message input. One of `user`, `assistant`, `system`, or
* `developer`.
*/
role: 'user' | 'assistant' | 'system' | 'developer';
/**
* The type of the message input. Always `message`.
*/
type?: 'message';
}
export namespace Input {
/**
* A text output from the model.
*/
export interface OutputText {
/**
* The text output from the model.
*/
text: string;
/**
* The type of the output text. Always `output_text`.
*/
type: 'output_text';
}
/**
* An image input to the model.
*/
export interface InputImage {
/**
* The URL of the image input.
*/
image_url: string;
/**
* The type of the image input. Always `input_image`.
*/
type: 'input_image';
/**
* The detail level of the image to be sent to the model. One of `high`, `low`, or
* `auto`. Defaults to `auto`.
*/
detail?: string;
}
}
}
/**
* A StringCheckGrader object that performs a string comparison between input and
* reference using a specified operation.
*/
export interface StringCheckGrader {
/**
* The input text. This may include template strings.
*/
input: string;
/**
* The name of the grader.
*/
name: string;
/**
* The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`.
*/
operation: 'eq' | 'ne' | 'like' | 'ilike';
/**
* The reference text. This may include template strings.
*/
reference: string;
/**
* The object type, which is always `string_check`.
*/
type: 'string_check';
}
/**
* A TextSimilarityGrader object which grades text based on similarity metrics.
*/
export interface TextSimilarityGrader {
/**
* The evaluation metric to use. One of `cosine`, `fuzzy_match`, `bleu`, `gleu`,
* `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, or `rouge_l`.
*/
evaluation_metric:
| 'cosine'
| 'fuzzy_match'
| 'bleu'
| 'gleu'
| 'meteor'
| 'rouge_1'
| 'rouge_2'
| 'rouge_3'
| 'rouge_4'
| 'rouge_5'
| 'rouge_l';
/**
* The text being graded.
*/
input: string;
/**
* The name of the grader.
*/
name: string;
/**
* The text being graded against.
*/
reference: string;
/**
* The type of grader.
*/
type: 'text_similarity';
}
export declare namespace GraderModels {
export {
type LabelModelGrader as LabelModelGrader,
type MultiGrader as MultiGrader,
type PythonGrader as PythonGrader,
type ScoreModelGrader as ScoreModelGrader,
type StringCheckGrader as StringCheckGrader,
type TextSimilarityGrader as TextSimilarityGrader,
};
}