Documentation
¶
Index ¶
- func ParseVeoDurationSeconds(metadata map[string]any) int
- func ParseVeoResolution(metadata map[string]any) string
- func ResolveVeoDuration(metadata map[string]any, stdDuration int, stdSeconds string) int
- func ResolveVeoResolution(metadata map[string]any, stdSize string) string
- func SizeToVeoAspectRatio(size string) string
- func SizeToVeoResolution(size string) string
- func VeoResolutionRatio(modelName, resolution string) float64
- type TaskAdaptor
- func (a *TaskAdaptor) BuildRequestBody(c *gin.Context, info *relaycommon.RelayInfo) (io.Reader, error)
- func (a *TaskAdaptor) BuildRequestHeader(c *gin.Context, req *http.Request, info *relaycommon.RelayInfo) error
- func (a *TaskAdaptor) BuildRequestURL(info *relaycommon.RelayInfo) (string, error)
- func (a *TaskAdaptor) ConvertToOpenAIVideo(task *model.Task) ([]byte, error)
- func (a *TaskAdaptor) DoRequest(c *gin.Context, info *relaycommon.RelayInfo, requestBody io.Reader) (*http.Response, error)
- func (a *TaskAdaptor) DoResponse(c *gin.Context, resp *http.Response, info *relaycommon.RelayInfo) (taskID string, taskData []byte, taskErr *dto.TaskError)
- func (a *TaskAdaptor) EstimateBilling(c *gin.Context, info *relaycommon.RelayInfo) map[string]float64
- func (a *TaskAdaptor) FetchTask(baseUrl, key string, body map[string]any, proxy string) (*http.Response, error)
- func (a *TaskAdaptor) GetChannelName() string
- func (a *TaskAdaptor) GetModelList() []string
- func (a *TaskAdaptor) Init(info *relaycommon.RelayInfo)
- func (a *TaskAdaptor) ParseTaskResult(respBody []byte) (*relaycommon.TaskInfo, error)
- func (a *TaskAdaptor) ValidateRequestAndSetAction(c *gin.Context, info *relaycommon.RelayInfo) (taskErr *dto.TaskError)
- type VeoImageInput
- type VeoInstance
- type VeoParameters
- type VeoRequestPayload
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ParseVeoDurationSeconds ¶ added in v0.11.2
ParseVeoDurationSeconds extracts durationSeconds from metadata. Returns 8 (Veo default) when not specified or invalid.
func ParseVeoResolution ¶ added in v0.11.2
ParseVeoResolution extracts resolution from metadata. Returns "720p" when not specified.
func ResolveVeoDuration ¶ added in v0.11.2
ResolveVeoDuration returns the effective duration in seconds. Priority: metadata["durationSeconds"] > stdDuration > stdSeconds > default (8).
func ResolveVeoResolution ¶ added in v0.11.2
ResolveVeoResolution returns the effective resolution string (lowercase). Priority: metadata["resolution"] > SizeToVeoResolution(stdSize) > default ("720p").
func SizeToVeoAspectRatio ¶ added in v0.11.2
SizeToVeoAspectRatio converts a "WxH" size string to a Veo aspect ratio.
func SizeToVeoResolution ¶ added in v0.11.2
SizeToVeoResolution converts a "WxH" size string to a Veo resolution label.
func VeoResolutionRatio ¶ added in v0.11.2
VeoResolutionRatio returns the pricing multiplier for the given resolution. Standard resolutions (720p, 1080p) return 1.0. 4K returns a model-specific multiplier based on Google's official pricing.
Types ¶
type TaskAdaptor ¶
type TaskAdaptor struct {
taskcommon.BaseBilling
ChannelType int
// contains filtered or unexported fields
}
func (*TaskAdaptor) BuildRequestBody ¶
func (a *TaskAdaptor) BuildRequestBody(c *gin.Context, info *relaycommon.RelayInfo) (io.Reader, error)
BuildRequestBody converts request into the Veo predictLongRunning format.
func (*TaskAdaptor) BuildRequestHeader ¶
func (a *TaskAdaptor) BuildRequestHeader(c *gin.Context, req *http.Request, info *relaycommon.RelayInfo) error
BuildRequestHeader sets required headers.
func (*TaskAdaptor) BuildRequestURL ¶
func (a *TaskAdaptor) BuildRequestURL(info *relaycommon.RelayInfo) (string, error)
BuildRequestURL constructs the Gemini API predictLongRunning endpoint for Veo.
func (*TaskAdaptor) ConvertToOpenAIVideo ¶
func (a *TaskAdaptor) ConvertToOpenAIVideo(task *model.Task) ([]byte, error)
func (*TaskAdaptor) DoRequest ¶
func (a *TaskAdaptor) DoRequest(c *gin.Context, info *relaycommon.RelayInfo, requestBody io.Reader) (*http.Response, error)
DoRequest delegates to common helper.
func (*TaskAdaptor) DoResponse ¶
func (a *TaskAdaptor) DoResponse(c *gin.Context, resp *http.Response, info *relaycommon.RelayInfo) (taskID string, taskData []byte, taskErr *dto.TaskError)
DoResponse handles upstream response, returns taskID etc.
func (*TaskAdaptor) EstimateBilling ¶ added in v0.11.2
func (a *TaskAdaptor) EstimateBilling(c *gin.Context, info *relaycommon.RelayInfo) map[string]float64
EstimateBilling returns OtherRatios based on durationSeconds and resolution.
func (*TaskAdaptor) FetchTask ¶
func (a *TaskAdaptor) FetchTask(baseUrl, key string, body map[string]any, proxy string) (*http.Response, error)
FetchTask polls task status via the Gemini operations GET endpoint.
func (*TaskAdaptor) GetChannelName ¶
func (a *TaskAdaptor) GetChannelName() string
func (*TaskAdaptor) GetModelList ¶
func (a *TaskAdaptor) GetModelList() []string
func (*TaskAdaptor) Init ¶
func (a *TaskAdaptor) Init(info *relaycommon.RelayInfo)
func (*TaskAdaptor) ParseTaskResult ¶
func (a *TaskAdaptor) ParseTaskResult(respBody []byte) (*relaycommon.TaskInfo, error)
func (*TaskAdaptor) ValidateRequestAndSetAction ¶
func (a *TaskAdaptor) ValidateRequestAndSetAction(c *gin.Context, info *relaycommon.RelayInfo) (taskErr *dto.TaskError)
ValidateRequestAndSetAction parses body, validates fields and sets default action.
type VeoImageInput ¶ added in v0.11.2
type VeoImageInput struct {
BytesBase64Encoded string `json:"bytesBase64Encoded"`
MimeType string `json:"mimeType"`
}
VeoImageInput represents an image input for Veo image-to-video. Used by both Gemini and Vertex adaptors.
func ExtractMultipartImage ¶ added in v0.11.2
func ExtractMultipartImage(c *gin.Context, info *relaycommon.RelayInfo) *VeoImageInput
ExtractMultipartImage reads the first `input_reference` file from a multipart form upload and returns a VeoImageInput. Returns nil if no file is present.
func ParseImageInput ¶ added in v0.11.2
func ParseImageInput(imageStr string) *VeoImageInput
ParseImageInput parses an image string (data URI or raw base64) into a VeoImageInput. Returns nil if the input is empty or invalid. TODO: support downloading HTTP URL images and converting to base64
type VeoInstance ¶ added in v0.11.2
type VeoInstance struct {
Prompt string `json:"prompt"`
Image *VeoImageInput `json:"image,omitempty"`
}
VeoInstance represents a single instance in the Veo predictLongRunning request.
type VeoParameters ¶ added in v0.11.2
type VeoParameters struct {
SampleCount int `json:"sampleCount"`
DurationSeconds int `json:"durationSeconds,omitempty"`
AspectRatio string `json:"aspectRatio,omitempty"`
Resolution string `json:"resolution,omitempty"`
NegativePrompt string `json:"negativePrompt,omitempty"`
PersonGeneration string `json:"personGeneration,omitempty"`
StorageUri string `json:"storageUri,omitempty"`
CompressionQuality string `json:"compressionQuality,omitempty"`
ResizeMode string `json:"resizeMode,omitempty"`
Seed *int `json:"seed,omitempty"`
GenerateAudio *bool `json:"generateAudio,omitempty"`
}
VeoParameters represents the parameters block for Veo predictLongRunning.
type VeoRequestPayload ¶ added in v0.11.2
type VeoRequestPayload struct {
Instances []VeoInstance `json:"instances"`
Parameters *VeoParameters `json:"parameters,omitempty"`
}
VeoRequestPayload is the top-level request body for the Veo predictLongRunning endpoint (used by both Gemini and Vertex).