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

73 lines
3.4 KiB
Go

// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
package components
import (
"errors"
"fmt"
"github.com/log10-io/log10go/internal/utils"
)
type ChatCompletionRequestMessageContentPartType string
const (
ChatCompletionRequestMessageContentPartTypeChatCompletionRequestMessageContentPartText ChatCompletionRequestMessageContentPartType = "ChatCompletionRequestMessageContentPartText"
ChatCompletionRequestMessageContentPartTypeChatCompletionRequestMessageContentPartImage ChatCompletionRequestMessageContentPartType = "ChatCompletionRequestMessageContentPartImage"
)
type ChatCompletionRequestMessageContentPart struct {
ChatCompletionRequestMessageContentPartText *ChatCompletionRequestMessageContentPartText
ChatCompletionRequestMessageContentPartImage *ChatCompletionRequestMessageContentPartImage
Type ChatCompletionRequestMessageContentPartType
}
func CreateChatCompletionRequestMessageContentPartChatCompletionRequestMessageContentPartText(chatCompletionRequestMessageContentPartText ChatCompletionRequestMessageContentPartText) ChatCompletionRequestMessageContentPart {
typ := ChatCompletionRequestMessageContentPartTypeChatCompletionRequestMessageContentPartText
return ChatCompletionRequestMessageContentPart{
ChatCompletionRequestMessageContentPartText: &chatCompletionRequestMessageContentPartText,
Type: typ,
}
}
func CreateChatCompletionRequestMessageContentPartChatCompletionRequestMessageContentPartImage(chatCompletionRequestMessageContentPartImage ChatCompletionRequestMessageContentPartImage) ChatCompletionRequestMessageContentPart {
typ := ChatCompletionRequestMessageContentPartTypeChatCompletionRequestMessageContentPartImage
return ChatCompletionRequestMessageContentPart{
ChatCompletionRequestMessageContentPartImage: &chatCompletionRequestMessageContentPartImage,
Type: typ,
}
}
func (u *ChatCompletionRequestMessageContentPart) UnmarshalJSON(data []byte) error {
var chatCompletionRequestMessageContentPartText ChatCompletionRequestMessageContentPartText = ChatCompletionRequestMessageContentPartText{}
if err := utils.UnmarshalJSON(data, &chatCompletionRequestMessageContentPartText, "", true, true); err == nil {
u.ChatCompletionRequestMessageContentPartText = &chatCompletionRequestMessageContentPartText
u.Type = ChatCompletionRequestMessageContentPartTypeChatCompletionRequestMessageContentPartText
return nil
}
var chatCompletionRequestMessageContentPartImage ChatCompletionRequestMessageContentPartImage = ChatCompletionRequestMessageContentPartImage{}
if err := utils.UnmarshalJSON(data, &chatCompletionRequestMessageContentPartImage, "", true, true); err == nil {
u.ChatCompletionRequestMessageContentPartImage = &chatCompletionRequestMessageContentPartImage
u.Type = ChatCompletionRequestMessageContentPartTypeChatCompletionRequestMessageContentPartImage
return nil
}
return fmt.Errorf("could not unmarshal `%s` into any supported union types for ChatCompletionRequestMessageContentPart", string(data))
}
func (u ChatCompletionRequestMessageContentPart) MarshalJSON() ([]byte, error) {
if u.ChatCompletionRequestMessageContentPartText != nil {
return utils.MarshalJSON(u.ChatCompletionRequestMessageContentPartText, "", true)
}
if u.ChatCompletionRequestMessageContentPartImage != nil {
return utils.MarshalJSON(u.ChatCompletionRequestMessageContentPartImage, "", true)
}
return nil, errors.New("could not marshal union type ChatCompletionRequestMessageContentPart: all fields are null")
}