We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 1ce6a22 commit 3f421c4Copy full SHA for 3f421c4
relay/adaptor/gemini/constants.go
@@ -1,18 +1,12 @@
1
package gemini
2
3
+import (
4
+ "github.com/songquanpeng/one-api/relay/adaptor/geminiv2"
5
+)
6
+
7
// https://ai.google.dev/models/gemini
8
-var ModelList = []string{
- "gemini-pro", "gemini-1.0-pro",
- // "gemma-2-2b-it", "gemma-2-9b-it", "gemma-2-27b-it",
- "gemini-1.5-flash", "gemini-1.5-flash-8b",
9
- "gemini-1.5-pro", "gemini-1.5-pro-experimental",
10
- "text-embedding-004", "aqa",
11
- "gemini-2.0-flash", "gemini-2.0-flash-exp",
12
- "gemini-2.0-flash-lite-preview-02-05",
13
- "gemini-2.0-flash-thinking-exp-01-21",
14
- "gemini-2.0-pro-exp-02-05",
15
-}
+var ModelList = geminiv2.ModelList
16
17
// ModelsSupportSystemInstruction is the list of models that support system instruction.
18
//
relay/adaptor/geminiv2/constants.go
@@ -0,0 +1,15 @@
+package geminiv2
+// https://ai.google.dev/models/gemini
+var ModelList = []string{
+ "gemini-pro", "gemini-1.0-pro",
+ // "gemma-2-2b-it", "gemma-2-9b-it", "gemma-2-27b-it",
+ "gemini-1.5-flash", "gemini-1.5-flash-8b",
+ "gemini-1.5-pro", "gemini-1.5-pro-experimental",
+ "text-embedding-004", "aqa",
+ "gemini-2.0-flash", "gemini-2.0-flash-exp",
+ "gemini-2.0-flash-lite-preview-02-05",
+ "gemini-2.0-flash-thinking-exp-01-21",
+ "gemini-2.0-pro-exp-02-05",
+}
relay/adaptor/geminiv2/main.go
@@ -0,0 +1,14 @@
+ "fmt"
+ "strings"
+ "github.com/songquanpeng/one-api/relay/meta"
+func GetRequestURL(meta *meta.Meta) (string, error) {
+ baseURL := strings.TrimSuffix(meta.BaseURL, "/")
+ requestPath := strings.TrimPrefix(meta.RequestURLPath, "/v1")
+ return fmt.Sprintf("%s%s", baseURL, requestPath), nil
relay/adaptor/openai/adaptor.go
@@ -13,6 +13,7 @@ import (
"github.com/songquanpeng/one-api/relay/adaptor/alibailian"
"github.com/songquanpeng/one-api/relay/adaptor/baiduv2"
"github.com/songquanpeng/one-api/relay/adaptor/doubao"
"github.com/songquanpeng/one-api/relay/adaptor/minimax"
"github.com/songquanpeng/one-api/relay/adaptor/novita"
19
"github.com/songquanpeng/one-api/relay/channeltype"
@@ -59,6 +60,8 @@ func (a *Adaptor) GetRequestURL(meta *meta.Meta) (string, error) {
59
60
return baiduv2.GetRequestURL(meta)
61
case channeltype.AliBailian:
62
return alibailian.GetRequestURL(meta)
63
+ case channeltype.GeminiOpenAICompatible:
64
+ return geminiv2.GetRequestURL(meta)
65
default:
66
return GetFullRequestURL(meta.BaseURL, meta.RequestURLPath, meta.ChannelType), nil
67
}
relay/adaptor/openai/compatible.go
@@ -7,6 +7,7 @@ import (
"github.com/songquanpeng/one-api/relay/adaptor/deepseek"
"github.com/songquanpeng/one-api/relay/adaptor/groq"
"github.com/songquanpeng/one-api/relay/adaptor/lingyiwanwu"
@@ -82,6 +83,8 @@ func GetCompatibleChannelMeta(channelType int) (string, []string) {
82
83
return "openrouter", openrouter.ModelList
84
85
return "alibailian", alibailian.ModelList
86
87
+ return "geminiv2", geminiv2.ModelList
88
89
return "openai", ModelList
90
relay/channeltype/define.go
@@ -52,5 +52,6 @@ const (
52
XunfeiV2
53
AliBailian
54
OpenAICompatible
55
+ GeminiOpenAICompatible
56
Dummy
57
)
relay/channeltype/url.go
@@ -52,6 +52,8 @@ var ChannelBaseURLs = []string{
"https://spark-api-open.xf-yun.com", // 48
"https://dashscope.aliyuncs.com", // 49
"", // 50
+ "https://generativelanguage.googleapis.com/v1beta/openai/", // 51
58
func init() {
web/default/src/constants/channel.constants.js
@@ -7,11 +7,18 @@ export const CHANNEL_OPTIONS = [
color: 'olive',
description: 'OpenAI 兼容渠道,支持设置 Base URL',
},
- { key: 14, text: 'Anthropic Claude', value: 14, color: 'black' },
+ {key: 14, text: 'Anthropic', value: 14, color: 'black'},
{ key: 33, text: 'AWS', value: 33, color: 'black' },
- { key: 3, text: 'Azure OpenAI', value: 3, color: 'olive' },
- { key: 11, text: 'Google PaLM2', value: 11, color: 'orange' },
- { key: 24, text: 'Google Gemini', value: 24, color: 'orange' },
+ {key: 3, text: 'Azure', value: 3, color: 'olive'},
+ {key: 11, text: 'PaLM2', value: 11, color: 'orange'},
+ {key: 24, text: 'Gemini', value: 24, color: 'orange'},
+ {
+ key: 51,
+ text: 'Gemini (OpenAI)',
+ value: 51,
+ color: 'orange',
20
+ description: 'Gemini OpenAI 兼容格式',
21
+ },
22
{ key: 28, text: 'Mistral AI', value: 28, color: 'orange' },
23
{ key: 41, text: 'Novita', value: 41, color: 'purple' },
24
{
0 commit comments