feat(converters): add display_name field to model list responses
Add display_name field to model list conversions across all converter strategies to improve model identification in API responses. ClaudeConverter and GeminiConverter now include display_name in their toOpenAIModelList methods, while OpenAIConverter adds ensureDisplayName method to guarantee the field exists for native OpenAI models.
This commit is contained in:
parent
3ac07f8c3c
commit
60161fd2bc
3 changed files with 38 additions and 13 deletions
|
|
@ -607,12 +607,16 @@ export class ClaudeConverter extends BaseConverter {
|
||||||
toOpenAIModelList(claudeModels) {
|
toOpenAIModelList(claudeModels) {
|
||||||
return {
|
return {
|
||||||
object: "list",
|
object: "list",
|
||||||
data: claudeModels.models.map(m => ({
|
data: claudeModels.models.map(m => {
|
||||||
id: m.id || m.name,
|
const modelId = m.id || m.name;
|
||||||
object: "model",
|
return {
|
||||||
created: Math.floor(Date.now() / 1000),
|
id: modelId,
|
||||||
owned_by: "anthropic",
|
object: "model",
|
||||||
})),
|
created: Math.floor(Date.now() / 1000),
|
||||||
|
owned_by: "anthropic",
|
||||||
|
display_name: modelId,
|
||||||
|
};
|
||||||
|
}),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -289,12 +289,16 @@ export class GeminiConverter extends BaseConverter {
|
||||||
toOpenAIModelList(geminiModels) {
|
toOpenAIModelList(geminiModels) {
|
||||||
return {
|
return {
|
||||||
object: "list",
|
object: "list",
|
||||||
data: geminiModels.models.map(m => ({
|
data: geminiModels.models.map(m => {
|
||||||
id: m.name.startsWith('models/') ? m.name.substring(7) : m.name,
|
const modelId = m.name.startsWith('models/') ? m.name.substring(7) : m.name;
|
||||||
object: "model",
|
return {
|
||||||
created: Math.floor(Date.now() / 1000),
|
id: modelId,
|
||||||
owned_by: "google",
|
object: "model",
|
||||||
})),
|
created: Math.floor(Date.now() / 1000),
|
||||||
|
owned_by: "google",
|
||||||
|
display_name: m.displayName || modelId,
|
||||||
|
};
|
||||||
|
}),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -103,10 +103,27 @@ export class OpenAIConverter extends BaseConverter {
|
||||||
case MODEL_PROTOCOL_PREFIX.GEMINI:
|
case MODEL_PROTOCOL_PREFIX.GEMINI:
|
||||||
return this.toGeminiModelList(data);
|
return this.toGeminiModelList(data);
|
||||||
default:
|
default:
|
||||||
return data;
|
return this.ensureDisplayName(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ensure display_name field exists in OpenAI model list
|
||||||
|
*/
|
||||||
|
ensureDisplayName(openaiModels) {
|
||||||
|
if (!openaiModels || !openaiModels.data) {
|
||||||
|
return openaiModels;
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
...openaiModels,
|
||||||
|
data: openaiModels.data.map(model => ({
|
||||||
|
...model,
|
||||||
|
display_name: model.display_name || model.id,
|
||||||
|
})),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
// OpenAI -> Claude 转换
|
// OpenAI -> Claude 转换
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue