mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-03 04:50:52 +08:00
Refactor translator packages for OpenAI Chat Completions
- Renamed `openai` packages to `chat_completions` across translator modules. - Introduced `openai_responses_handlers` with handlers for `/v1/models` and OpenAI-compatible chat completions endpoints. - Updated constants and registry identifiers for OpenAI response type. - Simplified request/response conversions and added detailed retry/error handling. - Added `golang.org/x/crypto` for additional cryptographic functions.
This commit is contained in:
@@ -0,0 +1,5 @@
|
|||||||
|
package responses
|
||||||
|
|
||||||
|
func ConvertOpenAIResponsesRequestToClaude(modelName string, rawJSON []byte, stream bool) []byte {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package responses
|
||||||
|
|
||||||
|
import "context"
|
||||||
|
|
||||||
|
func ConvertClaudeResponseToOpenAIResponses(_ context.Context, modelName string, rawJSON []byte, param *any) []string {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func ConvertClaudeResponseToOpenAIResponsesNonStream(_ context.Context, _ string, rawJSON []byte, _ *any) string {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
19
internal/translator/claude/openai/responses/init.go
Normal file
19
internal/translator/claude/openai/responses/init.go
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
package responses
|
||||||
|
|
||||||
|
import (
|
||||||
|
. "github.com/luispater/CLIProxyAPI/internal/constant"
|
||||||
|
"github.com/luispater/CLIProxyAPI/internal/interfaces"
|
||||||
|
"github.com/luispater/CLIProxyAPI/internal/translator/translator"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
translator.Register(
|
||||||
|
OPENAI_RESPONSE,
|
||||||
|
CLAUDE,
|
||||||
|
ConvertOpenAIResponsesRequestToClaude,
|
||||||
|
interfaces.TranslateResponse{
|
||||||
|
Stream: ConvertClaudeResponseToOpenAIResponses,
|
||||||
|
NonStream: ConvertClaudeResponseToOpenAIResponsesNonStream,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package responses
|
||||||
|
|
||||||
|
func ConvertOpenAIResponsesRequestToGeminiCLI(modelName string, rawJSON []byte, stream bool) []byte {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package responses
|
||||||
|
|
||||||
|
import "context"
|
||||||
|
|
||||||
|
func ConvertGeminiCLIResponseToOpenAIResponses(_ context.Context, modelName string, rawJSON []byte, param *any) []string {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func ConvertGeminiCLIResponseToOpenAIResponsesNonStream(_ context.Context, _ string, rawJSON []byte, _ *any) string {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
19
internal/translator/gemini-cli/openai/responses/init.go
Normal file
19
internal/translator/gemini-cli/openai/responses/init.go
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
package responses
|
||||||
|
|
||||||
|
import (
|
||||||
|
. "github.com/luispater/CLIProxyAPI/internal/constant"
|
||||||
|
"github.com/luispater/CLIProxyAPI/internal/interfaces"
|
||||||
|
"github.com/luispater/CLIProxyAPI/internal/translator/translator"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
translator.Register(
|
||||||
|
OPENAI_RESPONSE,
|
||||||
|
GEMINICLI,
|
||||||
|
ConvertOpenAIResponsesRequestToGeminiCLI,
|
||||||
|
interfaces.TranslateResponse{
|
||||||
|
Stream: ConvertGeminiCLIResponseToOpenAIResponses,
|
||||||
|
NonStream: ConvertGeminiCLIResponseToOpenAIResponsesNonStream,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package responses
|
||||||
|
|
||||||
|
func ConvertOpenAIResponsesRequestToGemini(modelName string, rawJSON []byte, stream bool) []byte {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package responses
|
||||||
|
|
||||||
|
import "context"
|
||||||
|
|
||||||
|
func ConvertGeminiResponseToOpenAIResponses(_ context.Context, modelName string, rawJSON []byte, param *any) []string {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func ConvertGeminiResponseToOpenAIResponsesNonStream(_ context.Context, _ string, rawJSON []byte, _ *any) string {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
19
internal/translator/gemini/openai/responses/init.go
Normal file
19
internal/translator/gemini/openai/responses/init.go
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
package responses
|
||||||
|
|
||||||
|
import (
|
||||||
|
. "github.com/luispater/CLIProxyAPI/internal/constant"
|
||||||
|
"github.com/luispater/CLIProxyAPI/internal/interfaces"
|
||||||
|
"github.com/luispater/CLIProxyAPI/internal/translator/translator"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
translator.Register(
|
||||||
|
OPENAI_RESPONSE,
|
||||||
|
GEMINI,
|
||||||
|
ConvertOpenAIResponsesRequestToGemini,
|
||||||
|
interfaces.TranslateResponse{
|
||||||
|
Stream: ConvertGeminiResponseToOpenAIResponses,
|
||||||
|
NonStream: ConvertGeminiResponseToOpenAIResponsesNonStream,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ import (
|
|||||||
_ "github.com/luispater/CLIProxyAPI/internal/translator/claude/gemini"
|
_ "github.com/luispater/CLIProxyAPI/internal/translator/claude/gemini"
|
||||||
_ "github.com/luispater/CLIProxyAPI/internal/translator/claude/gemini-cli"
|
_ "github.com/luispater/CLIProxyAPI/internal/translator/claude/gemini-cli"
|
||||||
_ "github.com/luispater/CLIProxyAPI/internal/translator/claude/openai/chat-completions"
|
_ "github.com/luispater/CLIProxyAPI/internal/translator/claude/openai/chat-completions"
|
||||||
|
_ "github.com/luispater/CLIProxyAPI/internal/translator/claude/openai/responses"
|
||||||
_ "github.com/luispater/CLIProxyAPI/internal/translator/codex/claude"
|
_ "github.com/luispater/CLIProxyAPI/internal/translator/codex/claude"
|
||||||
_ "github.com/luispater/CLIProxyAPI/internal/translator/codex/gemini"
|
_ "github.com/luispater/CLIProxyAPI/internal/translator/codex/gemini"
|
||||||
_ "github.com/luispater/CLIProxyAPI/internal/translator/codex/gemini-cli"
|
_ "github.com/luispater/CLIProxyAPI/internal/translator/codex/gemini-cli"
|
||||||
@@ -11,10 +12,12 @@ import (
|
|||||||
_ "github.com/luispater/CLIProxyAPI/internal/translator/gemini-cli/claude"
|
_ "github.com/luispater/CLIProxyAPI/internal/translator/gemini-cli/claude"
|
||||||
_ "github.com/luispater/CLIProxyAPI/internal/translator/gemini-cli/gemini"
|
_ "github.com/luispater/CLIProxyAPI/internal/translator/gemini-cli/gemini"
|
||||||
_ "github.com/luispater/CLIProxyAPI/internal/translator/gemini-cli/openai/chat-completions"
|
_ "github.com/luispater/CLIProxyAPI/internal/translator/gemini-cli/openai/chat-completions"
|
||||||
|
_ "github.com/luispater/CLIProxyAPI/internal/translator/gemini-cli/openai/responses"
|
||||||
_ "github.com/luispater/CLIProxyAPI/internal/translator/gemini/claude"
|
_ "github.com/luispater/CLIProxyAPI/internal/translator/gemini/claude"
|
||||||
_ "github.com/luispater/CLIProxyAPI/internal/translator/gemini/gemini"
|
_ "github.com/luispater/CLIProxyAPI/internal/translator/gemini/gemini"
|
||||||
_ "github.com/luispater/CLIProxyAPI/internal/translator/gemini/gemini-cli"
|
_ "github.com/luispater/CLIProxyAPI/internal/translator/gemini/gemini-cli"
|
||||||
_ "github.com/luispater/CLIProxyAPI/internal/translator/gemini/openai/chat-completions"
|
_ "github.com/luispater/CLIProxyAPI/internal/translator/gemini/openai/chat-completions"
|
||||||
|
_ "github.com/luispater/CLIProxyAPI/internal/translator/gemini/openai/responses"
|
||||||
_ "github.com/luispater/CLIProxyAPI/internal/translator/openai/claude"
|
_ "github.com/luispater/CLIProxyAPI/internal/translator/openai/claude"
|
||||||
_ "github.com/luispater/CLIProxyAPI/internal/translator/openai/gemini"
|
_ "github.com/luispater/CLIProxyAPI/internal/translator/openai/gemini"
|
||||||
_ "github.com/luispater/CLIProxyAPI/internal/translator/openai/gemini-cli"
|
_ "github.com/luispater/CLIProxyAPI/internal/translator/openai/gemini-cli"
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package responses
|
||||||
|
|
||||||
|
func ConvertOpenAIResponsesRequestToOpenAIChatCompletions(modelName string, rawJSON []byte, stream bool) []byte {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package responses
|
||||||
|
|
||||||
|
import "context"
|
||||||
|
|
||||||
|
func ConvertOpenAIChatCompletionsResponseToOpenAIResponses(_ context.Context, modelName string, rawJSON []byte, param *any) []string {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func ConvertOpenAIChatCompletionsResponseToOpenAIResponsesNonStream(_ context.Context, _ string, rawJSON []byte, _ *any) string {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
19
internal/translator/openai/openai/responses/init.go
Normal file
19
internal/translator/openai/openai/responses/init.go
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
package responses
|
||||||
|
|
||||||
|
import (
|
||||||
|
. "github.com/luispater/CLIProxyAPI/internal/constant"
|
||||||
|
"github.com/luispater/CLIProxyAPI/internal/interfaces"
|
||||||
|
"github.com/luispater/CLIProxyAPI/internal/translator/translator"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
translator.Register(
|
||||||
|
OPENAI_RESPONSE,
|
||||||
|
OPENAI,
|
||||||
|
ConvertOpenAIResponsesRequestToOpenAIChatCompletions,
|
||||||
|
interfaces.TranslateResponse{
|
||||||
|
Stream: ConvertOpenAIChatCompletionsResponseToOpenAIResponses,
|
||||||
|
NonStream: ConvertOpenAIChatCompletionsResponseToOpenAIResponsesNonStream,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user