aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/chatbot/tools/BaseTool.ts
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2024-10-10 18:58:39 -0400
committerbobzel <zzzman@gmail.com>2024-10-10 18:58:39 -0400
commit5752dff8ff7b1b2858542feec0b1bb037461bf1a (patch)
tree04080d4a596b0e5199b5ec95ab625fbb590f2a75 /src/client/views/nodes/chatbot/tools/BaseTool.ts
parent36735ff00a55ae587af5f69eef495533a1f35393 (diff)
parentd347fc59feefd91a796012892da57511787bb6d0 (diff)
Merge branch 'master' into nathan-starter
Diffstat (limited to 'src/client/views/nodes/chatbot/tools/BaseTool.ts')
-rw-r--r--src/client/views/nodes/chatbot/tools/BaseTool.ts32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/client/views/nodes/chatbot/tools/BaseTool.ts b/src/client/views/nodes/chatbot/tools/BaseTool.ts
new file mode 100644
index 000000000..a77f567a5
--- /dev/null
+++ b/src/client/views/nodes/chatbot/tools/BaseTool.ts
@@ -0,0 +1,32 @@
+/**
+ * @file BaseTool.ts
+ * @description This file defines the abstract BaseTool class, which serves as a blueprint
+ * for tool implementations in the AI assistant system. Each tool has a name, description,
+ * parameters, and citation rules. The BaseTool class provides a structure for executing actions
+ * and retrieving action rules for use within the assistant's workflow.
+ */
+
+import { Tool } from '../types/types';
+
+export abstract class BaseTool<T extends Record<string, unknown> = Record<string, unknown>> implements Tool<T> {
+ constructor(
+ public name: string,
+ public description: string,
+ public parameters: Record<string, unknown>,
+ public citationRules: string,
+ public briefSummary: string
+ ) {}
+
+ abstract execute(args: T): Promise<unknown>;
+
+ getActionRule(): Record<string, unknown> {
+ return {
+ [this.name]: {
+ name: this.name,
+ citationRules: this.citationRules,
+ description: this.description,
+ parameters: this.parameters,
+ },
+ };
+ }
+}