Compare commits

...

3 Commits

Author SHA1 Message Date
Laisky.Cai
5f6b515bb3 fix: update URL format in LogsTable component for self log retrieval
closes #49
2025-03-26 02:37:03 +00:00
Laisky.Cai
638a4fb77d fix: update default return value in GetModelRatio function 2025-03-26 02:36:56 +00:00
Laisky.Cai
4e2430e5d3 feat: support gemini-2.5-pro 2025-03-26 02:36:43 +00:00
5 changed files with 19 additions and 10 deletions

View File

@@ -25,7 +25,7 @@ func (a *Adaptor) Init(meta *meta.Meta) {
func (a *Adaptor) GetRequestURL(meta *meta.Meta) (string, error) {
defaultVersion := config.GeminiVersion
if strings.Contains(meta.ActualModelName, "gemini-2.0") ||
if strings.Contains(meta.ActualModelName, "gemini-2") ||
strings.Contains(meta.ActualModelName, "gemini-1.5") {
defaultVersion = "v1beta"
}

View File

@@ -6,15 +6,17 @@ import "strings"
var ModelList = []string{
"gemini-pro", "gemini-1.0-pro",
// "gemma-2-2b-it", "gemma-2-9b-it", "gemma-2-27b-it",
"gemma-2-2b-it", "gemma-2-9b-it", "gemma-2-27b-it",
"gemma-3-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",
"gemini-2.0-flash-exp-image-generation",
"gemini-2.0-pro-exp-02-05",
"gemini-2.5-pro-exp-03-25",
}
const (
@@ -28,5 +30,10 @@ func GetModelModalities(model string) []string {
return []string{ModalityText, ModalityImage}
}
// Until 2025-03-26, the following models do not accept the responseModalities field
if model == "gemini-2.5-pro-exp-03-25" {
return nil
}
return []string{ModalityText}
}

View File

@@ -144,9 +144,10 @@ var ModelRatio = map[string]float64{
"tao-8k": 0.002 * KiloRmb,
// https://ai.google.dev/pricing
// https://cloud.google.com/vertex-ai/generative-ai/pricing
// "gemma-2-2b-it": 0,
// "gemma-2-9b-it": 0,
// "gemma-2-27b-it": 0,
"gemma-2-2b-it": 0,
"gemma-2-9b-it": 0,
"gemma-2-27b-it": 0,
"gemma-3-27b-it": 0,
"gemini-pro": 0.25 * MilliTokensUsd, // $0.00025 / 1k characters -> $0.001 / 1k tokens
"gemini-1.0-pro": 0.125 * MilliTokensUsd,
"gemini-1.0-pro-vision": 0.125 * MilliTokensUsd,
@@ -165,8 +166,9 @@ var ModelRatio = map[string]float64{
"gemini-2.0-flash-lite-001": 0.075 * MilliTokensUsd,
"gemini-2.0-flash-lite-preview-02-05": 0.075 * MilliTokensUsd,
"gemini-2.0-flash-thinking-exp-01-21": 0.075 * MilliTokensUsd,
"gemini-2.0-pro-exp-02-05": 1.25 * MilliTokensUsd,
"gemini-2.0-flash-exp-image-generation": 0.075 * MilliTokensUsd,
"gemini-2.0-pro-exp-02-05": 1.25 * MilliTokensUsd,
"gemini-2.5-pro-exp-03-25": 1.25 * MilliTokensUsd,
"aqa": 1,
// https://open.bigmodel.cn/pricing
"glm-zero-preview": 0.01 * KiloRmb,
@@ -914,7 +916,7 @@ func GetModelRatio(name string, channelType int) float64 {
}
logger.SysError("model ratio not found: " + name)
return 0.1 * QuotaPerUsd
return 2.5 * MilliTokensUsd
}
// CompletionRatio2JSONString returns the CompletionRatio map as a JSON string.

View File

@@ -245,7 +245,7 @@ const LogsTable = () => {
if (isAdminUser) {
url = `/api/log/?p=${startIdx}&page_size=${pageSize}&type=${logType}&username=${username}&token_name=${token_name}&model_name=${model_name}&start_timestamp=${localStartTimestamp}&end_timestamp=${localEndTimestamp}&channel=${channel}`;
} else {
url = `/api/log/self/?p=${startIdx}&page_size=${pageSize}&type=${logType}&token_name=${token_name}&model_name=${model_name}&start_timestamp=${localStartTimestamp}&end_timestamp=${localEndTimestamp}`;
url = `/api/log/self?p=${startIdx}&page_size=${pageSize}&type=${logType}&token_name=${token_name}&model_name=${model_name}&start_timestamp=${localStartTimestamp}&end_timestamp=${localEndTimestamp}`;
}
const res = await API.get(url);
const { success, message, data } = res.data;

View File

@@ -225,7 +225,7 @@ const LogsTable = () => {
if (isAdminUser) {
url = `/api/log/?p=${startIdx}&type=${logType}&username=${username}&token_name=${token_name}&model_name=${model_name}&start_timestamp=${localStartTimestamp}&end_timestamp=${localEndTimestamp}&channel=${channel}`;
} else {
url = `/api/log/self/?p=${startIdx}&type=${logType}&token_name=${token_name}&model_name=${model_name}&start_timestamp=${localStartTimestamp}&end_timestamp=${localEndTimestamp}`;
url = `/api/log/self?p=${startIdx}&type=${logType}&token_name=${token_name}&model_name=${model_name}&start_timestamp=${localStartTimestamp}&end_timestamp=${localEndTimestamp}`;
}
const res = await API.get(url);
const { success, message, data } = res.data;