aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/ChatBox/tools/DataAnalysisTool.ts
diff options
context:
space:
mode:
authorA.J. Shulman <Shulman.aj@gmail.com>2024-09-07 12:43:05 -0400
committerA.J. Shulman <Shulman.aj@gmail.com>2024-09-07 12:43:05 -0400
commit4791cd23af08da70895204a3a7fbaf889d9af2d5 (patch)
treec4c2534e64724d62bae9152763f1a74cd5a963e0 /src/client/views/nodes/ChatBox/tools/DataAnalysisTool.ts
parent210f8f5f1cd19e9416a12524cce119b273334fd3 (diff)
completely restructured, added comments, and significantly reduced the length of the prompt (~72% shorter and cheaper)
Diffstat (limited to 'src/client/views/nodes/ChatBox/tools/DataAnalysisTool.ts')
-rw-r--r--src/client/views/nodes/ChatBox/tools/DataAnalysisTool.ts59
1 files changed, 0 insertions, 59 deletions
diff --git a/src/client/views/nodes/ChatBox/tools/DataAnalysisTool.ts b/src/client/views/nodes/ChatBox/tools/DataAnalysisTool.ts
deleted file mode 100644
index a12ee46e5..000000000
--- a/src/client/views/nodes/ChatBox/tools/DataAnalysisTool.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-import { BaseTool } from './BaseTool';
-
-export class DataAnalysisTool extends BaseTool<{ csv_file_name: string | string[] }> {
- private csv_files_function: () => { filename: string; id: string; text: string }[];
-
- constructor(csv_files: () => { filename: string; id: string; text: string }[]) {
- super(
- 'dataAnalysis',
- 'Analyzes, and provides insights, from one or more CSV files',
- {
- csv_file_name: {
- type: 'string',
- description: 'Name(s) of the CSV file(s) to analyze',
- required: 'true',
- max_inputs: '3',
- },
- },
- 'Provide the name(s) of up to 3 CSV files to analyze based on the user query and whichever available CSV files may be relevant.',
- 'Provides the full CSV file text for your analysis based on the user query and the available CSV file(s). '
- );
- this.csv_files_function = csv_files;
- }
-
- getFileContent(filename: string): string | undefined {
- const files = this.csv_files_function();
- const file = files.find(f => f.filename === filename);
- return file?.text;
- }
-
- getFileID(filename: string): string | undefined {
- const files = this.csv_files_function();
- const file = files.find(f => f.filename === filename);
- return file?.id;
- }
-
- async execute(args: { csv_file_name: string | string[] }): Promise<any> {
- const filenames = Array.isArray(args.csv_file_name) ? args.csv_file_name : [args.csv_file_name];
- const results = [];
-
- for (const filename of filenames) {
- const fileContent = this.getFileContent(filename);
- const fileID = this.getFileID(filename);
-
- if (fileContent && fileID) {
- results.push({
- type: 'text',
- text: `<chunk chunk_id=${fileID} chunk_type=csv>${fileContent}</chunk>`,
- });
- } else {
- results.push({
- type: 'text',
- text: `File not found: ${filename}`,
- });
- }
- }
-
- return results;
- }
-}