ai-gateway/providers/gemini/base.go

47 lines
1006 B
Go
Raw Permalink Normal View History

package gemini
import (
"fmt"
"one-api/providers/base"
"strings"
"github.com/gin-gonic/gin"
)
type GeminiProviderFactory struct{}
// 创建 ClaudeProvider
func (f GeminiProviderFactory) Create(c *gin.Context) base.ProviderInterface {
return &GeminiProvider{
BaseProvider: base.BaseProvider{
BaseURL: "https://generativelanguage.googleapis.com",
ChatCompletions: "/",
Context: c,
},
}
}
type GeminiProvider struct {
base.BaseProvider
}
func (p *GeminiProvider) GetFullRequestURL(requestURL string, modelName string) string {
baseURL := strings.TrimSuffix(p.GetBaseURL(), "/")
version := "v1"
if p.Channel.Other != "" {
version = p.Channel.Other
}
return fmt.Sprintf("%s/%s/models/%s:%s", baseURL, version, modelName, requestURL)
}
// 获取请求头
func (p *GeminiProvider) GetRequestHeaders() (headers map[string]string) {
headers = make(map[string]string)
p.CommonRequestHeaders(headers)
headers["x-goog-api-key"] = p.Channel.Key
return headers
}