Documentation
¶
Index ¶
- Variables
- func ProcessAliOtherRatios(aliReq *AliVideoRequest) (map[string]float64, error)
- type AliMetadata
- type AliUsage
- type AliVideoInput
- type AliVideoOutput
- type AliVideoParameters
- type AliVideoRequest
- type AliVideoResponse
- 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)
Constants ¶
This section is empty.
Variables ¶
View Source
var ChannelName = "ali"
View Source
var ModelList = []string{
"wan2.5-i2v-preview",
"wan2.2-i2v-flash",
"wan2.2-i2v-plus",
"wanx2.1-i2v-plus",
"wanx2.1-i2v-turbo",
}
Functions ¶
func ProcessAliOtherRatios ¶
func ProcessAliOtherRatios(aliReq *AliVideoRequest) (map[string]float64, error)
Types ¶
type AliMetadata ¶
type AliMetadata struct {
// Input 相关
AudioURL string `json:"audio_url,omitempty"` // 音频URL
ImgURL string `json:"img_url,omitempty"` // 图片URL(图生视频)
FirstFrameURL string `json:"first_frame_url,omitempty"` // 首帧图片URL(首尾帧生视频)
LastFrameURL string `json:"last_frame_url,omitempty"` // 尾帧图片URL(首尾帧生视频)
NegativePrompt string `json:"negative_prompt,omitempty"` // 反向提示词
Template string `json:"template,omitempty"` // 视频特效模板
// Parameters 相关
Resolution *string `json:"resolution,omitempty"` // 分辨率: 480P/720P/1080P
Size *string `json:"size,omitempty"` // 尺寸: 如 "832*480"
Duration *int `json:"duration,omitempty"` // 时长
PromptExtend *bool `json:"prompt_extend,omitempty"` // 是否开启prompt智能改写
Watermark *bool `json:"watermark,omitempty"` // 是否添加水印
Audio *bool `json:"audio,omitempty"` // 是否添加音频
Seed *int `json:"seed,omitempty"` // 随机数种子
}
type AliUsage ¶
type AliUsage struct {
Duration int `json:"duration,omitempty"`
VideoCount int `json:"video_count,omitempty"`
SR int `json:"SR,omitempty"`
}
AliUsage 使用统计
type AliVideoInput ¶
type AliVideoInput struct {
Prompt string `json:"prompt,omitempty"` // 文本提示词
ImgURL string `json:"img_url,omitempty"` // 首帧图像URL或Base64(图生视频)
FirstFrameURL string `json:"first_frame_url,omitempty"` // 首帧图片URL(首尾帧生视频)
LastFrameURL string `json:"last_frame_url,omitempty"` // 尾帧图片URL(首尾帧生视频)
AudioURL string `json:"audio_url,omitempty"` // 音频URL(wan2.5支持)
NegativePrompt string `json:"negative_prompt,omitempty"` // 反向提示词
Template string `json:"template,omitempty"` // 视频特效模板
}
AliVideoInput 视频输入参数
type AliVideoOutput ¶
type AliVideoOutput struct {
TaskID string `json:"task_id"`
TaskStatus string `json:"task_status"`
SubmitTime string `json:"submit_time,omitempty"`
ScheduledTime string `json:"scheduled_time,omitempty"`
EndTime string `json:"end_time,omitempty"`
OrigPrompt string `json:"orig_prompt,omitempty"`
ActualPrompt string `json:"actual_prompt,omitempty"`
VideoURL string `json:"video_url,omitempty"`
Code string `json:"code,omitempty"`
Message string `json:"message,omitempty"`
}
AliVideoOutput 输出信息
type AliVideoParameters ¶
type AliVideoParameters struct {
Resolution string `json:"resolution,omitempty"` // 分辨率: 480P/720P/1080P(图生视频、首尾帧生视频)
Size string `json:"size,omitempty"` // 尺寸: 如 "832*480"(文生视频)
Duration int `json:"duration,omitempty"` // 时长: 3-10秒
PromptExtend bool `json:"prompt_extend,omitempty"` // 是否开启prompt智能改写
Watermark bool `json:"watermark,omitempty"` // 是否添加水印
Audio *bool `json:"audio,omitempty"` // 是否添加音频(wan2.5)
Seed int `json:"seed,omitempty"` // 随机数种子
}
AliVideoParameters 视频参数
type AliVideoRequest ¶
type AliVideoRequest struct {
Model string `json:"model"`
Input AliVideoInput `json:"input"`
Parameters *AliVideoParameters `json:"parameters,omitempty"`
}
AliVideoRequest 阿里通义万相视频生成请求
type AliVideoResponse ¶
type AliVideoResponse struct {
Output AliVideoOutput `json:"output"`
RequestID string `json:"request_id"`
Code string `json:"code,omitempty"`
Message string `json:"message,omitempty"`
Usage *AliUsage `json:"usage,omitempty"`
}
AliVideoResponse 阿里通义万相响应
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)
func (*TaskAdaptor) BuildRequestHeader ¶
func (a *TaskAdaptor) BuildRequestHeader(c *gin.Context, req *http.Request, info *relaycommon.RelayInfo) error
BuildRequestHeader sets required headers for Ali API
func (*TaskAdaptor) BuildRequestURL ¶
func (a *TaskAdaptor) BuildRequestURL(info *relaycommon.RelayInfo) (string, error)
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
func (*TaskAdaptor) EstimateBilling ¶ added in v0.11.0
func (a *TaskAdaptor) EstimateBilling(c *gin.Context, info *relaycommon.RelayInfo) map[string]float64
EstimateBilling 根据用户请求参数计算 OtherRatios(时长、分辨率等)。 在 ValidateRequestAndSetAction 之后、价格计算之前调用。
func (*TaskAdaptor) FetchTask ¶
func (a *TaskAdaptor) FetchTask(baseUrl, key string, body map[string]any, proxy string) (*http.Response, error)
FetchTask 查询任务状态
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)
ParseTaskResult 解析任务结果
func (*TaskAdaptor) ValidateRequestAndSetAction ¶
func (a *TaskAdaptor) ValidateRequestAndSetAction(c *gin.Context, info *relaycommon.RelayInfo) (taskErr *dto.TaskError)
Click to show internal directories.
Click to hide internal directories.