aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/chatbot/tools
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/nodes/chatbot/tools')
-rw-r--r--src/client/views/nodes/chatbot/tools/CreateAnyDocTool.ts11
-rw-r--r--src/client/views/nodes/chatbot/tools/CreateDocumentTool.ts18
2 files changed, 10 insertions, 19 deletions
diff --git a/src/client/views/nodes/chatbot/tools/CreateAnyDocTool.ts b/src/client/views/nodes/chatbot/tools/CreateAnyDocTool.ts
index efc66880f..7ec39704a 100644
--- a/src/client/views/nodes/chatbot/tools/CreateAnyDocTool.ts
+++ b/src/client/views/nodes/chatbot/tools/CreateAnyDocTool.ts
@@ -1,10 +1,10 @@
import { toLower } from 'lodash';
-import { v4 as uuidv4 } from 'uuid';
import { DocumentOptions } from '../../../../documents/Documents';
import { ParametersType } from '../types/tool_types';
import { Observation } from '../types/types';
import { BaseTool } from './BaseTool';
import { supportedDocumentTypes } from './CreateDocumentTool';
+import { Id } from '../../../../../fields/FieldSymbols';
const standardOptions = ['title', 'backgroundColor'];
/**
@@ -76,9 +76,9 @@ const createAnyDocumentToolParams = [
type CreateAnyDocumentToolParamsType = typeof createAnyDocumentToolParams;
export class CreateAnyDocumentTool extends BaseTool<CreateAnyDocumentToolParamsType> {
- private _addLinkedDoc: (doc_type: supportedDocumentTypes, data: unknown, options: DocumentOptions, id: string) => void;
+ private _addLinkedDoc: (doc_type: supportedDocumentTypes, data: unknown, options: DocumentOptions) => void;
- constructor(addLinkedDoc: (doc_type: supportedDocumentTypes, data: unknown, options: DocumentOptions, id: string) => void) {
+ constructor(addLinkedDoc: (doc_type: supportedDocumentTypes, data: unknown, options: DocumentOptions) => void) {
// prettier-ignore
super(
'createAnyDocument',
@@ -113,13 +113,12 @@ export class CreateAnyDocumentTool extends BaseTool<CreateAnyDocumentToolParamsT
throw new Error(`Data is required for ${documentType} documents. ${info.dataDescription}`);
}
- const id = uuidv4();
const options: DocumentOptions = !args.options ? {} : JSON.parse(args.options);
// Call the function to add the linked document (add default title that can be overriden if set in options)
- this._addLinkedDoc(documentType, args.data, { title: `New ${documentType.charAt(0).toUpperCase() + documentType.slice(1)} Document`, ...options }, id);
+ const doc = this._addLinkedDoc(documentType, args.data, { title: `New ${documentType.charAt(0).toUpperCase() + documentType.slice(1)} Document`, ...options });
- return [{ type: 'text', text: `Created ${documentType} document with ID ${id}.` }];
+ return [{ type: 'text', text: `Created ${documentType} document with ID ${doc?.[Id]}.` }];
} catch (error) {
return [{ type: 'text', text: 'Error creating document: ' + (error as Error).message }];
}
diff --git a/src/client/views/nodes/chatbot/tools/CreateDocumentTool.ts b/src/client/views/nodes/chatbot/tools/CreateDocumentTool.ts
index 07b515fea..28c0eb32e 100644
--- a/src/client/views/nodes/chatbot/tools/CreateDocumentTool.ts
+++ b/src/client/views/nodes/chatbot/tools/CreateDocumentTool.ts
@@ -1,8 +1,7 @@
import { BaseTool } from './BaseTool';
import { Observation } from '../types/types';
import { ParametersType } from '../types/tool_types';
-import { DocumentOptions } from '../../../../documents/Documents';
-import { OmitKeys } from '../../../../../ClientUtils';
+import { parsedDoc } from '../chatboxcomponents/ChatBox';
export enum supportedDocumentTypes {
flashcard = 'flashcard',
@@ -360,9 +359,9 @@ type CreateListDocToolParamsType = typeof createListDocToolParams;
// Tool class for creating documents
export class CreateDocTool extends BaseTool<CreateListDocToolParamsType> {
- private _addLinkedDoc: (doc_type: supportedDocumentTypes, data: unknown, options: DocumentOptions) => void;
+ private _addLinkedDoc: (doc: parsedDoc) => void;
- constructor(addLinkedDoc: (doc_type: supportedDocumentTypes, data: unknown, options: DocumentOptions) => void) {
+ constructor(addLinkedDoc: (doc: parsedDoc) => void) {
super(
'createDoc',
`Creates one or more documents that best fit the user’s request.
@@ -394,15 +393,8 @@ export class CreateDocTool extends BaseTool<CreateListDocToolParamsType> {
// Executes the tool logic for creating documents
async execute(args: ParametersType<CreateListDocToolParamsType>): Promise<Observation[]> {
try {
- const parsedDoc = JSON.parse(args.docs) as ({ doc_type: supportedDocumentTypes; data: unknown } & DocumentOptions)[];
- parsedDoc.forEach(
- doc =>
- this._addLinkedDoc(
- doc.doc_type,
- doc.data,
- {...OmitKeys(doc, ["data", "doc_type"]).omit, _layout_fitWidth: false, _layout_autoHeight: true}
- ) // prettier-ignore
- );
+ const parsedDocs = JSON.parse(args.docs) as parsedDoc[];
+ parsedDocs.forEach(doc => this._addLinkedDoc({ ...doc, _layout_fitWidth: false, _layout_autoHeight: true }));
return [{ type: 'text', text: 'Created document.' }];
} catch (error) {
return [{ type: 'text', text: 'Error creating text document, ' + error }];