feat: Add Azure AI Search vector store support for TypeScript SDK (#3549)
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
import { Memory } from "../../src";
|
||||
import { runTests } from "../utils/test-utils";
|
||||
|
||||
export async function demoAzureAISearch() {
|
||||
console.log("\n=== Testing Azure AI Search Store ===\n");
|
||||
|
||||
const memory = new Memory({
|
||||
version: "v1.1",
|
||||
embedder: {
|
||||
provider: "openai",
|
||||
config: {
|
||||
apiKey: process.env.OPENAI_API_KEY || "",
|
||||
model: "text-embedding-3-small",
|
||||
},
|
||||
},
|
||||
vectorStore: {
|
||||
provider: "azure-ai-search",
|
||||
config: {
|
||||
collectionName: "memories",
|
||||
serviceName: process.env.AZURE_AI_SEARCH_SERVICE_NAME || "",
|
||||
apiKey: process.env.AZURE_AI_SEARCH_API_KEY,
|
||||
embeddingModelDims: 1536,
|
||||
compressionType: "none", // Options: "none", "scalar", "binary"
|
||||
useFloat16: false,
|
||||
hybridSearch: false,
|
||||
vectorFilterMode: "preFilter", // Options: "preFilter", "postFilter"
|
||||
},
|
||||
},
|
||||
llm: {
|
||||
provider: "openai",
|
||||
config: {
|
||||
apiKey: process.env.OPENAI_API_KEY || "",
|
||||
model: "gpt-4-turbo-preview",
|
||||
},
|
||||
},
|
||||
historyDbPath: "memory.db",
|
||||
});
|
||||
|
||||
await runTests(memory);
|
||||
}
|
||||
|
||||
if (require.main === module) {
|
||||
if (!process.env.AZURE_AI_SEARCH_SERVICE_NAME) {
|
||||
console.log(
|
||||
"\nSkipping Azure AI Search test - AZURE_AI_SEARCH_SERVICE_NAME not set",
|
||||
);
|
||||
console.log("Set environment variables:");
|
||||
console.log(" - AZURE_AI_SEARCH_SERVICE_NAME (required)");
|
||||
console.log(
|
||||
" - AZURE_AI_SEARCH_API_KEY (optional, uses DefaultAzureCredential if not set)",
|
||||
);
|
||||
console.log(" - OPENAI_API_KEY (required for embeddings and LLM)");
|
||||
process.exit(0);
|
||||
}
|
||||
demoAzureAISearch();
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
import dotenv from "dotenv";
|
||||
import { demoMemoryStore } from "./memory";
|
||||
import { demoSupabase } from "./supabase";
|
||||
import { demoAzureAISearch } from "./azure-ai-search";
|
||||
// import { demoQdrant } from "./qdrant";
|
||||
// import { demoRedis } from "./redis";
|
||||
// import { demoPGVector } from "./pgvector";
|
||||
@@ -15,6 +16,7 @@ async function main() {
|
||||
const stores: Record<string, () => Promise<void>> = {
|
||||
// memory: demoMemoryStore,
|
||||
supabase: demoSupabase,
|
||||
"azure-ai-search": demoAzureAISearch,
|
||||
// Uncomment these as they are implemented
|
||||
// qdrant: demoQdrant,
|
||||
// redis: demoRedis,
|
||||
|
||||
Reference in New Issue
Block a user