This commit is contained in:
ycxom 2025-01-04 15:55:55 +08:00
commit b98ab6b634
7 changed files with 17 additions and 13 deletions

View file

@ -289,7 +289,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

View file

@ -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

View file

@ -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'
},
{

View file

@ -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

View file

@ -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])) {

View file

@ -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

View file

@ -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