Compare commits

...

5 Commits

Author SHA1 Message Date
Laisky.Cai
daf6b7a1a4 Merge 5f6b515bb3 into 8df4a2670b 2025-03-26 10:37:11 +08:00
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
JustSong
8df4a2670b docs: update ByteDance Doubao model link in README
Some checks failed
CI / Unit tests (push) Has been cancelled
CI / commit_lint (push) Has been cancelled
2025-02-21 19:30:16 +08:00
6 changed files with 20 additions and 11 deletions

View File

@@ -72,7 +72,7 @@ _✨ 通过标准的 OpenAI API 格式访问所有的大模型,开箱即用
+ [x] [Anthropic Claude 系列模型](https://anthropic.com) (支持 AWS Claude)
+ [x] [Google PaLM2/Gemini 系列模型](https://developers.generativeai.google)
+ [x] [Mistral 系列模型](https://mistral.ai/)
+ [x] [字节跳动豆包大模型](https://console.volcengine.com/ark/region:ark+cn-beijing/model)
+ [x] [字节跳动豆包大模型(火山引擎)](https://www.volcengine.com/experience/ark?utm_term=202502dsinvite&ac=DSASUQY5&rc=2QXCA1VI)
+ [x] [百度文心一言系列模型](https://cloud.baidu.com/doc/WENXINWORKSHOP/index.html)
+ [x] [阿里通义千问系列模型](https://help.aliyun.com/document_detail/2400395.html)
+ [x] [讯飞星火认知大模型](https://www.xfyun.cn/doc/spark/Web.html)

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;