Skip to content

Commit

Permalink
feat: 轮询geminiKeys,用英文逗号隔开 (#744)
Browse files Browse the repository at this point in the history
  • Loading branch information
misaka20002 authored Jan 4, 2025
1 parent 25520ba commit 7974c6a
Show file tree
Hide file tree
Showing 7 changed files with 17 additions and 13 deletions.
2 changes: 1 addition & 1 deletion apps/bym.js
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ export class bym extends plugin {
let client = new CustomGoogleGeminiClient({
e,
userId: e.sender.user_id,
key: Config.geminiKey,
key: Config.getGeminiKey(),
model: Config.geminiModel,
baseUrl: Config.geminiBaseUrl,
debug: Config.debug
Expand Down
2 changes: 1 addition & 1 deletion apps/entertainment.js
Original file line number Diff line number Diff line change
Expand Up @@ -617,7 +617,7 @@ ${translateLangLabels}
let client = new CustomGoogleGeminiClient({
e,
userId: e.sender.user_id,
key: Config.geminiKey,
key: Config.getGeminiKey(),
model: 'gemini-1.5-flash-latest',
baseUrl: Config.geminiBaseUrl,
debug: Config.debug
Expand Down
2 changes: 1 addition & 1 deletion guoba.support.js
Original file line number Diff line number Diff line change
Expand Up @@ -592,7 +592,7 @@ export function supportGuoba () {
{
field: 'geminiKey',
label: 'API密钥',
bottomHelpMessage: '前往https://makersuite.google.com/app/apikey获取',
bottomHelpMessage: '前往https://makersuite.google.com/app/apikey获取,如果有多个Keys,用英文逗号隔开',
component: 'InputPassword'
},
{
Expand Down
2 changes: 1 addition & 1 deletion model/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -721,7 +721,7 @@ class Core {
let client = new CustomGoogleGeminiClient({
e,
userId: e.sender.user_id,
key: Config.geminiKey,
key: Config.getGeminiKey(),
model: Config.geminiModel,
baseUrl: Config.geminiBaseUrl,
debug: Config.debug
Expand Down
18 changes: 11 additions & 7 deletions utils/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -267,17 +267,21 @@ config.version = defaultConfig.version

export const Config = new Proxy(config, {
get(target, property) {
if (property === 'geminiKey') {
if (typeof target[property] === 'string' && target[property].includes(',')) {
const keys = target[property].split(',').map(key => key.trim()).filter(Boolean)
const selectedKey = keys[Math.floor(Math.random() * keys.length)]
console.log(`[ChatGPT-Plugin] 当前使用的Gemini Key: ${selectedKey.slice(0, 8)}...`)
return selectedKey
if (property === 'getGeminiKey') {
return function () {
if (target["geminiKey"]?.length === 0) {
return "";
}
const geminiKeyArr = target["geminiKey"]?.trim().split(/[,,]/);
const randomIndex = Math.floor(Math.random() * geminiKeyArr.length);
logger.info(`[chatgpt]随机使用第${randomIndex + 1}个gemini Key: ${geminiKeyArr[randomIndex].replace(/(.{7}).*(.{10})/, '$1****$2')}`);
return geminiKeyArr[randomIndex];
}
}

return target[property]
},
set (target, property, value) {
set(target, property, value) {
target[property] = value
const change = lodash.transform(target, function (result, value, key) {
if (!lodash.isEqual(value, defaultConfig[key])) {
Expand Down
2 changes: 1 addition & 1 deletion utils/tools/WebsiteTool.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ export class WebsiteTool extends AbstractTool {
let client = new CustomGoogleGeminiClient({
e,
userId: e?.sender?.user_id,
key: Config.geminiKey,
key: Config.getGeminiKey(),
model: Config.geminiModel,
baseUrl: Config.geminiBaseUrl,
debug: Config.debug
Expand Down
2 changes: 1 addition & 1 deletion utils/translate.js
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ export async function translate (msg, to = 'auto', from = 'auto', ai = Config.tr
}
case 'gemini': {
let client = new CustomGoogleGeminiClient({
key: Config.geminiKey,
key: Config.getGeminiKey(),
model: Config.geminiModel,
baseUrl: Config.geminiBaseUrl,
debug: Config.debug
Expand Down

0 comments on commit 7974c6a

Please sign in to comment.