Merge pull request #172 from ZqinKing/main
feat: 在日志中添加凭证自定义名称(customName)以增强可读性
This commit is contained in:
commit
a8a1301da7
3 changed files with 17 additions and 9 deletions
|
|
@ -362,7 +362,8 @@ export const serviceInstances = {};
|
||||||
|
|
||||||
// 服务适配器工厂
|
// 服务适配器工厂
|
||||||
export function getServiceAdapter(config) {
|
export function getServiceAdapter(config) {
|
||||||
console.log(`[Adapter] getServiceAdapter, provider: ${config.MODEL_PROVIDER}, uuid: ${config.uuid}`);
|
const customNameDisplay = config.customName ? ` (${config.customName})` : '';
|
||||||
|
console.log(`[Adapter] getServiceAdapter, provider: ${config.MODEL_PROVIDER}, uuid: ${config.uuid}${customNameDisplay}`);
|
||||||
const provider = config.MODEL_PROVIDER;
|
const provider = config.MODEL_PROVIDER;
|
||||||
const providerKey = config.uuid ? provider + config.uuid : provider;
|
const providerKey = config.uuid ? provider + config.uuid : provider;
|
||||||
if (!serviceInstances[providerKey]) {
|
if (!serviceInstances[providerKey]) {
|
||||||
|
|
@ -393,4 +394,4 @@ export function getServiceAdapter(config) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return serviceInstances[providerKey];
|
return serviceInstances[providerKey];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -177,7 +177,7 @@ export async function handleUnifiedResponse(res, responsePayload, isStream) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function handleStreamRequest(res, service, model, requestBody, fromProvider, toProvider, PROMPT_LOG_MODE, PROMPT_LOG_FILENAME, providerPoolManager, pooluuid) {
|
export async function handleStreamRequest(res, service, model, requestBody, fromProvider, toProvider, PROMPT_LOG_MODE, PROMPT_LOG_FILENAME, providerPoolManager, pooluuid, customName) {
|
||||||
let fullResponseText = '';
|
let fullResponseText = '';
|
||||||
let fullResponseJson = '';
|
let fullResponseJson = '';
|
||||||
let fullOldResponseJson = '';
|
let fullOldResponseJson = '';
|
||||||
|
|
@ -234,7 +234,8 @@ export async function handleStreamRequest(res, service, model, requestBody, from
|
||||||
|
|
||||||
// 流式请求成功完成,统计使用次数,错误次数重置为0
|
// 流式请求成功完成,统计使用次数,错误次数重置为0
|
||||||
if (providerPoolManager && pooluuid) {
|
if (providerPoolManager && pooluuid) {
|
||||||
console.log(`[Provider Pool] Increasing usage count for ${toProvider} (${pooluuid}) after successful stream request`);
|
const customNameDisplay = customName ? `, ${customName}` : '';
|
||||||
|
console.log(`[Provider Pool] Increasing usage count for ${toProvider} (${pooluuid}${customNameDisplay}) after successful stream request`);
|
||||||
providerPoolManager.markProviderHealthy(toProvider, {
|
providerPoolManager.markProviderHealthy(toProvider, {
|
||||||
uuid: pooluuid
|
uuid: pooluuid
|
||||||
});
|
});
|
||||||
|
|
@ -266,7 +267,7 @@ export async function handleStreamRequest(res, service, model, requestBody, from
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export async function handleUnaryRequest(res, service, model, requestBody, fromProvider, toProvider, PROMPT_LOG_MODE, PROMPT_LOG_FILENAME, providerPoolManager, pooluuid) {
|
export async function handleUnaryRequest(res, service, model, requestBody, fromProvider, toProvider, PROMPT_LOG_MODE, PROMPT_LOG_FILENAME, providerPoolManager, pooluuid, customName) {
|
||||||
try{
|
try{
|
||||||
// The service returns the response in its native format (toProvider).
|
// The service returns the response in its native format (toProvider).
|
||||||
const needsConversion = getProtocolPrefix(fromProvider) !== getProtocolPrefix(toProvider);
|
const needsConversion = getProtocolPrefix(fromProvider) !== getProtocolPrefix(toProvider);
|
||||||
|
|
@ -289,7 +290,8 @@ export async function handleUnaryRequest(res, service, model, requestBody, fromP
|
||||||
|
|
||||||
// 一元请求成功完成,统计使用次数,错误次数重置为0
|
// 一元请求成功完成,统计使用次数,错误次数重置为0
|
||||||
if (providerPoolManager && pooluuid) {
|
if (providerPoolManager && pooluuid) {
|
||||||
console.log(`[Provider Pool] Increasing usage count for ${toProvider} (${pooluuid}) after successful unary request`);
|
const customNameDisplay = customName ? `, ${customName}` : '';
|
||||||
|
console.log(`[Provider Pool] Increasing usage count for ${toProvider} (${pooluuid}${customNameDisplay}) after successful unary request`);
|
||||||
providerPoolManager.markProviderHealthy(toProvider, {
|
providerPoolManager.markProviderHealthy(toProvider, {
|
||||||
uuid: pooluuid
|
uuid: pooluuid
|
||||||
});
|
});
|
||||||
|
|
@ -400,6 +402,8 @@ export async function handleContentGenerationRequest(req, res, service, endpoint
|
||||||
}
|
}
|
||||||
console.log(`[Content Generation] Model: ${model}, Stream: ${isStream}`);
|
console.log(`[Content Generation] Model: ${model}, Stream: ${isStream}`);
|
||||||
|
|
||||||
|
let actualCustomName = CONFIG.customName;
|
||||||
|
|
||||||
// 2.5. 如果使用了提供商池,根据模型重新选择提供商(支持 Fallback)
|
// 2.5. 如果使用了提供商池,根据模型重新选择提供商(支持 Fallback)
|
||||||
// 注意:这里使用 skipUsageCount: true,因为初次选择时已经增加了 usageCount
|
// 注意:这里使用 skipUsageCount: true,因为初次选择时已经增加了 usageCount
|
||||||
if (providerPoolManager && CONFIG.providerPools && CONFIG.providerPools[CONFIG.MODEL_PROVIDER]) {
|
if (providerPoolManager && CONFIG.providerPools && CONFIG.providerPools[CONFIG.MODEL_PROVIDER]) {
|
||||||
|
|
@ -409,6 +413,7 @@ export async function handleContentGenerationRequest(req, res, service, endpoint
|
||||||
service = result.service;
|
service = result.service;
|
||||||
toProvider = result.actualProviderType;
|
toProvider = result.actualProviderType;
|
||||||
actualUuid = result.uuid || pooluuid;
|
actualUuid = result.uuid || pooluuid;
|
||||||
|
actualCustomName = result.serviceConfig?.customName || CONFIG.customName;
|
||||||
|
|
||||||
// 如果发生了模型级别的 fallback,需要更新请求使用的模型
|
// 如果发生了模型级别的 fallback,需要更新请求使用的模型
|
||||||
if (result.actualModel && result.actualModel !== model) {
|
if (result.actualModel && result.actualModel !== model) {
|
||||||
|
|
@ -443,9 +448,9 @@ export async function handleContentGenerationRequest(req, res, service, endpoint
|
||||||
|
|
||||||
// 5. Call the appropriate stream or unary handler, passing the provider info.
|
// 5. Call the appropriate stream or unary handler, passing the provider info.
|
||||||
if (isStream) {
|
if (isStream) {
|
||||||
await handleStreamRequest(res, service, model, processedRequestBody, fromProvider, toProvider, CONFIG.PROMPT_LOG_MODE, PROMPT_LOG_FILENAME, providerPoolManager, actualUuid);
|
await handleStreamRequest(res, service, model, processedRequestBody, fromProvider, toProvider, CONFIG.PROMPT_LOG_MODE, PROMPT_LOG_FILENAME, providerPoolManager, actualUuid, actualCustomName);
|
||||||
} else {
|
} else {
|
||||||
await handleUnaryRequest(res, service, model, processedRequestBody, fromProvider, toProvider, CONFIG.PROMPT_LOG_MODE, PROMPT_LOG_FILENAME, providerPoolManager, actualUuid);
|
await handleUnaryRequest(res, service, model, processedRequestBody, fromProvider, toProvider, CONFIG.PROMPT_LOG_MODE, PROMPT_LOG_FILENAME, providerPoolManager, actualUuid, actualCustomName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -252,7 +252,9 @@ export async function getApiService(config, requestedModel = null, options = {})
|
||||||
serviceConfig = deepmerge(config, selectedProviderConfig);
|
serviceConfig = deepmerge(config, selectedProviderConfig);
|
||||||
delete serviceConfig.providerPools; // 移除 providerPools 属性
|
delete serviceConfig.providerPools; // 移除 providerPools 属性
|
||||||
config.uuid = serviceConfig.uuid;
|
config.uuid = serviceConfig.uuid;
|
||||||
console.log(`[API Service] Using pooled configuration for ${config.MODEL_PROVIDER}: ${serviceConfig.uuid}${requestedModel ? ` (model: ${requestedModel})` : ''}`);
|
config.customName = serviceConfig.customName;
|
||||||
|
const customNameDisplay = serviceConfig.customName ? ` (${serviceConfig.customName})` : '';
|
||||||
|
console.log(`[API Service] Using pooled configuration for ${config.MODEL_PROVIDER}: ${serviceConfig.uuid}${customNameDisplay}${requestedModel ? ` (model: ${requestedModel})` : ''}`);
|
||||||
} else {
|
} else {
|
||||||
const errorMsg = `[API Service] No healthy provider found in pool for ${config.MODEL_PROVIDER}${requestedModel ? ` supporting model: ${requestedModel}` : ''}`;
|
const errorMsg = `[API Service] No healthy provider found in pool for ${config.MODEL_PROVIDER}${requestedModel ? ` supporting model: ${requestedModel}` : ''}`;
|
||||||
console.error(errorMsg);
|
console.error(errorMsg);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue