finetuningalphagrader.go

  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 }