Skip to content

Commit ce44dfe

Browse files
authored
Merge pull request #94 from optave/fix/dogfood-incremental-structure
fix: model disposal, roles, incremental builds, docs reorg
2 parents d933c9d + 383e899 commit ce44dfe

3 files changed

Lines changed: 18 additions & 1 deletion

File tree

scripts/embedding-benchmark.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const root = path.resolve(__dirname, '..');
2424
const pkg = JSON.parse(fs.readFileSync(path.join(root, 'package.json'), 'utf8'));
2525
const dbPath = path.join(root, '.codegraph', 'graph.db');
2626

27-
const { buildEmbeddings, MODELS, searchData } = await import(
27+
const { buildEmbeddings, MODELS, searchData, disposeModel } = await import(
2828
new URL('../src/embedder.js', import.meta.url).href
2929
);
3030

@@ -129,6 +129,7 @@ for (const key of modelKeys) {
129129
} catch (err) {
130130
console.error(` FAILED: ${err.message}`);
131131
}
132+
await disposeModel();
132133
}
133134

134135
// Restore console.log for JSON output

src/embedder.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,11 +238,26 @@ async function loadTransformers() {
238238
}
239239
}
240240

241+
/**
242+
* Dispose the current ONNX session and free memory.
243+
* Safe to call when no model is loaded (no-op).
244+
*/
245+
export async function disposeModel() {
246+
if (extractor) {
247+
await extractor.dispose();
248+
extractor = null;
249+
}
250+
activeModel = null;
251+
}
252+
241253
async function loadModel(modelKey) {
242254
const config = getModelConfig(modelKey);
243255

244256
if (extractor && activeModel === config.name) return { extractor, config };
245257

258+
// Dispose previous model before loading a different one
259+
await disposeModel();
260+
246261
const transformers = await loadTransformers();
247262
pipeline = transformers.pipeline;
248263
_cos_sim = transformers.cos_sim;

src/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export {
2121
buildEmbeddings,
2222
cosineSim,
2323
DEFAULT_MODEL,
24+
disposeModel,
2425
EMBEDDING_STRATEGIES,
2526
embed,
2627
estimateTokens,

0 commit comments

Comments
 (0)