mirror of
https://github.com/ikechan8370/chatgpt-plugin.git
synced 2025-12-16 13:27:08 +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
|
||||
}
|
||||
|
||||
let dimension = parseDimension(stored)
|
||||
const storedDimension = parseDimension(stored)
|
||||
let dimension = storedDimension
|
||||
let tablePresent = tableExists
|
||||
|
||||
let needsTableReset = false
|
||||
|
||||
if (dimension <= 0 && tableExists) {
|
||||
if (storedModel && storedModel !== currentModel) {
|
||||
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
|
||||
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) {
|
||||
try {
|
||||
db.exec('DROP TABLE IF EXISTS vec_group_facts')
|
||||
tablePresent = false
|
||||
dimension = 0
|
||||
} catch (err) {
|
||||
logger?.warn?.('[Memory] failed to drop vec_group_facts during model change:', err)
|
||||
}
|
||||
}
|
||||
|
||||
let tablePresent = !needsTableReset && tableExists
|
||||
if (dimension > 0 && !tablePresent) {
|
||||
try {
|
||||
createVectorTable(db, dimension)
|
||||
tablePresent = true
|
||||
} catch (err) {
|
||||
logger?.error?.('[Memory] failed to (re)create vec_group_facts table:', err)
|
||||
dimension = 0
|
||||
if (!tablePresent) {
|
||||
if (dimension <= 0) {
|
||||
dimension = parseDimension(preferredDimension)
|
||||
}
|
||||
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_DIM_KEY, dimension > 0 ? String(dimension) : '0')
|
||||
setMetaValue(db, META_VECTOR_DIM_KEY, metaDimensionValue)
|
||||
|
||||
cachedVectorDimension = dimension > 0 ? dimension : 0
|
||||
cachedVectorModel = currentModel
|
||||
|
|
|
|||
|
|
@ -18,7 +18,8 @@ import {
|
|||
resetMemoryDatabaseInstance,
|
||||
getSimpleExtensionState,
|
||||
resolvePluginPath,
|
||||
toPluginRelativePath
|
||||
toPluginRelativePath,
|
||||
resetVectorTableDimension
|
||||
} from './database.js'
|
||||
|
||||
const streamPipeline = promisify(pipeline)
|
||||
|
|
@ -440,6 +441,14 @@ function updateMemoryConfig (payload = {}) {
|
|||
|
||||
if (nextConfig.vectorDimensions !== previousDimension) {
|
||||
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 || {})
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue