diff --git a/dto/audio.go b/dto/audio.go index c56d6573d..ea51516f8 100644 --- a/dto/audio.go +++ b/dto/audio.go @@ -1,19 +1,22 @@ package dto import ( + "encoding/json" + "github.com/QuantumNous/new-api/types" "github.com/gin-gonic/gin" ) type AudioRequest struct { - Model string `json:"model"` - Input string `json:"input"` - Voice string `json:"voice"` - Instructions string `json:"instructions,omitempty"` - ResponseFormat string `json:"response_format,omitempty"` - Speed float64 `json:"speed,omitempty"` - StreamFormat string `json:"stream_format,omitempty"` + Model string `json:"model"` + Input string `json:"input"` + Voice string `json:"voice"` + Instructions string `json:"instructions,omitempty"` + ResponseFormat string `json:"response_format,omitempty"` + Speed float64 `json:"speed,omitempty"` + StreamFormat string `json:"stream_format,omitempty"` + Metadata json.RawMessage `json:"metadata,omitempty"` } func (r *AudioRequest) GetTokenCountMeta() *types.TokenCountMeta { diff --git a/relay/channel/volcengine/adaptor.go b/relay/channel/volcengine/adaptor.go index 94cb776e8..411bdc8ef 100644 --- a/relay/channel/volcengine/adaptor.go +++ b/relay/channel/volcengine/adaptor.go @@ -75,6 +75,13 @@ func (a *Adaptor) ConvertAudioRequest(c *gin.Context, info *relaycommon.RelayInf }, } + // 同步扩展字段的厂商自定义metadata + if len(request.Metadata) > 0 { + if err = json.Unmarshal(request.Metadata, &volcRequest); err != nil { + return nil, fmt.Errorf("error unmarshalling metadata to volcengine request: %w", err) + } + } + jsonData, err := json.Marshal(volcRequest) if err != nil { return nil, fmt.Errorf("error marshalling volcengine request: %w", err)