aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/ChatBox/vectorstore
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/nodes/ChatBox/vectorstore')
-rw-r--r--src/client/views/nodes/ChatBox/vectorstore/VectorstoreUpload.ts45
1 files changed, 35 insertions, 10 deletions
diff --git a/src/client/views/nodes/ChatBox/vectorstore/VectorstoreUpload.ts b/src/client/views/nodes/ChatBox/vectorstore/VectorstoreUpload.ts
index 1f483ad61..5e8e6b23a 100644
--- a/src/client/views/nodes/ChatBox/vectorstore/VectorstoreUpload.ts
+++ b/src/client/views/nodes/ChatBox/vectorstore/VectorstoreUpload.ts
@@ -3,7 +3,11 @@ import { CohereClient } from 'cohere-ai';
import { EmbedResponse } from 'cohere-ai/api';
import dotenv from 'dotenv';
-import { Chunk, AI_Document } from '../types';
+import { Chunk, AI_Document, convertToAIDocument } from '../types';
+import { Doc } from '../../../../../fields/Doc';
+import { DocData } from '../../../../../fields/DocSymbols';
+import { CsvCast, PDFCast, StrCast } from '../../../../../fields/Types';
+import { Networking } from '../../../../Network';
dotenv.config();
@@ -12,7 +16,7 @@ export class Vectorstore {
private index!: Index;
private cohere: CohereClient;
private indexName: string = 'pdf-chatbot';
- private documents: AI_Document[] = [];
+ documents: AI_Document[] = [];
constructor() {
const pineconeApiKey = process.env.PINECONE_API_KEY;
@@ -49,10 +53,35 @@ export class Vectorstore {
this.index = this.pinecone.Index(this.indexName);
}
- async addDocument(document: AI_Document) {
- this.documents.push(document);
- await this.indexDocument(document);
- console.log(`Document added: ${document.file_name}`);
+ async addAIDocs(visible_docs: Doc[]) {
+ console.log('All Docs:', visible_docs);
+ visible_docs?.forEach(async doc => {
+ await this.addAIDoc(doc);
+ });
+ }
+
+ async addAIDoc(doc: Doc) {
+ if (doc[DocData]?.ai_document) {
+ this.documents.push(convertToAIDocument(JSON.parse(StrCast(doc[DocData].ai_document))));
+ console.log(`Document already added: ${doc[DocData].file_name}`);
+ } else {
+ console.log(doc);
+ const local_file_path: string = CsvCast(doc.data)?.url?.pathname ?? PDFCast(doc.data)?.url?.pathname;
+ console.log('Local File Path:', local_file_path);
+ if (local_file_path) {
+ const { document_json } = await Networking.PostToServer('/createDocument', { file_path: local_file_path });
+ console.log('Document JSON:', document_json);
+ const ai_document: AI_Document = convertToAIDocument(document_json);
+ this.documents.push(ai_document);
+ await this.indexDocument(ai_document);
+ console.log(`Document added: ${ai_document.file_name}`);
+ doc[DocData].ai_document = JSON.stringify(document_json);
+ }
+ }
+ }
+
+ getSummaries(): string {
+ return this.documents.map((doc, index) => `${index + 1}) ${doc.summary}`).join('\n') + '\n';
}
private async indexDocument(document: AI_Document) {
@@ -111,8 +140,4 @@ export class Vectorstore {
return [];
}
}
-
- getSummaries(): string {
- return this.documents.map((doc, index) => `${index + 1}) ${doc.summary}`).join('\n') + '\n';
- }
}