Files
log10go/models/components/chatcompletionrequestusermessage.go
2024-05-24 18:29:28 -07:00

130 lines
3.7 KiB
Go

// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
package components
import (
"encoding/json"
"errors"
"fmt"
"github.com/log10-io/log10go/internal/utils"
)
type ContentType string
const (
ContentTypeStr ContentType = "str"
ContentTypeArrayOfChatCompletionRequestMessageContentPart ContentType = "arrayOfChatCompletionRequestMessageContentPart"
)
// Content - The contents of the user message.
type Content struct {
Str *string
ArrayOfChatCompletionRequestMessageContentPart []ChatCompletionRequestMessageContentPart
Type ContentType
}
func CreateContentStr(str string) Content {
typ := ContentTypeStr
return Content{
Str: &str,
Type: typ,
}
}
func CreateContentArrayOfChatCompletionRequestMessageContentPart(arrayOfChatCompletionRequestMessageContentPart []ChatCompletionRequestMessageContentPart) Content {
typ := ContentTypeArrayOfChatCompletionRequestMessageContentPart
return Content{
ArrayOfChatCompletionRequestMessageContentPart: arrayOfChatCompletionRequestMessageContentPart,
Type: typ,
}
}
func (u *Content) UnmarshalJSON(data []byte) error {
var str string = ""
if err := utils.UnmarshalJSON(data, &str, "", true, true); err == nil {
u.Str = &str
u.Type = ContentTypeStr
return nil
}
var arrayOfChatCompletionRequestMessageContentPart []ChatCompletionRequestMessageContentPart = []ChatCompletionRequestMessageContentPart{}
if err := utils.UnmarshalJSON(data, &arrayOfChatCompletionRequestMessageContentPart, "", true, true); err == nil {
u.ArrayOfChatCompletionRequestMessageContentPart = arrayOfChatCompletionRequestMessageContentPart
u.Type = ContentTypeArrayOfChatCompletionRequestMessageContentPart
return nil
}
return fmt.Errorf("could not unmarshal `%s` into any supported union types for Content", string(data))
}
func (u Content) MarshalJSON() ([]byte, error) {
if u.Str != nil {
return utils.MarshalJSON(u.Str, "", true)
}
if u.ArrayOfChatCompletionRequestMessageContentPart != nil {
return utils.MarshalJSON(u.ArrayOfChatCompletionRequestMessageContentPart, "", true)
}
return nil, errors.New("could not marshal union type Content: all fields are null")
}
// ChatCompletionRequestUserMessageRole - The role of the messages author, in this case `user`.
type ChatCompletionRequestUserMessageRole string
const (
ChatCompletionRequestUserMessageRoleUser ChatCompletionRequestUserMessageRole = "user"
)
func (e ChatCompletionRequestUserMessageRole) ToPointer() *ChatCompletionRequestUserMessageRole {
return &e
}
func (e *ChatCompletionRequestUserMessageRole) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "user":
*e = ChatCompletionRequestUserMessageRole(v)
return nil
default:
return fmt.Errorf("invalid value for ChatCompletionRequestUserMessageRole: %v", v)
}
}
type ChatCompletionRequestUserMessage struct {
// The contents of the user message.
//
Content Content `json:"content"`
// The role of the messages author, in this case `user`.
Role ChatCompletionRequestUserMessageRole `json:"role"`
// An optional name for the participant. Provides the model information to differentiate between participants of the same role.
Name *string `json:"name,omitempty"`
}
func (o *ChatCompletionRequestUserMessage) GetContent() Content {
if o == nil {
return Content{}
}
return o.Content
}
func (o *ChatCompletionRequestUserMessage) GetRole() ChatCompletionRequestUserMessageRole {
if o == nil {
return ChatCompletionRequestUserMessageRole("")
}
return o.Role
}
func (o *ChatCompletionRequestUserMessage) GetName() *string {
if o == nil {
return nil
}
return o.Name
}