support openai response format through config
This commit is contained in:
parent
920e30a241
commit
66591dfdb7
3 changed files with 16 additions and 1 deletions
|
|
@ -188,6 +188,7 @@ type ProviderConfig struct {
|
|||
Proxy string `json:"proxy,omitempty" env:"PICOCLAW_PROVIDERS_{{.Name}}_PROXY"`
|
||||
AuthMethod string `json:"auth_method,omitempty" env:"PICOCLAW_PROVIDERS_{{.Name}}_AUTH_METHOD"`
|
||||
ConnectMode string `json:"connect_mode,omitempty" env:"PICOCLAW_PROVIDERS_{{.Name}}_CONNECT_MODE"` //only for Github Copilot, `stdio` or `grpc`
|
||||
APIFormat string `json:"api_format,omitempty" env:"PICOCLAW_PROVIDERS_{{.Name}}_API_FORMAT"` // "responses" to use OpenAI Responses API
|
||||
}
|
||||
|
||||
type GatewayConfig struct {
|
||||
|
|
|
|||
|
|
@ -26,8 +26,15 @@ type CodexProvider struct {
|
|||
const defaultCodexInstructions = "You are Codex, a coding assistant."
|
||||
|
||||
func NewCodexProvider(token, accountID string) *CodexProvider {
|
||||
return NewCodexProviderWithBase(token, accountID, "https://chatgpt.com/backend-api/codex")
|
||||
}
|
||||
|
||||
func NewCodexProviderWithBase(token, accountID, baseURL string) *CodexProvider {
|
||||
if baseURL == "" {
|
||||
baseURL = "https://chatgpt.com/backend-api/codex"
|
||||
}
|
||||
opts := []option.RequestOption{
|
||||
option.WithBaseURL("https://chatgpt.com/backend-api/codex"),
|
||||
option.WithBaseURL(baseURL),
|
||||
option.WithAPIKey(token),
|
||||
option.WithHeader("originator", "codex_cli_rs"),
|
||||
option.WithHeader("OpenAI-Beta", "responses=experimental"),
|
||||
|
|
|
|||
|
|
@ -246,6 +246,13 @@ func CreateProvider(cfg *config.Config) (LLMProvider, error) {
|
|||
if cfg.Providers.OpenAI.AuthMethod == "oauth" || cfg.Providers.OpenAI.AuthMethod == "token" {
|
||||
return createCodexAuthProvider()
|
||||
}
|
||||
if cfg.Providers.OpenAI.APIFormat == "responses" {
|
||||
base := cfg.Providers.OpenAI.APIBase
|
||||
if base == "" {
|
||||
base = "https://api.openai.com/v1"
|
||||
}
|
||||
return NewCodexProviderWithBase(cfg.Providers.OpenAI.APIKey, "", base), nil
|
||||
}
|
||||
apiKey = cfg.Providers.OpenAI.APIKey
|
||||
apiBase = cfg.Providers.OpenAI.APIBase
|
||||
if apiBase == "" {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue