From a6002e368b2eb450ebf27bb19bf0953f9cec0975 Mon Sep 17 00:00:00 2001 From: arre_ankit Date: Thu, 27 Mar 2025 03:51:37 +0530 Subject: [PATCH 1/6] =?UTF-8?q?=F0=9F=91=8C=20IMPROVE:=20memory=20example?= =?UTF-8?q?=20with=20filters?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../memory/memory.retrieve.filters.And.ts | 26 ++++++++++++++++ .../memory/memory.retrieve.filters.Eq.ts | 23 ++++++++++++++ .../memory/memory.retrieve.filters.In.ts | 23 ++++++++++++++ .../memory/memory.retrieve.filters.NotEq.ts | 23 ++++++++++++++ .../memory/memory.retrieve.filters.NotIn.ts | 23 ++++++++++++++ .../memory/memory.retrieve.filters.Or.ts | 30 +++++++++++++++++++ 6 files changed, 148 insertions(+) create mode 100644 examples/nodejs/examples/memory/memory.retrieve.filters.And.ts create mode 100644 examples/nodejs/examples/memory/memory.retrieve.filters.Eq.ts create mode 100644 examples/nodejs/examples/memory/memory.retrieve.filters.In.ts create mode 100644 examples/nodejs/examples/memory/memory.retrieve.filters.NotEq.ts create mode 100644 examples/nodejs/examples/memory/memory.retrieve.filters.NotIn.ts create mode 100644 examples/nodejs/examples/memory/memory.retrieve.filters.Or.ts diff --git a/examples/nodejs/examples/memory/memory.retrieve.filters.And.ts b/examples/nodejs/examples/memory/memory.retrieve.filters.And.ts new file mode 100644 index 0000000..de96039 --- /dev/null +++ b/examples/nodejs/examples/memory/memory.retrieve.filters.And.ts @@ -0,0 +1,26 @@ +import 'dotenv/config'; +import {Langbase} from 'langbase'; + +const langbase = new Langbase({ + apiKey: process.env.LANGBASE_API_KEY!, +}); + +async function main() { + const response = await langbase.memories.retrieve({ + memory: [ + { + name: "langbase-docs", + filters:["And", [ + ["company", "Eq", "Langbase"], + ["category", "Eq", "docs"] + ]] + }, + ], + query: "What are pipes in Langbase Docs?", + topK: 5 + }); + + console.log(response); +} + +main(); diff --git a/examples/nodejs/examples/memory/memory.retrieve.filters.Eq.ts b/examples/nodejs/examples/memory/memory.retrieve.filters.Eq.ts new file mode 100644 index 0000000..3e434a2 --- /dev/null +++ b/examples/nodejs/examples/memory/memory.retrieve.filters.Eq.ts @@ -0,0 +1,23 @@ +import 'dotenv/config'; +import {Langbase} from 'langbase'; + +const langbase = new Langbase({ + apiKey: process.env.LANGBASE_API_KEY!, +}); + +async function main() { + const response = await langbase.memories.retrieve({ + memory: [ + { + name: "langbase-docs", + filters: ["company", "Eq", "Langbase"], + }, + ], + query: "What is Langbase?", + topK: 5 + }); + + console.log(response); +} + +main(); diff --git a/examples/nodejs/examples/memory/memory.retrieve.filters.In.ts b/examples/nodejs/examples/memory/memory.retrieve.filters.In.ts new file mode 100644 index 0000000..9b21b40 --- /dev/null +++ b/examples/nodejs/examples/memory/memory.retrieve.filters.In.ts @@ -0,0 +1,23 @@ +import 'dotenv/config'; +import {Langbase} from 'langbase'; + +const langbase = new Langbase({ + apiKey: process.env.LANGBASE_API_KEY!, +}); + +async function main() { + const response = await langbase.memories.retrieve({ + memory: [ + { + name: "langbase-docs", + filters: ["company", "In", ["Langbase","Google"]], + }, + ], + query: "What are pipes in Langbase?", + topK: 5 + }); + + console.log(response); +} + +main(); diff --git a/examples/nodejs/examples/memory/memory.retrieve.filters.NotEq.ts b/examples/nodejs/examples/memory/memory.retrieve.filters.NotEq.ts new file mode 100644 index 0000000..d6794af --- /dev/null +++ b/examples/nodejs/examples/memory/memory.retrieve.filters.NotEq.ts @@ -0,0 +1,23 @@ +import 'dotenv/config'; +import {Langbase} from 'langbase'; + +const langbase = new Langbase({ + apiKey: process.env.LANGBASE_API_KEY!, +}); + +async function main() { + const response = await langbase.memories.retrieve({ + memory: [ + { + name: "langbase-docs", + filters: ["company", "NotEq", "Google"], + }, + ], + query: "What is Langbase?", + topK: 5 + }); + + console.log(response); +} + +main(); diff --git a/examples/nodejs/examples/memory/memory.retrieve.filters.NotIn.ts b/examples/nodejs/examples/memory/memory.retrieve.filters.NotIn.ts new file mode 100644 index 0000000..6a8a66d --- /dev/null +++ b/examples/nodejs/examples/memory/memory.retrieve.filters.NotIn.ts @@ -0,0 +1,23 @@ +import 'dotenv/config'; +import {Langbase} from 'langbase'; + +const langbase = new Langbase({ + apiKey: process.env.LANGBASE_API_KEY!, +}); + +async function main() { + const response = await langbase.memories.retrieve({ + memory: [ + { + name: "langbase-docs", + filters: ["company", "NotIn", "Google"], + }, + ], + query: "What are pipes in Langbase?", + topK: 5 + }); + + console.log(response); +} + +main(); diff --git a/examples/nodejs/examples/memory/memory.retrieve.filters.Or.ts b/examples/nodejs/examples/memory/memory.retrieve.filters.Or.ts new file mode 100644 index 0000000..080c6d8 --- /dev/null +++ b/examples/nodejs/examples/memory/memory.retrieve.filters.Or.ts @@ -0,0 +1,30 @@ +import 'dotenv/config'; +import {Langbase} from 'langbase'; + +const langbase = new Langbase({ + apiKey: process.env.LANGBASE_API_KEY!, +}); + +async function main() { + const response = await langbase.memories.retrieve({ + memory: [ + { + name: "langbase-docs", + filters: ["And", [ + ["company", "Eq", "Langbase"], + ["Or", [ + ["category", "Eq", "docs"], + ["category", "Eq", "examples"] + ]], + ["primative", "In", ["Chunk", "Threads"]] + ]] + } + ], + query: "What are primitives in Langbase?", + topK: 5 + }); + + console.log(response); +} + +main(); From b8bc15a0ad87be827db77a14060c0764fbcf2234 Mon Sep 17 00:00:00 2001 From: arre_ankit Date: Thu, 27 Mar 2025 04:00:40 +0530 Subject: [PATCH 2/6] =?UTF-8?q?=F0=9F=90=9B=20FIX:=20package.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/nodejs/package.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/examples/nodejs/package.json b/examples/nodejs/package.json index 46b7d59..03f17ba 100644 --- a/examples/nodejs/package.json +++ b/examples/nodejs/package.json @@ -13,6 +13,12 @@ "memory.list": "npx tsx ./examples/memory/memory.list.ts", "memory.delete": "npx tsx ./examples/memory/memory.delete.ts", "memory.retrieve": "npx tsx ./examples/memory/memory.retrieve.ts", + "memory.retrieve.filters.In": "npx tsx ./examples/memory/memory.retrieve.filters.In.ts", + "memory.retrieve.filters.NotIn": "npx tsx ./examples/memory/memory.retrieve.filters.NotIn.ts", + "memory.retrieve.filters.Eq": "npx tsx ./examples/memory/memory.retrieve.filters.Eq.ts", + "memory.retrieve.filters.NotEq": "npx tsx ./examples/memory/memory.retrieve.filters.NotEq.ts", + "memory.retrieve.filters.Or": "npx tsx ./examples/memory/memory.retrieve.filters.Or.ts", + "memory.retrieve.filters.And": "npx tsx ./examples/memory/memory.retrieve.filters.And.ts", "memory.docs.list": "npx tsx ./examples/memory/memory.docs.list.ts", "memory.docs.delete": "npx tsx ./examples/memory/memory.docs.delete.ts", "memory.docs.upload": "npx tsx ./examples/memory/memory.docs.upload.ts", From 20c222010d55156996b857d8d2aabac0746a7c30 Mon Sep 17 00:00:00 2001 From: arre_ankit Date: Thu, 27 Mar 2025 04:45:56 +0530 Subject: [PATCH 3/6] =?UTF-8?q?=F0=9F=90=9B=20FIX:=20comments=20for=20filt?= =?UTF-8?q?er=20examples?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../memory/memory.retrieve.filters.And.ts | 14 ++++++ .../memory/memory.retrieve.filters.Eq.ts | 12 +++++ .../memory/memory.retrieve.filters.In.ts | 12 +++++ .../memory/memory.retrieve.filters.NotEq.ts | 12 +++++ .../memory/memory.retrieve.filters.NotIn.ts | 12 +++++ .../memory/memory.retrieve.filters.Or.ts | 30 ------------ .../memory.retrieve.filters.advanced.ts | 48 +++++++++++++++++++ 7 files changed, 110 insertions(+), 30 deletions(-) delete mode 100644 examples/nodejs/examples/memory/memory.retrieve.filters.Or.ts create mode 100644 examples/nodejs/examples/memory/memory.retrieve.filters.advanced.ts diff --git a/examples/nodejs/examples/memory/memory.retrieve.filters.And.ts b/examples/nodejs/examples/memory/memory.retrieve.filters.And.ts index de96039..e80c54a 100644 --- a/examples/nodejs/examples/memory/memory.retrieve.filters.And.ts +++ b/examples/nodejs/examples/memory/memory.retrieve.filters.And.ts @@ -1,3 +1,17 @@ +/** + * Basic example to demonstrate how to retrieve memories with filters. + * + * - And: This filter is used to retrieve memories that match all the filters. + * - Eq: This filter is used to retrieve memories that match the exact value. + * + * In this example, we retrieve memories with the following filters: + * - company: Langbase + * - category: docs + * + * We expect to get all chunks of memory from the Langbase Docs memory that have the company Langbase and the category docs. + * + */ + import 'dotenv/config'; import {Langbase} from 'langbase'; diff --git a/examples/nodejs/examples/memory/memory.retrieve.filters.Eq.ts b/examples/nodejs/examples/memory/memory.retrieve.filters.Eq.ts index 3e434a2..94afd18 100644 --- a/examples/nodejs/examples/memory/memory.retrieve.filters.Eq.ts +++ b/examples/nodejs/examples/memory/memory.retrieve.filters.Eq.ts @@ -1,3 +1,15 @@ +/** + * Basic example to demonstrate how to retrieve memories with filters. + * + * - Eq: This filter is used to retrieve memories that match the exact value. + * + * In this example, we retrieve memories with the following filters: + * - company: Langbase + * + * We expect to get all chunks of memory from the Langbase Docs memory that have the company Langbase. + * + */ + import 'dotenv/config'; import {Langbase} from 'langbase'; diff --git a/examples/nodejs/examples/memory/memory.retrieve.filters.In.ts b/examples/nodejs/examples/memory/memory.retrieve.filters.In.ts index 9b21b40..58e2114 100644 --- a/examples/nodejs/examples/memory/memory.retrieve.filters.In.ts +++ b/examples/nodejs/examples/memory/memory.retrieve.filters.In.ts @@ -1,3 +1,15 @@ +/** + * Basic example to demonstrate how to retrieve memories with filters. + * + * - In: This filter is used to retrieve memories that match any of the value/values in the array. + * + * In this example, we retrieve memories with the following filters: + * - company: Langbase or Google + * + * We expect to get all chunks of memory from the Langbase Docs memory that have the company Langbase or Google. + * + */ + import 'dotenv/config'; import {Langbase} from 'langbase'; diff --git a/examples/nodejs/examples/memory/memory.retrieve.filters.NotEq.ts b/examples/nodejs/examples/memory/memory.retrieve.filters.NotEq.ts index d6794af..c98c476 100644 --- a/examples/nodejs/examples/memory/memory.retrieve.filters.NotEq.ts +++ b/examples/nodejs/examples/memory/memory.retrieve.filters.NotEq.ts @@ -1,3 +1,15 @@ +/** + * Basic example to demonstrate how to retrieve memories with filters. + * + * - NotEq: This filter is used to retrieve memories that do not match the exact value. + * + * In this example, we retrieve memories with the following filters: + * - company: Langbase + * + * We expect to get all chunks of memory from the Langbase Docs memory that do not have the company Langbase. + * + */ + import 'dotenv/config'; import {Langbase} from 'langbase'; diff --git a/examples/nodejs/examples/memory/memory.retrieve.filters.NotIn.ts b/examples/nodejs/examples/memory/memory.retrieve.filters.NotIn.ts index 6a8a66d..85e3703 100644 --- a/examples/nodejs/examples/memory/memory.retrieve.filters.NotIn.ts +++ b/examples/nodejs/examples/memory/memory.retrieve.filters.NotIn.ts @@ -1,3 +1,15 @@ +/** + * Basic example to demonstrate how to retrieve memories with filters. + * + * - NotIn: This filter is used to retrieve memories that do not match any of the value/values in the array. + * + * In this example, we retrieve memories with the following filters: + * - company: Google + * + * We expect to get all chunks of memory from the Langbase Docs memory that do not have the company Google. + * + */ + import 'dotenv/config'; import {Langbase} from 'langbase'; diff --git a/examples/nodejs/examples/memory/memory.retrieve.filters.Or.ts b/examples/nodejs/examples/memory/memory.retrieve.filters.Or.ts deleted file mode 100644 index 080c6d8..0000000 --- a/examples/nodejs/examples/memory/memory.retrieve.filters.Or.ts +++ /dev/null @@ -1,30 +0,0 @@ -import 'dotenv/config'; -import {Langbase} from 'langbase'; - -const langbase = new Langbase({ - apiKey: process.env.LANGBASE_API_KEY!, -}); - -async function main() { - const response = await langbase.memories.retrieve({ - memory: [ - { - name: "langbase-docs", - filters: ["And", [ - ["company", "Eq", "Langbase"], - ["Or", [ - ["category", "Eq", "docs"], - ["category", "Eq", "examples"] - ]], - ["primative", "In", ["Chunk", "Threads"]] - ]] - } - ], - query: "What are primitives in Langbase?", - topK: 5 - }); - - console.log(response); -} - -main(); diff --git a/examples/nodejs/examples/memory/memory.retrieve.filters.advanced.ts b/examples/nodejs/examples/memory/memory.retrieve.filters.advanced.ts new file mode 100644 index 0000000..aef8922 --- /dev/null +++ b/examples/nodejs/examples/memory/memory.retrieve.filters.advanced.ts @@ -0,0 +1,48 @@ +/** + * Advanced example to demonstrate how to retrieve memories with filters. + * + * - And: This filter is used to retrieve memories that match all the filters. + * - Or: This filter is used to retrieve memories that match any of the filters. + * - In: This filter is used to retrieve memories that match any of the value/values in the array. + * - Eq: This filter is used to retrieve memories that match the exact value. + * + * In this example, we retrieve memories with the following filters: + * - company: Langbase + * - category: docs or examples + * - primative: Chunk or Threads + * + * We expect to get all chunks of memory from the Langbase Docs memory + * that have the company Langbase, the category docs or examples, and the primative can be Chunk or Threads. + * +*/ + +import 'dotenv/config'; +import {Langbase} from 'langbase'; + +const langbase = new Langbase({ + apiKey: process.env.LANGBASE_API_KEY!, +}); + +async function main() { + const response = await langbase.memories.retrieve({ + memory: [ + { + name: "langbase-docs", + filters: ["And", [ + ["company", "Eq", "Langbase"], + ["Or", [ + ["category", "Eq", "docs"], + ["category", "Eq", "examples"] + ]], + ["primative", "In", ["Chunk", "Threads"]] + ]] + } + ], + query: "What are primitives in Langbase?", + topK: 5 + }); + + console.log(response); +} + +main(); From 4276b1431ca8db550e633961064918412fc8fdb7 Mon Sep 17 00:00:00 2001 From: arre_ankit Date: Thu, 27 Mar 2025 05:24:59 +0530 Subject: [PATCH 4/6] =?UTF-8?q?=F0=9F=90=9B=20FIX:=20formatting=20issue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nodejs/examples/memory/memory.retrieve.filters.And.ts | 8 ++++---- .../examples/memory/memory.retrieve.filters.advanced.ts | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/nodejs/examples/memory/memory.retrieve.filters.And.ts b/examples/nodejs/examples/memory/memory.retrieve.filters.And.ts index e80c54a..312184b 100644 --- a/examples/nodejs/examples/memory/memory.retrieve.filters.And.ts +++ b/examples/nodejs/examples/memory/memory.retrieve.filters.And.ts @@ -24,10 +24,10 @@ async function main() { memory: [ { name: "langbase-docs", - filters:["And", [ - ["company", "Eq", "Langbase"], - ["category", "Eq", "docs"] - ]] + filters: ["And", [ + ["company", "Eq", "Langbase"], + ["category", "Eq", "docs"] + ]] }, ], query: "What are pipes in Langbase Docs?", diff --git a/examples/nodejs/examples/memory/memory.retrieve.filters.advanced.ts b/examples/nodejs/examples/memory/memory.retrieve.filters.advanced.ts index aef8922..3276529 100644 --- a/examples/nodejs/examples/memory/memory.retrieve.filters.advanced.ts +++ b/examples/nodejs/examples/memory/memory.retrieve.filters.advanced.ts @@ -9,10 +9,10 @@ * In this example, we retrieve memories with the following filters: * - company: Langbase * - category: docs or examples - * - primative: Chunk or Threads + * - primitive: Chunk or Threads * * We expect to get all chunks of memory from the Langbase Docs memory - * that have the company Langbase, the category docs or examples, and the primative can be Chunk or Threads. + * that have the company Langbase, the category docs or examples, and the primitive can be Chunk or Threads. * */ @@ -34,7 +34,7 @@ async function main() { ["category", "Eq", "docs"], ["category", "Eq", "examples"] ]], - ["primative", "In", ["Chunk", "Threads"]] + ["primitive", "In", ["Chunk", "Threads"]] ]] } ], From 146c7eec54b6a85a1026b62236befede7e8f312e Mon Sep 17 00:00:00 2001 From: arre_ankit Date: Thu, 27 Mar 2025 05:28:38 +0530 Subject: [PATCH 5/6] =?UTF-8?q?=F0=9F=90=9B=20FIX:=20formatting=20issue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../memory/memory.retrieve.filters.advanced.ts | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/examples/nodejs/examples/memory/memory.retrieve.filters.advanced.ts b/examples/nodejs/examples/memory/memory.retrieve.filters.advanced.ts index 3276529..731c606 100644 --- a/examples/nodejs/examples/memory/memory.retrieve.filters.advanced.ts +++ b/examples/nodejs/examples/memory/memory.retrieve.filters.advanced.ts @@ -28,14 +28,16 @@ async function main() { memory: [ { name: "langbase-docs", - filters: ["And", [ - ["company", "Eq", "Langbase"], - ["Or", [ - ["category", "Eq", "docs"], - ["category", "Eq", "examples"] - ]], - ["primitive", "In", ["Chunk", "Threads"]] - ]] + filters: [ + "And", [ + ["company", "Eq", "Langbase"], + ["Or", [ + ["category", "Eq", "docs"], + ["category", "Eq", "examples"] + ]], + ["primitive", "In", ["Chunk", "Threads"]] + ] + ] } ], query: "What are primitives in Langbase?", From 3eee906ffc56177f5f6a384fa34b3487e9072994 Mon Sep 17 00:00:00 2001 From: arre_ankit Date: Thu, 27 Mar 2025 05:46:36 +0530 Subject: [PATCH 6/6] =?UTF-8?q?=F0=9F=90=9B=20FIX:=20package.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/nodejs/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/nodejs/package.json b/examples/nodejs/package.json index 03f17ba..539386d 100644 --- a/examples/nodejs/package.json +++ b/examples/nodejs/package.json @@ -18,7 +18,7 @@ "memory.retrieve.filters.Eq": "npx tsx ./examples/memory/memory.retrieve.filters.Eq.ts", "memory.retrieve.filters.NotEq": "npx tsx ./examples/memory/memory.retrieve.filters.NotEq.ts", "memory.retrieve.filters.Or": "npx tsx ./examples/memory/memory.retrieve.filters.Or.ts", - "memory.retrieve.filters.And": "npx tsx ./examples/memory/memory.retrieve.filters.And.ts", + "memory.retrieve.filters.advanced": "npx tsx ./examples/memory/memory.retrieve.filters.advanced.ts", "memory.docs.list": "npx tsx ./examples/memory/memory.docs.list.ts", "memory.docs.delete": "npx tsx ./examples/memory/memory.docs.delete.ts", "memory.docs.upload": "npx tsx ./examples/memory/memory.docs.upload.ts",