fix: omit unpopulated max_completion_tokens to prevent 1-token truncation
This commit is contained in:
@@ -114,8 +114,8 @@ type ChatCompletionRequest struct {
|
|||||||
Tools []Tool `json:"tools,omitempty"`
|
Tools []Tool `json:"tools,omitempty"`
|
||||||
ToolChoice interface{} `json:"tool_choice,omitempty"`
|
ToolChoice interface{} `json:"tool_choice,omitempty"`
|
||||||
Stream bool `json:"stream"`
|
Stream bool `json:"stream"`
|
||||||
MaxTokens int `json:"max_tokens"`
|
MaxTokens int `json:"max_tokens,omitempty"`
|
||||||
MaxCompletionTokens int `json:"max_completion_tokens"`
|
MaxCompletionTokens int `json:"max_completion_tokens,omitempty"`
|
||||||
Temperature *float64 `json:"temperature,omitempty"`
|
Temperature *float64 `json:"temperature,omitempty"`
|
||||||
TopP *float64 `json:"top_p,omitempty"`
|
TopP *float64 `json:"top_p,omitempty"`
|
||||||
ReasoningEffort string `json:"reasoning_effort,omitempty"`
|
ReasoningEffort string `json:"reasoning_effort,omitempty"`
|
||||||
@@ -1508,9 +1508,14 @@ func (s *QwenService) chatDirectOpenAI(endpointURL string, w http.ResponseWriter
|
|||||||
|
|
||||||
reqCopy := req
|
reqCopy := req
|
||||||
reqCopy.Model = resolvedModel
|
reqCopy.Model = resolvedModel
|
||||||
if reqCopy.MaxTokens == 0 && maxTokens > 0 {
|
effTokens := maxTokens
|
||||||
reqCopy.MaxTokens = maxTokens
|
if reqCopy.MaxCompletionTokens > 0 {
|
||||||
|
effTokens = reqCopy.MaxCompletionTokens
|
||||||
|
} else if reqCopy.MaxTokens > 0 {
|
||||||
|
effTokens = reqCopy.MaxTokens
|
||||||
}
|
}
|
||||||
|
reqCopy.MaxTokens = effTokens
|
||||||
|
reqCopy.MaxCompletionTokens = 0
|
||||||
|
|
||||||
reqJSON, err := json.Marshal(reqCopy)
|
reqJSON, err := json.Marshal(reqCopy)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -1541,6 +1546,10 @@ func (s *QwenService) chatDirectOpenAI(endpointURL string, w http.ResponseWriter
|
|||||||
}
|
}
|
||||||
|
|
||||||
for k, vv := range resp.Header {
|
for k, vv := range resp.Header {
|
||||||
|
lowerKey := strings.ToLower(k)
|
||||||
|
if lowerKey == "content-length" || lowerKey == "transfer-encoding" || lowerKey == "connection" || lowerKey == "keep-alive" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
for _, v := range vv {
|
for _, v := range vv {
|
||||||
w.Header().Add(k, v)
|
w.Header().Add(k, v)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user