Chai.new is liveSign up now

Retrieve Memories using multiple filters

This example demonstrates how to retrieve memories from Langbase with multiple filters.


Retrieve from a Memory Example

Retrieve from a Memory Example

/**
 * 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
 * - 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 primitive 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: "memory-sdk",
				filters: [
					"And", [
						["company", "Eq", "Langbase"],
						["Or", [
							["category", "Eq", "docs"],
							["category", "Eq", "examples"]
						]],
						["primitive", "In", ["Chunk", "Threads"]]
					]
				]
			}
		],
		query: "What are primitives in Langbase?",
		topK: 3
	});

	console.log(response);
}

main();