Skip to content

Commit dcaf723

Browse files
committed
updated rerank and embed logic
1 parent 5886841 commit dcaf723

File tree

4 files changed

+40
-122
lines changed

4 files changed

+40
-122
lines changed

core/config/load.ts

Lines changed: 39 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import {
88
ConfigValidationError,
99
ModelRole,
1010
} from "@continuedev/config-yaml";
11-
import { fetchwithRequestOptions } from "@continuedev/fetch";
1211
import * as JSONC from "comment-json";
1312
import * as tar from "tar";
1413

@@ -37,17 +36,15 @@ import {
3736
slashCommandFromDescription,
3837
slashFromCustomCommand,
3938
} from "../commands/index";
40-
import { AllRerankers } from "../context/allRerankers";
4139
import { MCPManagerSingleton } from "../context/mcp";
4240
import CodebaseContextProvider from "../context/providers/CodebaseContextProvider";
4341
import ContinueProxyContextProvider from "../context/providers/ContinueProxyContextProvider";
4442
import CustomContextProviderClass from "../context/providers/CustomContextProvider";
4543
import FileContextProvider from "../context/providers/FileContextProvider";
4644
import { contextProviderClassFromName } from "../context/providers/index";
4745
import { useHub } from "../control-plane/env";
48-
import { allEmbeddingsProviders } from "../indexing/allEmbeddingsProviders";
4946
import { BaseLLM } from "../llm";
50-
import { llmFromDescription } from "../llm/llms";
47+
import { LLMClasses, llmFromDescription } from "../llm/llms";
5148
import CustomLLMClass from "../llm/llms/CustomLLM";
5249
import FreeTrial from "../llm/llms/FreeTrial";
5350
import { LLMReranker } from "../llm/llms/llm";
@@ -420,39 +417,32 @@ async function intermediateToFinalConfig(
420417
function getEmbeddingsILLM(
421418
embedConfig: EmbeddingsProviderDescription | ILLM | undefined,
422419
): ILLM | null {
423-
if (!embedConfig) {
424-
return null;
425-
}
426-
// config.ts-injected ILLM
427-
if ("providerName" in embedConfig) {
428-
return embedConfig;
429-
}
430-
const { provider, ...options } = embedConfig;
431-
const embeddingsProviderClass = allEmbeddingsProviders[provider];
432-
if (embeddingsProviderClass) {
433-
if (
434-
embeddingsProviderClass.name === "_TransformersJsEmbeddingsProvider"
435-
) {
436-
return new embeddingsProviderClass();
420+
if (embedConfig) {
421+
// config.ts-injected ILLM
422+
if ("providerName" in embedConfig) {
423+
return embedConfig;
424+
}
425+
const { provider, ...options } = embedConfig;
426+
if (provider === "transformers.js") {
427+
return new TransformersJsEmbeddingsProvider();
437428
} else {
438-
const llmOptions: LLMOptions = {
439-
model: options.model ?? "UNSPECIFIED",
440-
...options,
441-
};
442-
return new embeddingsProviderClass(
443-
llmOptions,
444-
(url: string | URL, init: any) =>
445-
fetchwithRequestOptions(url, init, {
446-
...config.requestOptions,
447-
...options.requestOptions,
448-
}),
449-
);
429+
const cls = LLMClasses.find((c) => c.providerName === provider);
430+
if (cls) {
431+
const llmOptions: LLMOptions = {
432+
model: options.model ?? "UNSPECIFIED",
433+
...options,
434+
};
435+
return new cls(llmOptions);
436+
} else {
437+
errors.push({
438+
fatal: false,
439+
message: `Embeddings provider ${provider} not found`,
440+
});
441+
}
450442
}
451-
} else {
452-
errors.push({
453-
fatal: false,
454-
message: `Embeddings provider ${provider} not found. Using default`,
455-
});
443+
}
444+
if (ideInfo.ideType === "vscode") {
445+
return new TransformersJsEmbeddingsProvider();
456446
}
457447
return null;
458448
}
@@ -470,7 +460,6 @@ async function intermediateToFinalConfig(
470460
return rerankingConfig;
471461
}
472462
const { name, params } = config.reranker as RerankerDescription;
473-
const rerankerClass = AllRerankers[name];
474463

475464
if (name === "llm") {
476465
const llm = models.find((model) => model.title === params?.modelTitle);
@@ -483,17 +472,20 @@ async function intermediateToFinalConfig(
483472
} else {
484473
return new LLMReranker(llm);
485474
}
486-
} else if (rerankerClass) {
487-
const llmOptions: LLMOptions = {
488-
model: "rerank-2",
489-
...params,
490-
};
491-
return new rerankerClass(llmOptions, (url: string | URL, init: any) =>
492-
fetchwithRequestOptions(url, init, {
493-
...config.requestOptions,
494-
...params?.requestOptions,
495-
}),
496-
);
475+
} else {
476+
const cls = LLMClasses.find((c) => c.providerName === name);
477+
if (cls) {
478+
const llmOptions: LLMOptions = {
479+
model: params?.model,
480+
...params,
481+
};
482+
return new cls(llmOptions);
483+
} else {
484+
errors.push({
485+
fatal: false,
486+
message: `Unknown reranking provider ${name}`,
487+
});
488+
}
497489
}
498490
return null;
499491
}

core/config/yaml/loadYaml.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ async function configYamlToContinueConfig(
243243
}
244244

245245
if (model.roles?.includes("embed")) {
246-
const { provider, ...options } = model;
246+
const { provider } = model;
247247
if (provider === "transformers.js") {
248248
if (ideInfo.ideType === "vscode") {
249249
continueConfig.modelsByRole.embed.push(

core/context/allRerankers.ts

Lines changed: 0 additions & 21 deletions
This file was deleted.

core/indexing/allEmbeddingsProviders.ts

Lines changed: 0 additions & 53 deletions
This file was deleted.

0 commit comments

Comments
 (0)