fix(llm.gblib): Talk to data local db use fix.

This commit is contained in:
Rodrigo Rodriguez 2024-11-28 11:13:01 -03:00
parent c62db78e48
commit 5e8e3cbea3
3 changed files with 13 additions and 8 deletions

View file

@ -676,6 +676,7 @@ export class GBDeployer implements IGBDeployer {
let con = {}; let con = {};
con['name'] = connectionName; con['name'] = connectionName;
con['storageDriver'] = min.core.getParam<string>(min.instance, `${connectionName} Driver`, null); con['storageDriver'] = min.core.getParam<string>(min.instance, `${connectionName} Driver`, null);
con['storageTables'] = min.core.getParam<string>(min.instance, `${connectionName} Tables`, null);
const storageName = min.core.getParam<string>(min.instance, `${connectionName} Name`, null); const storageName = min.core.getParam<string>(min.instance, `${connectionName} Name`, null);
let file = min.core.getParam<string>(min.instance, `${connectionName} File`, null); let file = min.core.getParam<string>(min.instance, `${connectionName} File`, null);

View file

@ -539,6 +539,8 @@ export class ChatServices {
} else if (LLMMode === 'sql' || LLMMode === 'chart') { } else if (LLMMode === 'sql' || LLMMode === 'chart') {
const con = min[`llm`]['gbconnection']; const con = min[`llm`]['gbconnection'];
const dialect = con['storageDriver']; const dialect = con['storageDriver'];
let tables = con['storageTables'];
tables = tables ? tables.split(';') : null;
const answerSource = await (min.core as any)['getParam'](min.instance, const answerSource = await (min.core as any)['getParam'](min.instance,
'Answer Source', 'server'); 'Answer Source', 'server');
@ -613,14 +615,14 @@ export class ChatServices {
SQL QUERY:`); SQL QUERY:`);
/** /**
* Create a new RunnableSequence where we pipe the output from `db.getTableInfo()` * Create a new RunnableSequence.
*/ */
const sqlQueryChain = RunnableSequence.from([ const sqlQueryChain = RunnableSequence.from([
{ {
schema: async () => db.getTableInfo(), schema: async () => db.getTableInfo(tables),
question: (input: { question: string }) => input.question, question: (input: { question: string }) => input.question,
top_k: () => 10, top_k: () => 10,
table_info: () => 'any' table_info: () => 'any',
}, },
prompt, prompt,
model, model,
@ -659,12 +661,13 @@ export class ChatServices {
query: sqlQueryChain query: sqlQueryChain
}, },
{ {
schema: async () => db.getTableInfo(), schema: async () => db.getTableInfo(tables),
question: input => input.question, question: input => input.question,
query: input => input.query, query: input => input.query,
response: input => db.run(input.query), response: input => db.run(input.query),
top_k: () => 10, top_k: () => 10,
table_info: () => 'any' table_info: () => 'any',
table_names_to_use: () => tables
}, },
{ {
result: finalResponsePrompt.pipe(model).pipe( result: finalResponsePrompt.pipe(model).pipe(

View file

@ -3,4 +3,5 @@ Admin, 5521999998888
Answer Mode,chart Answer Mode,chart
llm File,northwind.db llm File,northwind.db
llm Driver,sqlite llm Driver,sqlite
llm Tables,Products;Orders;Customers;Categories;Order Details
Theme Color,red Theme Color,red
1 name value
3 Answer Mode chart
4 llm File northwind.db
5 llm Driver sqlite
6 llm Tables Products;Orders;Customers;Categories;Order Details
7 Theme Color red