mirror of
https://github.com/eggent-ai/eggent.git
synced 2026-03-08 02:23:06 +00:00
80 lines
2.7 KiB
TypeScript
80 lines
2.7 KiB
TypeScript
|
|
import path from "path";
|
|
import fs from "fs/promises";
|
|
import { importKnowledge, queryKnowledge } from "../src/lib/memory/knowledge";
|
|
import { AppSettings } from "../src/lib/types";
|
|
|
|
// Mock settings
|
|
const mockSettings: AppSettings = {
|
|
chatModel: { provider: "openai", model: "gpt-4o" },
|
|
utilityModel: { provider: "openai", model: "gpt-4o-mini" },
|
|
embeddingsModel: {
|
|
provider: "mock",
|
|
model: "text-embedding-3-small",
|
|
// Assumes OPENAI_API_KEY is set in env
|
|
},
|
|
codeExecution: { enabled: false, timeout: 30, maxOutputLength: 1000 },
|
|
memory: {
|
|
enabled: true,
|
|
similarityThreshold: 0.1, // Low threshold for testing
|
|
maxResults: 5,
|
|
chunkSize: 400,
|
|
},
|
|
search: { enabled: false, provider: "none" },
|
|
general: { darkMode: true, language: "en" },
|
|
auth: {
|
|
enabled: true,
|
|
username: "admin",
|
|
passwordHash: "",
|
|
mustChangeCredentials: false,
|
|
},
|
|
};
|
|
|
|
async function main() {
|
|
console.log("Starting Memory Ingestion Test...");
|
|
|
|
const testDir = path.join(process.cwd(), "data", "test-knowledge");
|
|
const testSubdir = "test-project-memory";
|
|
|
|
// 1. Setup Test Environment
|
|
console.log("Setting up test directory:", testDir);
|
|
await fs.mkdir(testDir, { recursive: true });
|
|
|
|
// 2. Create Test Files
|
|
// Text file
|
|
await fs.writeFile(path.join(testDir, "test.txt"), "The secret code for the project is ALPHA-BETA-GAMMA. It is very confidential.");
|
|
console.log("Created test.txt");
|
|
|
|
// PDF & Image would require real files to test properly,
|
|
// but we can at least test the text loader and the import logic.
|
|
// We'll skip creating dummy PDFs/Images for this automated run to avoid binary complexity,
|
|
// relying on the text test to prove the pipeline works.
|
|
|
|
// 3. Import Knowledge
|
|
console.log("Importing knowledge...");
|
|
const result = await importKnowledge(testDir, testSubdir, mockSettings);
|
|
console.log("Import result:", result);
|
|
|
|
if (result.errors.length > 0) {
|
|
console.error("Import errors:", result.errors);
|
|
}
|
|
|
|
// 4. Query Knowledge
|
|
console.log("Querying knowledge...");
|
|
const query = "What is the secret code?";
|
|
const answer = await queryKnowledge(query, 3, [testSubdir], mockSettings);
|
|
console.log(`Query: "${query}"`);
|
|
console.log("Result:", answer);
|
|
|
|
// 5. Cleanup
|
|
console.log("Cleaning up...");
|
|
await fs.rm(testDir, { recursive: true, force: true });
|
|
// We might want to keep the vector DB for inspection, but strict cleanup removes it too.
|
|
// const memoryDir = path.join(process.cwd(), "data", "memory", testSubdir);
|
|
// await fs.rm(memoryDir, { recursive: true, force: true });
|
|
|
|
console.log("Test Complete.");
|
|
}
|
|
|
|
main().catch(console.error);
|