From 51106a701c5b94b50c8eb548082b26300df2055a Mon Sep 17 00:00:00 2001 From: pelikhan Date: Tue, 16 Jul 2024 08:57:40 +0200 Subject: [PATCH] fix model propagagtion --- package.json | 1 + packages/cli/src/run.ts | 2 +- packages/core/src/host.ts | 2 -- packages/core/src/promptcontext.ts | 19 ++++++++++++------- packages/core/src/vectorsearch.ts | 2 +- 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 6ec57c0c02..c3d5c0c8e9 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "compile-ext": "yarn --cwd packages/core run prompts:bundle && yarn --cwd packages/vscode run compile", "compile-cli": "yarn --cwd packages/cli run compile", "compile": "yarn compile-ext && yarn compile-cli && yarn test:fix", + "compile-debug": "yarn --cwd packages/cli run compile-debug", "go": "cd packages/cli && yarn go", "token": "cd packages/sample && yarn token", "typecheck": "yarn --cwd packages/core run typecheck && yarn --cwd packages/vscode run typecheck && yarn --cwd packages/cli run typecheck", diff --git a/packages/cli/src/run.ts b/packages/cli/src/run.ts index 752e9ca332..91322647c9 100644 --- a/packages/cli/src/run.ts +++ b/packages/cli/src/run.ts @@ -166,7 +166,7 @@ export async function runScript( if (options.label) trace.heading(2, options.label) const { info } = await resolveModelConnectionInfo(script, { trace, - model: options.model ?? host.defaultModelOptions.model, + model: options.model ?? script.model ?? host.defaultModelOptions.model, }) if (info.error) { trace.error(undefined, info.error) diff --git a/packages/core/src/host.ts b/packages/core/src/host.ts index 470bca9bef..8c09c2c6b9 100644 --- a/packages/core/src/host.ts +++ b/packages/core/src/host.ts @@ -52,8 +52,6 @@ export interface ResponseStatus { } export interface RetrievalSearchOptions extends VectorSearchOptions { - topK?: number - minScore?: number } export interface RetrievalSearchResponse extends ResponseStatus { diff --git a/packages/core/src/promptcontext.ts b/packages/core/src/promptcontext.ts index b2d6a11525..e4d7be153e 100644 --- a/packages/core/src/promptcontext.ts +++ b/packages/core/src/promptcontext.ts @@ -7,7 +7,13 @@ import { tracePromptResult, } from "./chat" import { host } from "./host" -import { HTMLEscape, arrayify, dotGenaiscriptPath, logVerbose } from "./util" +import { + HTMLEscape, + arrayify, + dotGenaiscriptPath, + logVerbose, + sha256string, +} from "./util" import { RetrievalSearchResponse, runtimeHost } from "./host" import { MarkdownTrace } from "./trace" import { YAMLParse, YAMLStringify } from "./yaml" @@ -154,7 +160,7 @@ export function createPromptContext( }, vectorSearch: async (q, files_, searchOptions) => { const files = arrayify(files_).map(toWorkspaceFile) - searchOptions = searchOptions || {} + searchOptions = { ...(searchOptions || {}) } try { trace.startDetails( `🔍 vector search ${HTMLEscape(q)}` @@ -165,19 +171,18 @@ export function createPromptContext( } await resolveFileContents(files) - const embeddingsModel = + searchOptions.embeddingsModel = searchOptions?.embeddingsModel ?? options?.embeddingsModel ?? host.defaultEmbeddingsModelOptions.embeddingsModel - const folderPath = dotGenaiscriptPath( - "vectors", - embeddingsModel + const key = await sha256string( + JSON.stringify({ files, searchOptions }) ) + const folderPath = dotGenaiscriptPath("vectors", key) const res = await vectorSearch(q, files, { ...searchOptions, folderPath, trace, - embeddingsModel, }) // search trace.files(res, { diff --git a/packages/core/src/vectorsearch.ts b/packages/core/src/vectorsearch.ts index 8faf8eca39..3c74f8cdc7 100644 --- a/packages/core/src/vectorsearch.ts +++ b/packages/core/src/vectorsearch.ts @@ -32,7 +32,7 @@ class OpenAIEmbeddings implements EmbeddingsModel { this.cache = JSONLineCache.byName< EmbeddingsCacheKey, EmbeddingsResponse - >(dotGenaiscriptPath("cache", "embeddings")) + >("embeddings") } maxTokens = 512