mirror of
https://github.com/ikechan8370/chatgpt-plugin.git
synced 2025-12-16 21:37:11 +00:00
fix: one more time by codex
This commit is contained in:
parent
2030d629d5
commit
685bb5a5b8
2 changed files with 38 additions and 25 deletions
|
|
@ -605,49 +605,53 @@ function ensureVectorTable (db) {
|
||||||
return Number.isFinite(parsed) && parsed > 0 ? parsed : 0
|
return Number.isFinite(parsed) && parsed > 0 ? parsed : 0
|
||||||
}
|
}
|
||||||
|
|
||||||
let dimension = parseDimension(stored)
|
const storedDimension = parseDimension(stored)
|
||||||
|
let dimension = storedDimension
|
||||||
|
let tablePresent = tableExists
|
||||||
|
|
||||||
let needsTableReset = false
|
let needsTableReset = false
|
||||||
|
if (storedModel && storedModel !== currentModel) {
|
||||||
if (dimension <= 0 && tableExists) {
|
|
||||||
needsTableReset = true
|
needsTableReset = true
|
||||||
|
} else if (!storedModel && tableExists) {
|
||||||
|
// Unknown model metadata but table exists; keep it as-is.
|
||||||
|
dimension = storedDimension
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!storedModel || storedModel !== currentModel) {
|
if (tableExists && storedDimension <= 0) {
|
||||||
|
logger?.warn?.('[Memory] vec_group_facts exists but stored dimension is invalid, rebuilding table')
|
||||||
needsTableReset = true
|
needsTableReset = true
|
||||||
dimension = parseDimension(preferredDimension)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!needsTableReset && preferredDimension > 0 && dimension > 0 && dimension !== preferredDimension) {
|
|
||||||
logger?.info?.('[Memory] vector dimension change detected (stored=%s, preferred=%s), rebuilding vec_group_facts', dimension, preferredDimension)
|
|
||||||
needsTableReset = true
|
|
||||||
dimension = preferredDimension
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dimension <= 0 && preferredDimension > 0) {
|
|
||||||
dimension = preferredDimension
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (needsTableReset && tableExists) {
|
if (needsTableReset && tableExists) {
|
||||||
try {
|
try {
|
||||||
db.exec('DROP TABLE IF EXISTS vec_group_facts')
|
db.exec('DROP TABLE IF EXISTS vec_group_facts')
|
||||||
|
tablePresent = false
|
||||||
|
dimension = 0
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger?.warn?.('[Memory] failed to drop vec_group_facts during model change:', err)
|
logger?.warn?.('[Memory] failed to drop vec_group_facts during model change:', err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let tablePresent = !needsTableReset && tableExists
|
if (!tablePresent) {
|
||||||
if (dimension > 0 && !tablePresent) {
|
if (dimension <= 0) {
|
||||||
try {
|
dimension = parseDimension(preferredDimension)
|
||||||
createVectorTable(db, dimension)
|
|
||||||
tablePresent = true
|
|
||||||
} catch (err) {
|
|
||||||
logger?.error?.('[Memory] failed to (re)create vec_group_facts table:', err)
|
|
||||||
dimension = 0
|
|
||||||
}
|
}
|
||||||
|
if (dimension > 0) {
|
||||||
|
try {
|
||||||
|
createVectorTable(db, dimension)
|
||||||
|
tablePresent = true
|
||||||
|
} catch (err) {
|
||||||
|
logger?.error?.('[Memory] failed to (re)create vec_group_facts table:', err)
|
||||||
|
dimension = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (dimension > 0 && preferredDimension > 0 && dimension !== preferredDimension) {
|
||||||
|
logger?.debug?.('[Memory] vector table dimension (%s) differs from preferred (%s); keeping existing table', dimension, preferredDimension)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const metaDimensionValue = dimension > 0 ? String(dimension) : '0'
|
||||||
setMetaValue(db, META_VECTOR_MODEL_KEY, currentModel)
|
setMetaValue(db, META_VECTOR_MODEL_KEY, currentModel)
|
||||||
setMetaValue(db, META_VECTOR_DIM_KEY, dimension > 0 ? String(dimension) : '0')
|
setMetaValue(db, META_VECTOR_DIM_KEY, metaDimensionValue)
|
||||||
|
|
||||||
cachedVectorDimension = dimension > 0 ? dimension : 0
|
cachedVectorDimension = dimension > 0 ? dimension : 0
|
||||||
cachedVectorModel = currentModel
|
cachedVectorModel = currentModel
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,8 @@ import {
|
||||||
resetMemoryDatabaseInstance,
|
resetMemoryDatabaseInstance,
|
||||||
getSimpleExtensionState,
|
getSimpleExtensionState,
|
||||||
resolvePluginPath,
|
resolvePluginPath,
|
||||||
toPluginRelativePath
|
toPluginRelativePath,
|
||||||
|
resetVectorTableDimension
|
||||||
} from './database.js'
|
} from './database.js'
|
||||||
|
|
||||||
const streamPipeline = promisify(pipeline)
|
const streamPipeline = promisify(pipeline)
|
||||||
|
|
@ -440,6 +441,14 @@ function updateMemoryConfig (payload = {}) {
|
||||||
|
|
||||||
if (nextConfig.vectorDimensions !== previousDimension) {
|
if (nextConfig.vectorDimensions !== previousDimension) {
|
||||||
resetCachedDimension()
|
resetCachedDimension()
|
||||||
|
const targetDimension = Number(nextConfig.vectorDimensions)
|
||||||
|
if (Number.isFinite(targetDimension) && targetDimension > 0) {
|
||||||
|
try {
|
||||||
|
resetVectorTableDimension(targetDimension)
|
||||||
|
} catch (err) {
|
||||||
|
logger?.error?.('[Memory] failed to apply vector dimension change:', err)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const currentSimpleConfig = JSON.stringify(ChatGPTConfig.memory.extensions?.simple || {})
|
const currentSimpleConfig = JSON.stringify(ChatGPTConfig.memory.extensions?.simple || {})
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue