diff --git a/dto/openai_request.go b/dto/openai_request.go index 628b3dd2..fcedde80 100644 --- a/dto/openai_request.go +++ b/dto/openai_request.go @@ -17,7 +17,8 @@ type FormatJsonSchema struct { type GeneralOpenAIRequest struct { Model string `json:"model,omitempty"` Messages []Message `json:"messages,omitempty"` - Prompt any `json:"prompt,omitempty"` + Prompt any `json:"suffix,omitempty"` + Suffix any `json:"prompt,omitempty"` Stream bool `json:"stream,omitempty"` StreamOptions *StreamOptions `json:"stream_options,omitempty"` MaxTokens uint `json:"max_tokens,omitempty"` diff --git a/relay/channel/siliconflow/adaptor.go b/relay/channel/siliconflow/adaptor.go index ac722b22..dc4d9fa0 100644 --- a/relay/channel/siliconflow/adaptor.go +++ b/relay/channel/siliconflow/adaptor.go @@ -36,6 +36,8 @@ func (a *Adaptor) GetRequestURL(info *relaycommon.RelayInfo) (string, error) { return fmt.Sprintf("%s/v1/embeddings", info.BaseUrl), nil } else if info.RelayMode == constant.RelayModeChatCompletions { return fmt.Sprintf("%s/v1/chat/completions", info.BaseUrl), nil + } else if info.RelayMode == constant.RelayModeCompletions { + return fmt.Sprintf("%s/v1/completions", info.BaseUrl), nil } return "", errors.New("invalid relay mode") } @@ -68,6 +70,12 @@ func (a *Adaptor) DoResponse(c *gin.Context, resp *http.Response, info *relaycom } else { err, usage = openai.OpenaiHandler(c, resp, info.PromptTokens, info.UpstreamModelName) } + case constant.RelayModeCompletions: + if info.IsStream { + err, usage = openai.OaiStreamHandler(c, resp, info) + } else { + err, usage = openai.OpenaiHandler(c, resp, info.PromptTokens, info.UpstreamModelName) + } case constant.RelayModeEmbeddings: err, usage = openai.OpenaiHandler(c, resp, info.PromptTokens, info.UpstreamModelName) }