Skip to content

Commit

Permalink
fix custom models setting
Browse files Browse the repository at this point in the history
  • Loading branch information
QAbot-zh authored Dec 29, 2024
1 parent e1cb8e3 commit 24ff78e
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 6 deletions.
2 changes: 1 addition & 1 deletion app/api/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
],
)
) {
Expand Down
6 changes: 3 additions & 3 deletions app/utils/model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
};
Expand Down Expand Up @@ -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}`),
};
}
}
Expand Down
16 changes: 14 additions & 2 deletions test/model-available.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand All @@ -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,
Expand Down

0 comments on commit 24ff78e

Please sign in to comment.