gemini

package
v0.11.2-patch.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 6, 2026 License: AGPL-3.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ParseVeoDurationSeconds added in v0.11.2

func ParseVeoDurationSeconds(metadata map[string]any) int

ParseVeoDurationSeconds extracts durationSeconds from metadata. Returns 8 (Veo default) when not specified or invalid.

func ParseVeoResolution added in v0.11.2

func ParseVeoResolution(metadata map[string]any) string

ParseVeoResolution extracts resolution from metadata. Returns "720p" when not specified.

func ResolveVeoDuration added in v0.11.2

func ResolveVeoDuration(metadata map[string]any, stdDuration int, stdSeconds string) int

ResolveVeoDuration returns the effective duration in seconds. Priority: metadata["durationSeconds"] > stdDuration > stdSeconds > default (8).

func ResolveVeoResolution added in v0.11.2

func ResolveVeoResolution(metadata map[string]any, stdSize string) string

ResolveVeoResolution returns the effective resolution string (lowercase). Priority: metadata["resolution"] > SizeToVeoResolution(stdSize) > default ("720p").

func SizeToVeoAspectRatio added in v0.11.2

func SizeToVeoAspectRatio(size string) string

SizeToVeoAspectRatio converts a "WxH" size string to a Veo aspect ratio.

func SizeToVeoResolution added in v0.11.2

func SizeToVeoResolution(size string) string

SizeToVeoResolution converts a "WxH" size string to a Veo resolution label.

func VeoResolutionRatio added in v0.11.2

func VeoResolutionRatio(modelName, resolution string) float64

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).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL