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) {
|
||||
return {
|
||||
object: "list",
|
||||
data: claudeModels.models.map(m => ({
|
||||
id: m.id || m.name,
|
||||
object: "model",
|
||||
created: Math.floor(Date.now() / 1000),
|
||||
owned_by: "anthropic",
|
||||
})),
|
||||
data: claudeModels.models.map(m => {
|
||||
const modelId = m.id || m.name;
|
||||
return {
|
||||
id: modelId,
|
||||
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) {
|
||||
return {
|
||||
object: "list",
|
||||
data: geminiModels.models.map(m => ({
|
||||
id: m.name.startsWith('models/') ? m.name.substring(7) : m.name,
|
||||
object: "model",
|
||||
created: Math.floor(Date.now() / 1000),
|
||||
owned_by: "google",
|
||||
})),
|
||||
data: geminiModels.models.map(m => {
|
||||
const modelId = m.name.startsWith('models/') ? m.name.substring(7) : m.name;
|
||||
return {
|
||||
id: modelId,
|
||||
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:
|
||||
return this.toGeminiModelList(data);
|
||||
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 转换
|
||||
// =========================================================================
|
||||
|
|
|
|||
Loading…
Reference in a new issue