fix custom models setting

This commit is contained in:
Q.A.zh 2024-12-29 06:45:58 +00:00 committed by GitHub
parent e1cb8e36fa
commit 24ff78e1c5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 18 additions and 6 deletions

View File

@ -124,7 +124,7 @@ export async function requestOpenai(req: NextRequest) {
[
ServiceProvider.OpenAI,
ServiceProvider.Azure,
jsonBody?.model as string, // support provider-unspecified model
"custom" as string, // support provider-unspecified model
],
)
) {

View File

@ -66,8 +66,8 @@ export function collectModelTable(
// default models
models.forEach((m) => {
// using <modelName>@<providerId> as fullName
modelTable[`${m.name}@${m?.provider?.id}`] = {
// using <modelName>@<providerType> as fullName
modelTable[`${m.name}@${m?.provider?.providerType}`] = {
...m,
displayName: m.name, // 'provider' is copied over if it exists
};
@ -126,7 +126,7 @@ export function collectModelTable(
displayName: displayName || customModelName,
available,
provider, // Use optional chaining
sorted: CustomSeq.next(`${customModelName}@${provider?.id}`),
sorted: CustomSeq.next(`${customModelName}@${provider?.providerType}`),
};
}
}

View File

@ -53,7 +53,7 @@ describe("isModelNotavailableInServer", () => {
expect(result).toBe(true);
});
// FIXME: 这个测试用例有问题,需要修复
// FIXME: 这个测试用例有问题,需要修复
// test("support passing multiple providers, model available on one of the providers will return false", () => {
// const customModels = "-all,gpt-4@google";
// const modelName = "gpt-4";
@ -69,7 +69,19 @@ describe("isModelNotavailableInServer", () => {
test("test custom model without setting provider", () => {
const customModels = "-all,mistral-large";
const modelName = "mistral-large";
const providerNames = modelName;
const providerNames = "custom";
const result = isModelNotavailableInServer(
customModels,
modelName,
providerNames,
);
expect(result).toBe(false);
});
test("test custom model with non-standard provider", () => {
const customModels = "-all,deepseek-chat@DeepSeek";
const modelName = "deepseek-chat";
const providerNames = "custom";
const result = isModelNotavailableInServer(
customModels,
modelName,