diff --git a/packages/basic.gblib/services/SystemKeywords.ts b/packages/basic.gblib/services/SystemKeywords.ts index d0c39e96..0b213fcc 100644 --- a/packages/basic.gblib/services/SystemKeywords.ts +++ b/packages/basic.gblib/services/SystemKeywords.ts @@ -750,7 +750,7 @@ export class SystemKeywords { public async saveToStorageBatch({ pid, table, rows }): Promise { const { min } = await DialogKeywords.getProcessInfo(pid); - if (typeof rows === 'object' && rows !== null) { + if (!Array.isArray(data) && typeof rows === 'object' && rows !== null) { rows = [rows]; } diff --git a/packages/llm.gblib/services/ChatServices.ts b/packages/llm.gblib/services/ChatServices.ts index 79421740..12625e94 100644 --- a/packages/llm.gblib/services/ChatServices.ts +++ b/packages/llm.gblib/services/ChatServices.ts @@ -545,12 +545,20 @@ export class ChatServices { } else if (LLMMode === 'sql' || LLMMode === 'chart') { const con = min[`llm`]['gbconnection']; const dialect = con['storageDriver']; + + const answerSource = await (min.core as any)['getParam'](min.instance, + 'Answer Source', false); let dataSource; - if (dialect === 'sqlite') { + if (dialect === 'sqlite' || answerSource === 'cache') { + + let sqliteFilePath = answerSource === 'cache' ? + path.join('work', GBUtil.getGBAIPath(min.botId), `${con['name']}.sqlite`): + con['storageFile']; + dataSource = new DataSource({ type: 'sqlite', - database: con['storageFile'], + database: sqliteFilePath, synchronize: false, logging: true }); diff --git a/templates/talk-to-data.gbai/talk-to-data.gbot/config.csv b/templates/talk-to-data.gbai/talk-to-data.gbot/config.csv index 11fdc433..49fd29eb 100644 --- a/templates/talk-to-data.gbai/talk-to-data.gbot/config.csv +++ b/templates/talk-to-data.gbai/talk-to-data.gbot/config.csv @@ -1,6 +1,7 @@ name,value Admin, 5521999998888 Answer Mode,sql +Answer Source,cache llm File,northwind.db llm Driver,sqlite Theme Color,red \ No newline at end of file