26 lines
930 B
JavaScript
26 lines
930 B
JavaScript
const { VectorStore } = require('../src/vectorStore');
|
|
const { answerQuestion } = require('../src/agent');
|
|
const { embed } = require('../src/utils');
|
|
|
|
describe('Agent', () => {
|
|
let store;
|
|
|
|
beforeAll(async () => {
|
|
store = new VectorStore();
|
|
await store.init('agent_test_collection');
|
|
const docs = [
|
|
{ text: 'ChromaDB is a vector database.', id: 'doc1' },
|
|
{ text: 'It supports similarity search.', id: 'doc2' }
|
|
];
|
|
const embeddings = docs.map(d => embed(d.text));
|
|
const metadatas = docs.map(d => ({ id: d.id, text: d.text }));
|
|
await store.add(embeddings, metadatas, docs.map(d => d.id));
|
|
});
|
|
|
|
test('provides answer based on context', async () => {
|
|
const question = 'What is ChromaDB?';
|
|
const answer = await answerQuestion(question, store);
|
|
expect(answer).toContain('ChromaDB is a vector database.');
|
|
expect(answer).toContain('It supports similarity search.');
|
|
});
|
|
}); |