From 03ed2b4129590e137021d3bbe5e45cb0f5422fad Mon Sep 17 00:00:00 2001
From: Marcus Schiesser <mail@marcusschiesser.de>
Date: Fri, 5 Jan 2024 16:54:12 +0700
Subject: [PATCH] feat: add sentenceWindow.ts example

---
 examples/package.json      |  2 +-
 examples/sentenceWindow.ts | 36 ++++++++++++++++++++++++++++++++++++
 packages/core/src/index.ts |  1 +
 3 files changed, 38 insertions(+), 1 deletion(-)
 create mode 100644 examples/sentenceWindow.ts

diff --git a/examples/package.json b/examples/package.json
index d7c4023a1..07e116249 100644
--- a/examples/package.json
+++ b/examples/package.json
@@ -1,7 +1,7 @@
 {
   "version": "0.0.3",
   "private": true,
-  "name": "simple",
+  "name": "examples",
   "dependencies": {
     "@notionhq/client": "^2.2.13",
     "@datastax/astra-db-ts": "^0.1.2",
diff --git a/examples/sentenceWindow.ts b/examples/sentenceWindow.ts
new file mode 100644
index 000000000..66b4fd9ad
--- /dev/null
+++ b/examples/sentenceWindow.ts
@@ -0,0 +1,36 @@
+import {
+  Document,
+  MetadataReplacementPostProcessor,
+  SentenceWindowNodeParser,
+  VectorStoreIndex,
+  serviceContextFromDefaults,
+} from "llamaindex";
+import essay from "./essay";
+
+async function main() {
+  const document = new Document({ text: essay, id_: "essay" });
+
+  // create service context with sentence window parser
+  const nodeParser = new SentenceWindowNodeParser({
+    windowSize: 3,
+    windowMetadataKey: "window",
+    originalTextMetadataKey: "original_text",
+  });
+  const serviceContext = serviceContextFromDefaults({ nodeParser });
+
+  // Split text and create embeddings. Store them in a VectorStoreIndex
+  const index = await VectorStoreIndex.fromDocuments([document], {
+    serviceContext,
+  });
+
+  // Query the index
+  const queryEngine = index.asQueryEngine({
+    nodePostprocessors: [new MetadataReplacementPostProcessor("window")],
+  });
+  const response = await queryEngine.query("What mistakes did they make?");
+
+  // Output response
+  console.log(response.toString());
+}
+
+main().catch(console.error);
diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts
index e995ca015..8676bd393 100644
--- a/packages/core/src/index.ts
+++ b/packages/core/src/index.ts
@@ -18,6 +18,7 @@ export * from "./embeddings";
 export * from "./indices";
 export * from "./llm";
 export * from "./nodeParsers";
+export * from "./postprocessors";
 export * from "./readers/AssemblyAI";
 export * from "./readers/CSVReader";
 export * from "./readers/HTMLReader";
-- 
GitLab