From 50ee545c9665a685641a6b50bf2f33c27c8cc249 Mon Sep 17 00:00:00 2001 From: Sourabh Desai <sourabhdesai@gmail.com> Date: Thu, 22 Jun 2023 06:59:54 +0000 Subject: [PATCH] add node/doc deserialization --- packages/core/src/Node.ts | 4 +++ packages/core/src/embeddingUtils.ts | 35 +++++++++++++++++++++ packages/core/src/storage/docStore/utils.ts | 6 ++-- 3 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 packages/core/src/embeddingUtils.ts diff --git a/packages/core/src/Node.ts b/packages/core/src/Node.ts index 00a2c7756..1a27ad219 100644 --- a/packages/core/src/Node.ts +++ b/packages/core/src/Node.ts @@ -12,6 +12,10 @@ export enum DocumentRelationship { export class Node implements BaseDocument { relationships: { [key in DocumentRelationship]: string | string[] }; + constructor(relationships: { [key in DocumentRelationship]: string | string[] }) { + this.relationships = relationships; + } + getText(): string { throw new Error("Method not implemented."); } diff --git a/packages/core/src/embeddingUtils.ts b/packages/core/src/embeddingUtils.ts new file mode 100644 index 000000000..90e09e487 --- /dev/null +++ b/packages/core/src/embeddingUtils.ts @@ -0,0 +1,35 @@ +import _ from 'lodash'; +import { VectorStoreQueryMode } from './storage/vectorStore/types'; + +export function getTopKEmbeddings( + queryEmbedding: number[], + embeddings: number[][], + similarityFn?: ((queryEmbedding: number[], emb: number[]) => number), + similarityTopK?: number, + embeddingIds?: number[], + similarityCutoff?: number, +): [number[], number[]] { + throw new Error('Not implemented'); +} + +export function getTopKEmbeddingsLearner( + queryEmbedding: number[], + embeddings: number[][], + similarityTopK?: number, + embeddingIds?: number[], + queryMode: VectorStoreQueryMode = VectorStoreQueryMode.SVM, +): [number[], number[]] { + throw new Error('Not implemented'); +} + +export function getTopKMMREmbeddings( + queryEmbedding: number[], + embeddings: number[][], + similarityFn?: ((queryEmbedding: number[], emb: number[]) => number), + similarityTopK?: number, + embeddingIds?: number[], + similarityCutoff?: number, + mmrThreshold?: number, +): [number[], number[]] { + throw new Error('Not implemented'); +} diff --git a/packages/core/src/storage/docStore/utils.ts b/packages/core/src/storage/docStore/utils.ts index f6f1d23bb..e7667ed5b 100644 --- a/packages/core/src/storage/docStore/utils.ts +++ b/packages/core/src/storage/docStore/utils.ts @@ -1,5 +1,5 @@ import { Node } from "../../Node"; -import { BaseDocument, NodeType } from '../../Document'; +import { BaseDocument, NodeType, Document } from '../../Document'; import { DATA_KEY, TYPE_KEY } from '../constants'; @@ -16,9 +16,9 @@ export function jsonToDoc(docDict: Record<string, any>): BaseDocument { let doc: BaseDocument; if (docType === NodeType.DOCUMENT) { - doc = Document.fromDict(dataDict); + doc = new Document(dataDict.docId, dataDict.text); } else if (docType === NodeType.TEXT) { - doc = Node.fromDict(dataDict); + doc = new Node(dataDict.relationships); } else { throw new Error(`Unknown doc type: ${docType}`); } -- GitLab