1// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
3package openai
4
5import (
6 "context"
7 "encoding/json"
8 "net/http"
9
10 "github.com/openai/openai-go/internal/apijson"
11 "github.com/openai/openai-go/internal/requestconfig"
12 "github.com/openai/openai-go/option"
13 "github.com/openai/openai-go/packages/param"
14 "github.com/openai/openai-go/packages/respjson"
15)
16
17// FineTuningAlphaGraderService contains methods and other services that help with
18// interacting with the openai API.
19//
20// Note, unlike clients, this service does not read variables from the environment
21// automatically. You should not instantiate this service directly, and instead use
22// the [NewFineTuningAlphaGraderService] method instead.
23type FineTuningAlphaGraderService struct {
24 Options []option.RequestOption
25}
26
27// NewFineTuningAlphaGraderService generates a new service that applies the given
28// options to each request. These options are applied after the parent client's
29// options (if there is one), and before any request-specific options.
30func NewFineTuningAlphaGraderService(opts ...option.RequestOption) (r FineTuningAlphaGraderService) {
31 r = FineTuningAlphaGraderService{}
32 r.Options = opts
33 return
34}
35
36// Run a grader.
37func (r *FineTuningAlphaGraderService) Run(ctx context.Context, body FineTuningAlphaGraderRunParams, opts ...option.RequestOption) (res *FineTuningAlphaGraderRunResponse, err error) {
38 opts = append(r.Options[:], opts...)
39 path := "fine_tuning/alpha/graders/run"
40 err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...)
41 return
42}
43
44// Validate a grader.
45func (r *FineTuningAlphaGraderService) Validate(ctx context.Context, body FineTuningAlphaGraderValidateParams, opts ...option.RequestOption) (res *FineTuningAlphaGraderValidateResponse, err error) {
46 opts = append(r.Options[:], opts...)
47 path := "fine_tuning/alpha/graders/validate"
48 err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...)
49 return
50}
51
52type FineTuningAlphaGraderRunResponse struct {
53 Metadata FineTuningAlphaGraderRunResponseMetadata `json:"metadata,required"`
54 ModelGraderTokenUsagePerModel map[string]any `json:"model_grader_token_usage_per_model,required"`
55 Reward float64 `json:"reward,required"`
56 SubRewards map[string]any `json:"sub_rewards,required"`
57 // JSON contains metadata for fields, check presence with [respjson.Field.Valid].
58 JSON struct {
59 Metadata respjson.Field
60 ModelGraderTokenUsagePerModel respjson.Field
61 Reward respjson.Field
62 SubRewards respjson.Field
63 ExtraFields map[string]respjson.Field
64 raw string
65 } `json:"-"`
66}
67
68// Returns the unmodified JSON received from the API
69func (r FineTuningAlphaGraderRunResponse) RawJSON() string { return r.JSON.raw }
70func (r *FineTuningAlphaGraderRunResponse) UnmarshalJSON(data []byte) error {
71 return apijson.UnmarshalRoot(data, r)
72}
73
74type FineTuningAlphaGraderRunResponseMetadata struct {
75 Errors FineTuningAlphaGraderRunResponseMetadataErrors `json:"errors,required"`
76 ExecutionTime float64 `json:"execution_time,required"`
77 Name string `json:"name,required"`
78 SampledModelName string `json:"sampled_model_name,required"`
79 Scores map[string]any `json:"scores,required"`
80 TokenUsage int64 `json:"token_usage,required"`
81 Type string `json:"type,required"`
82 // JSON contains metadata for fields, check presence with [respjson.Field.Valid].
83 JSON struct {
84 Errors respjson.Field
85 ExecutionTime respjson.Field
86 Name respjson.Field
87 SampledModelName respjson.Field
88 Scores respjson.Field
89 TokenUsage respjson.Field
90 Type respjson.Field
91 ExtraFields map[string]respjson.Field
92 raw string
93 } `json:"-"`
94}
95
96// Returns the unmodified JSON received from the API
97func (r FineTuningAlphaGraderRunResponseMetadata) RawJSON() string { return r.JSON.raw }
98func (r *FineTuningAlphaGraderRunResponseMetadata) UnmarshalJSON(data []byte) error {
99 return apijson.UnmarshalRoot(data, r)
100}
101
102type FineTuningAlphaGraderRunResponseMetadataErrors struct {
103 FormulaParseError bool `json:"formula_parse_error,required"`
104 InvalidVariableError bool `json:"invalid_variable_error,required"`
105 ModelGraderParseError bool `json:"model_grader_parse_error,required"`
106 ModelGraderRefusalError bool `json:"model_grader_refusal_error,required"`
107 ModelGraderServerError bool `json:"model_grader_server_error,required"`
108 ModelGraderServerErrorDetails string `json:"model_grader_server_error_details,required"`
109 OtherError bool `json:"other_error,required"`
110 PythonGraderRuntimeError bool `json:"python_grader_runtime_error,required"`
111 PythonGraderRuntimeErrorDetails string `json:"python_grader_runtime_error_details,required"`
112 PythonGraderServerError bool `json:"python_grader_server_error,required"`
113 PythonGraderServerErrorType string `json:"python_grader_server_error_type,required"`
114 SampleParseError bool `json:"sample_parse_error,required"`
115 TruncatedObservationError bool `json:"truncated_observation_error,required"`
116 UnresponsiveRewardError bool `json:"unresponsive_reward_error,required"`
117 // JSON contains metadata for fields, check presence with [respjson.Field.Valid].
118 JSON struct {
119 FormulaParseError respjson.Field
120 InvalidVariableError respjson.Field
121 ModelGraderParseError respjson.Field
122 ModelGraderRefusalError respjson.Field
123 ModelGraderServerError respjson.Field
124 ModelGraderServerErrorDetails respjson.Field
125 OtherError respjson.Field
126 PythonGraderRuntimeError respjson.Field
127 PythonGraderRuntimeErrorDetails respjson.Field
128 PythonGraderServerError respjson.Field
129 PythonGraderServerErrorType respjson.Field
130 SampleParseError respjson.Field
131 TruncatedObservationError respjson.Field
132 UnresponsiveRewardError respjson.Field
133 ExtraFields map[string]respjson.Field
134 raw string
135 } `json:"-"`
136}
137
138// Returns the unmodified JSON received from the API
139func (r FineTuningAlphaGraderRunResponseMetadataErrors) RawJSON() string { return r.JSON.raw }
140func (r *FineTuningAlphaGraderRunResponseMetadataErrors) UnmarshalJSON(data []byte) error {
141 return apijson.UnmarshalRoot(data, r)
142}
143
144type FineTuningAlphaGraderValidateResponse struct {
145 // The grader used for the fine-tuning job.
146 Grader FineTuningAlphaGraderValidateResponseGraderUnion `json:"grader"`
147 // JSON contains metadata for fields, check presence with [respjson.Field.Valid].
148 JSON struct {
149 Grader respjson.Field
150 ExtraFields map[string]respjson.Field
151 raw string
152 } `json:"-"`
153}
154
155// Returns the unmodified JSON received from the API
156func (r FineTuningAlphaGraderValidateResponse) RawJSON() string { return r.JSON.raw }
157func (r *FineTuningAlphaGraderValidateResponse) UnmarshalJSON(data []byte) error {
158 return apijson.UnmarshalRoot(data, r)
159}
160
161// FineTuningAlphaGraderValidateResponseGraderUnion contains all possible
162// properties and values from [StringCheckGrader], [TextSimilarityGrader],
163// [PythonGrader], [ScoreModelGrader], [MultiGrader].
164//
165// Use the methods beginning with 'As' to cast the union to one of its variants.
166type FineTuningAlphaGraderValidateResponseGraderUnion struct {
167 // This field is a union of [string], [string], [[]ScoreModelGraderInput]
168 Input FineTuningAlphaGraderValidateResponseGraderUnionInput `json:"input"`
169 Name string `json:"name"`
170 // This field is from variant [StringCheckGrader].
171 Operation StringCheckGraderOperation `json:"operation"`
172 Reference string `json:"reference"`
173 Type string `json:"type"`
174 // This field is from variant [TextSimilarityGrader].
175 EvaluationMetric TextSimilarityGraderEvaluationMetric `json:"evaluation_metric"`
176 // This field is from variant [PythonGrader].
177 Source string `json:"source"`
178 // This field is from variant [PythonGrader].
179 ImageTag string `json:"image_tag"`
180 // This field is from variant [ScoreModelGrader].
181 Model string `json:"model"`
182 // This field is from variant [ScoreModelGrader].
183 Range []float64 `json:"range"`
184 // This field is from variant [ScoreModelGrader].
185 SamplingParams any `json:"sampling_params"`
186 // This field is from variant [MultiGrader].
187 CalculateOutput string `json:"calculate_output"`
188 // This field is from variant [MultiGrader].
189 Graders MultiGraderGradersUnion `json:"graders"`
190 JSON struct {
191 Input respjson.Field
192 Name respjson.Field
193 Operation respjson.Field
194 Reference respjson.Field
195 Type respjson.Field
196 EvaluationMetric respjson.Field
197 Source respjson.Field
198 ImageTag respjson.Field
199 Model respjson.Field
200 Range respjson.Field
201 SamplingParams respjson.Field
202 CalculateOutput respjson.Field
203 Graders respjson.Field
204 raw string
205 } `json:"-"`
206}
207
208func (u FineTuningAlphaGraderValidateResponseGraderUnion) AsStringCheckGrader() (v StringCheckGrader) {
209 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
210 return
211}
212
213func (u FineTuningAlphaGraderValidateResponseGraderUnion) AsTextSimilarityGrader() (v TextSimilarityGrader) {
214 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
215 return
216}
217
218func (u FineTuningAlphaGraderValidateResponseGraderUnion) AsPythonGrader() (v PythonGrader) {
219 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
220 return
221}
222
223func (u FineTuningAlphaGraderValidateResponseGraderUnion) AsScoreModelGrader() (v ScoreModelGrader) {
224 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
225 return
226}
227
228func (u FineTuningAlphaGraderValidateResponseGraderUnion) AsMultiGrader() (v MultiGrader) {
229 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
230 return
231}
232
233// Returns the unmodified JSON received from the API
234func (u FineTuningAlphaGraderValidateResponseGraderUnion) RawJSON() string { return u.JSON.raw }
235
236func (r *FineTuningAlphaGraderValidateResponseGraderUnion) UnmarshalJSON(data []byte) error {
237 return apijson.UnmarshalRoot(data, r)
238}
239
240// FineTuningAlphaGraderValidateResponseGraderUnionInput is an implicit subunion of
241// [FineTuningAlphaGraderValidateResponseGraderUnion].
242// FineTuningAlphaGraderValidateResponseGraderUnionInput provides convenient access
243// to the sub-properties of the union.
244//
245// For type safety it is recommended to directly use a variant of the
246// [FineTuningAlphaGraderValidateResponseGraderUnion].
247//
248// If the underlying value is not a json object, one of the following properties
249// will be valid: OfString OfScoreModelGraderInputArray]
250type FineTuningAlphaGraderValidateResponseGraderUnionInput struct {
251 // This field will be present if the value is a [string] instead of an object.
252 OfString string `json:",inline"`
253 // This field will be present if the value is a [[]ScoreModelGraderInput] instead
254 // of an object.
255 OfScoreModelGraderInputArray []ScoreModelGraderInput `json:",inline"`
256 JSON struct {
257 OfString respjson.Field
258 OfScoreModelGraderInputArray respjson.Field
259 raw string
260 } `json:"-"`
261}
262
263func (r *FineTuningAlphaGraderValidateResponseGraderUnionInput) UnmarshalJSON(data []byte) error {
264 return apijson.UnmarshalRoot(data, r)
265}
266
267type FineTuningAlphaGraderRunParams struct {
268 // The grader used for the fine-tuning job.
269 Grader FineTuningAlphaGraderRunParamsGraderUnion `json:"grader,omitzero,required"`
270 // The model sample to be evaluated. This value will be used to populate the
271 // `sample` namespace. See
272 // [the guide](https://platform.openai.com/docs/guides/graders) for more details.
273 // The `output_json` variable will be populated if the model sample is a valid JSON
274 // string.
275 ModelSample string `json:"model_sample,required"`
276 // The dataset item provided to the grader. This will be used to populate the
277 // `item` namespace. See
278 // [the guide](https://platform.openai.com/docs/guides/graders) for more details.
279 Item any `json:"item,omitzero"`
280 paramObj
281}
282
283func (r FineTuningAlphaGraderRunParams) MarshalJSON() (data []byte, err error) {
284 type shadow FineTuningAlphaGraderRunParams
285 return param.MarshalObject(r, (*shadow)(&r))
286}
287func (r *FineTuningAlphaGraderRunParams) UnmarshalJSON(data []byte) error {
288 return apijson.UnmarshalRoot(data, r)
289}
290
291// Only one field can be non-zero.
292//
293// Use [param.IsOmitted] to confirm if a field is set.
294type FineTuningAlphaGraderRunParamsGraderUnion struct {
295 OfStringCheck *StringCheckGraderParam `json:",omitzero,inline"`
296 OfTextSimilarity *TextSimilarityGraderParam `json:",omitzero,inline"`
297 OfPython *PythonGraderParam `json:",omitzero,inline"`
298 OfScoreModel *ScoreModelGraderParam `json:",omitzero,inline"`
299 OfMulti *MultiGraderParam `json:",omitzero,inline"`
300 paramUnion
301}
302
303func (u FineTuningAlphaGraderRunParamsGraderUnion) MarshalJSON() ([]byte, error) {
304 return param.MarshalUnion(u, u.OfStringCheck,
305 u.OfTextSimilarity,
306 u.OfPython,
307 u.OfScoreModel,
308 u.OfMulti)
309}
310func (u *FineTuningAlphaGraderRunParamsGraderUnion) UnmarshalJSON(data []byte) error {
311 return apijson.UnmarshalRoot(data, u)
312}
313
314func (u *FineTuningAlphaGraderRunParamsGraderUnion) asAny() any {
315 if !param.IsOmitted(u.OfStringCheck) {
316 return u.OfStringCheck
317 } else if !param.IsOmitted(u.OfTextSimilarity) {
318 return u.OfTextSimilarity
319 } else if !param.IsOmitted(u.OfPython) {
320 return u.OfPython
321 } else if !param.IsOmitted(u.OfScoreModel) {
322 return u.OfScoreModel
323 } else if !param.IsOmitted(u.OfMulti) {
324 return u.OfMulti
325 }
326 return nil
327}
328
329// Returns a pointer to the underlying variant's property, if present.
330func (u FineTuningAlphaGraderRunParamsGraderUnion) GetOperation() *string {
331 if vt := u.OfStringCheck; vt != nil {
332 return (*string)(&vt.Operation)
333 }
334 return nil
335}
336
337// Returns a pointer to the underlying variant's property, if present.
338func (u FineTuningAlphaGraderRunParamsGraderUnion) GetEvaluationMetric() *string {
339 if vt := u.OfTextSimilarity; vt != nil {
340 return (*string)(&vt.EvaluationMetric)
341 }
342 return nil
343}
344
345// Returns a pointer to the underlying variant's property, if present.
346func (u FineTuningAlphaGraderRunParamsGraderUnion) GetSource() *string {
347 if vt := u.OfPython; vt != nil {
348 return &vt.Source
349 }
350 return nil
351}
352
353// Returns a pointer to the underlying variant's property, if present.
354func (u FineTuningAlphaGraderRunParamsGraderUnion) GetImageTag() *string {
355 if vt := u.OfPython; vt != nil && vt.ImageTag.Valid() {
356 return &vt.ImageTag.Value
357 }
358 return nil
359}
360
361// Returns a pointer to the underlying variant's property, if present.
362func (u FineTuningAlphaGraderRunParamsGraderUnion) GetModel() *string {
363 if vt := u.OfScoreModel; vt != nil {
364 return &vt.Model
365 }
366 return nil
367}
368
369// Returns a pointer to the underlying variant's property, if present.
370func (u FineTuningAlphaGraderRunParamsGraderUnion) GetRange() []float64 {
371 if vt := u.OfScoreModel; vt != nil {
372 return vt.Range
373 }
374 return nil
375}
376
377// Returns a pointer to the underlying variant's property, if present.
378func (u FineTuningAlphaGraderRunParamsGraderUnion) GetSamplingParams() *any {
379 if vt := u.OfScoreModel; vt != nil {
380 return &vt.SamplingParams
381 }
382 return nil
383}
384
385// Returns a pointer to the underlying variant's property, if present.
386func (u FineTuningAlphaGraderRunParamsGraderUnion) GetCalculateOutput() *string {
387 if vt := u.OfMulti; vt != nil {
388 return &vt.CalculateOutput
389 }
390 return nil
391}
392
393// Returns a pointer to the underlying variant's property, if present.
394func (u FineTuningAlphaGraderRunParamsGraderUnion) GetGraders() *MultiGraderGradersUnionParam {
395 if vt := u.OfMulti; vt != nil {
396 return &vt.Graders
397 }
398 return nil
399}
400
401// Returns a pointer to the underlying variant's property, if present.
402func (u FineTuningAlphaGraderRunParamsGraderUnion) GetName() *string {
403 if vt := u.OfStringCheck; vt != nil {
404 return (*string)(&vt.Name)
405 } else if vt := u.OfTextSimilarity; vt != nil {
406 return (*string)(&vt.Name)
407 } else if vt := u.OfPython; vt != nil {
408 return (*string)(&vt.Name)
409 } else if vt := u.OfScoreModel; vt != nil {
410 return (*string)(&vt.Name)
411 } else if vt := u.OfMulti; vt != nil {
412 return (*string)(&vt.Name)
413 }
414 return nil
415}
416
417// Returns a pointer to the underlying variant's property, if present.
418func (u FineTuningAlphaGraderRunParamsGraderUnion) GetReference() *string {
419 if vt := u.OfStringCheck; vt != nil {
420 return (*string)(&vt.Reference)
421 } else if vt := u.OfTextSimilarity; vt != nil {
422 return (*string)(&vt.Reference)
423 }
424 return nil
425}
426
427// Returns a pointer to the underlying variant's property, if present.
428func (u FineTuningAlphaGraderRunParamsGraderUnion) GetType() *string {
429 if vt := u.OfStringCheck; vt != nil {
430 return (*string)(&vt.Type)
431 } else if vt := u.OfTextSimilarity; vt != nil {
432 return (*string)(&vt.Type)
433 } else if vt := u.OfPython; vt != nil {
434 return (*string)(&vt.Type)
435 } else if vt := u.OfScoreModel; vt != nil {
436 return (*string)(&vt.Type)
437 } else if vt := u.OfMulti; vt != nil {
438 return (*string)(&vt.Type)
439 }
440 return nil
441}
442
443// Returns a subunion which exports methods to access subproperties
444//
445// Or use AsAny() to get the underlying value
446func (u FineTuningAlphaGraderRunParamsGraderUnion) GetInput() (res fineTuningAlphaGraderRunParamsGraderUnionInput) {
447 if vt := u.OfStringCheck; vt != nil {
448 res.any = &vt.Input
449 } else if vt := u.OfTextSimilarity; vt != nil {
450 res.any = &vt.Input
451 } else if vt := u.OfScoreModel; vt != nil {
452 res.any = &vt.Input
453 }
454 return
455}
456
457// Can have the runtime types [*string], [\*[]ScoreModelGraderInputParam]
458type fineTuningAlphaGraderRunParamsGraderUnionInput struct{ any }
459
460// Use the following switch statement to get the type of the union:
461//
462// switch u.AsAny().(type) {
463// case *string:
464// case *[]openai.ScoreModelGraderInputParam:
465// default:
466// fmt.Errorf("not present")
467// }
468func (u fineTuningAlphaGraderRunParamsGraderUnionInput) AsAny() any { return u.any }
469
470func init() {
471 apijson.RegisterUnion[FineTuningAlphaGraderRunParamsGraderUnion](
472 "type",
473 apijson.Discriminator[StringCheckGraderParam]("string_check"),
474 apijson.Discriminator[TextSimilarityGraderParam]("text_similarity"),
475 apijson.Discriminator[PythonGraderParam]("python"),
476 apijson.Discriminator[ScoreModelGraderParam]("score_model"),
477 apijson.Discriminator[MultiGraderParam]("multi"),
478 )
479}
480
481type FineTuningAlphaGraderValidateParams struct {
482 // The grader used for the fine-tuning job.
483 Grader FineTuningAlphaGraderValidateParamsGraderUnion `json:"grader,omitzero,required"`
484 paramObj
485}
486
487func (r FineTuningAlphaGraderValidateParams) MarshalJSON() (data []byte, err error) {
488 type shadow FineTuningAlphaGraderValidateParams
489 return param.MarshalObject(r, (*shadow)(&r))
490}
491func (r *FineTuningAlphaGraderValidateParams) UnmarshalJSON(data []byte) error {
492 return apijson.UnmarshalRoot(data, r)
493}
494
495// Only one field can be non-zero.
496//
497// Use [param.IsOmitted] to confirm if a field is set.
498type FineTuningAlphaGraderValidateParamsGraderUnion struct {
499 OfStringCheckGrader *StringCheckGraderParam `json:",omitzero,inline"`
500 OfTextSimilarityGrader *TextSimilarityGraderParam `json:",omitzero,inline"`
501 OfPythonGrader *PythonGraderParam `json:",omitzero,inline"`
502 OfScoreModelGrader *ScoreModelGraderParam `json:",omitzero,inline"`
503 OfMultiGrader *MultiGraderParam `json:",omitzero,inline"`
504 paramUnion
505}
506
507func (u FineTuningAlphaGraderValidateParamsGraderUnion) MarshalJSON() ([]byte, error) {
508 return param.MarshalUnion(u, u.OfStringCheckGrader,
509 u.OfTextSimilarityGrader,
510 u.OfPythonGrader,
511 u.OfScoreModelGrader,
512 u.OfMultiGrader)
513}
514func (u *FineTuningAlphaGraderValidateParamsGraderUnion) UnmarshalJSON(data []byte) error {
515 return apijson.UnmarshalRoot(data, u)
516}
517
518func (u *FineTuningAlphaGraderValidateParamsGraderUnion) asAny() any {
519 if !param.IsOmitted(u.OfStringCheckGrader) {
520 return u.OfStringCheckGrader
521 } else if !param.IsOmitted(u.OfTextSimilarityGrader) {
522 return u.OfTextSimilarityGrader
523 } else if !param.IsOmitted(u.OfPythonGrader) {
524 return u.OfPythonGrader
525 } else if !param.IsOmitted(u.OfScoreModelGrader) {
526 return u.OfScoreModelGrader
527 } else if !param.IsOmitted(u.OfMultiGrader) {
528 return u.OfMultiGrader
529 }
530 return nil
531}
532
533// Returns a pointer to the underlying variant's property, if present.
534func (u FineTuningAlphaGraderValidateParamsGraderUnion) GetOperation() *string {
535 if vt := u.OfStringCheckGrader; vt != nil {
536 return (*string)(&vt.Operation)
537 }
538 return nil
539}
540
541// Returns a pointer to the underlying variant's property, if present.
542func (u FineTuningAlphaGraderValidateParamsGraderUnion) GetEvaluationMetric() *string {
543 if vt := u.OfTextSimilarityGrader; vt != nil {
544 return (*string)(&vt.EvaluationMetric)
545 }
546 return nil
547}
548
549// Returns a pointer to the underlying variant's property, if present.
550func (u FineTuningAlphaGraderValidateParamsGraderUnion) GetSource() *string {
551 if vt := u.OfPythonGrader; vt != nil {
552 return &vt.Source
553 }
554 return nil
555}
556
557// Returns a pointer to the underlying variant's property, if present.
558func (u FineTuningAlphaGraderValidateParamsGraderUnion) GetImageTag() *string {
559 if vt := u.OfPythonGrader; vt != nil && vt.ImageTag.Valid() {
560 return &vt.ImageTag.Value
561 }
562 return nil
563}
564
565// Returns a pointer to the underlying variant's property, if present.
566func (u FineTuningAlphaGraderValidateParamsGraderUnion) GetModel() *string {
567 if vt := u.OfScoreModelGrader; vt != nil {
568 return &vt.Model
569 }
570 return nil
571}
572
573// Returns a pointer to the underlying variant's property, if present.
574func (u FineTuningAlphaGraderValidateParamsGraderUnion) GetRange() []float64 {
575 if vt := u.OfScoreModelGrader; vt != nil {
576 return vt.Range
577 }
578 return nil
579}
580
581// Returns a pointer to the underlying variant's property, if present.
582func (u FineTuningAlphaGraderValidateParamsGraderUnion) GetSamplingParams() *any {
583 if vt := u.OfScoreModelGrader; vt != nil {
584 return &vt.SamplingParams
585 }
586 return nil
587}
588
589// Returns a pointer to the underlying variant's property, if present.
590func (u FineTuningAlphaGraderValidateParamsGraderUnion) GetCalculateOutput() *string {
591 if vt := u.OfMultiGrader; vt != nil {
592 return &vt.CalculateOutput
593 }
594 return nil
595}
596
597// Returns a pointer to the underlying variant's property, if present.
598func (u FineTuningAlphaGraderValidateParamsGraderUnion) GetGraders() *MultiGraderGradersUnionParam {
599 if vt := u.OfMultiGrader; vt != nil {
600 return &vt.Graders
601 }
602 return nil
603}
604
605// Returns a pointer to the underlying variant's property, if present.
606func (u FineTuningAlphaGraderValidateParamsGraderUnion) GetName() *string {
607 if vt := u.OfStringCheckGrader; vt != nil {
608 return (*string)(&vt.Name)
609 } else if vt := u.OfTextSimilarityGrader; vt != nil {
610 return (*string)(&vt.Name)
611 } else if vt := u.OfPythonGrader; vt != nil {
612 return (*string)(&vt.Name)
613 } else if vt := u.OfScoreModelGrader; vt != nil {
614 return (*string)(&vt.Name)
615 } else if vt := u.OfMultiGrader; vt != nil {
616 return (*string)(&vt.Name)
617 }
618 return nil
619}
620
621// Returns a pointer to the underlying variant's property, if present.
622func (u FineTuningAlphaGraderValidateParamsGraderUnion) GetReference() *string {
623 if vt := u.OfStringCheckGrader; vt != nil {
624 return (*string)(&vt.Reference)
625 } else if vt := u.OfTextSimilarityGrader; vt != nil {
626 return (*string)(&vt.Reference)
627 }
628 return nil
629}
630
631// Returns a pointer to the underlying variant's property, if present.
632func (u FineTuningAlphaGraderValidateParamsGraderUnion) GetType() *string {
633 if vt := u.OfStringCheckGrader; vt != nil {
634 return (*string)(&vt.Type)
635 } else if vt := u.OfTextSimilarityGrader; vt != nil {
636 return (*string)(&vt.Type)
637 } else if vt := u.OfPythonGrader; vt != nil {
638 return (*string)(&vt.Type)
639 } else if vt := u.OfScoreModelGrader; vt != nil {
640 return (*string)(&vt.Type)
641 } else if vt := u.OfMultiGrader; vt != nil {
642 return (*string)(&vt.Type)
643 }
644 return nil
645}
646
647// Returns a subunion which exports methods to access subproperties
648//
649// Or use AsAny() to get the underlying value
650func (u FineTuningAlphaGraderValidateParamsGraderUnion) GetInput() (res fineTuningAlphaGraderValidateParamsGraderUnionInput) {
651 if vt := u.OfStringCheckGrader; vt != nil {
652 res.any = &vt.Input
653 } else if vt := u.OfTextSimilarityGrader; vt != nil {
654 res.any = &vt.Input
655 } else if vt := u.OfScoreModelGrader; vt != nil {
656 res.any = &vt.Input
657 }
658 return
659}
660
661// Can have the runtime types [*string], [\*[]ScoreModelGraderInputParam]
662type fineTuningAlphaGraderValidateParamsGraderUnionInput struct{ any }
663
664// Use the following switch statement to get the type of the union:
665//
666// switch u.AsAny().(type) {
667// case *string:
668// case *[]openai.ScoreModelGraderInputParam:
669// default:
670// fmt.Errorf("not present")
671// }
672func (u fineTuningAlphaGraderValidateParamsGraderUnionInput) AsAny() any { return u.any }