* fix(openai): harden Chat-to-Responses compatibility Add a shared Responses-to-Chat stream state machine and use it from the OpenAI relay path. Preserve assistant text alongside tool calls, bind tool argument deltas by output_index, map incomplete finish reasons, support reasoning/custom tool events, and buffer upstream SSE for non-stream Chat clients. Add deterministic service tests and relay SSE tests for the conversion path. Related to #5745. * refactor: rename openaicompat to relayconvert for improved clarity * feat(gemini): support responses request conversion * feat: add responses to chat conversion support * fix: harden responses chat conversion edge cases
20 lines
624 B
Go
20 lines
624 B
Go
package relayconvert
|
|
|
|
import "github.com/QuantumNous/new-api/setting/model_setting"
|
|
|
|
func ShouldChatCompletionsUseResponsesPolicy(policy model_setting.ChatCompletionsToResponsesPolicy, channelID int, channelType int, model string) bool {
|
|
if !policy.IsChannelEnabled(channelID, channelType) {
|
|
return false
|
|
}
|
|
return matchAnyRegex(policy.ModelPatterns, model)
|
|
}
|
|
|
|
func ShouldChatCompletionsUseResponsesGlobal(channelID int, channelType int, model string) bool {
|
|
return ShouldChatCompletionsUseResponsesPolicy(
|
|
model_setting.GetGlobalSettings().ChatCompletionsToResponsesPolicy,
|
|
channelID,
|
|
channelType,
|
|
model,
|
|
)
|
|
}
|