fix: llm-info preferred provider (#7962)
* fix: llm-info preferred provider * fix: cubic feedback
This commit is contained in:
@@ -213,7 +213,7 @@ export abstract class BaseLLM implements ILLM {
|
||||
this.providerName === "continue-proxy"
|
||||
? this.model?.split("/").pop() || this.model
|
||||
: this.model;
|
||||
const llmInfo = findLlmInfo(modelSearchString);
|
||||
const llmInfo = findLlmInfo(modelSearchString, this.underlyingProviderName);
|
||||
|
||||
const templateType =
|
||||
options.template ?? autodetectTemplateType(options.model);
|
||||
|
||||
@@ -10,7 +10,7 @@ import { OpenAi } from "./providers/openai.js";
|
||||
import { Vllm } from "./providers/vllm.js";
|
||||
import { Voyage } from "./providers/voyage.js";
|
||||
import { xAI } from "./providers/xAI.js";
|
||||
import { LlmInfo, ModelProvider, UseCase } from "./types.js";
|
||||
import { LlmInfoWithProvider, ModelProvider, UseCase } from "./types.js";
|
||||
|
||||
export const allModelProviders: ModelProvider[] = [
|
||||
OpenAi,
|
||||
@@ -27,16 +27,32 @@ export const allModelProviders: ModelProvider[] = [
|
||||
xAI,
|
||||
];
|
||||
|
||||
export const allLlms: LlmInfo[] = allModelProviders.flatMap((provider) =>
|
||||
provider.models.map((model) => ({ ...model, provider: provider.id })),
|
||||
export const allLlms: LlmInfoWithProvider[] = allModelProviders.flatMap(
|
||||
(provider) =>
|
||||
provider.models.map((model) => ({ ...model, provider: provider.id })),
|
||||
);
|
||||
|
||||
export function findLlmInfo(model: string): LlmInfo | undefined {
|
||||
export function findLlmInfo(
|
||||
model: string,
|
||||
preferProviderId?: string,
|
||||
): LlmInfoWithProvider | undefined {
|
||||
if (preferProviderId) {
|
||||
const provider = allModelProviders.find((p) => p.id === preferProviderId);
|
||||
const info = provider?.models.find((llm) =>
|
||||
llm.regex ? llm.regex.test(model) : llm.model === model,
|
||||
);
|
||||
if (info) {
|
||||
return {
|
||||
...info,
|
||||
provider: preferProviderId,
|
||||
};
|
||||
}
|
||||
}
|
||||
return allLlms.find((llm) =>
|
||||
llm.regex ? llm.regex.test(model) : llm.model === model,
|
||||
);
|
||||
}
|
||||
|
||||
export function getAllRecommendedFor(useCase: UseCase): LlmInfo[] {
|
||||
export function getAllRecommendedFor(useCase: UseCase): LlmInfoWithProvider[] {
|
||||
return allLlms.filter((llm) => llm.recommendedFor?.includes(useCase));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user