lume-ai
Version:
A powerful yet simple library to build your own AI applications.
76 lines (72 loc) • 2.44 kB
text/typescript
// ===============================
// SECTION | IMPORTS
// ===============================
import 'dotenv/config'
import { describe, test, expect } from '@jest/globals'
import { Lume } from '../index'
import { OpenAI } from '../llms'
import path from 'path'
import { Pinecone, Qdrant, Vectra } from '../vector-dbs'
// ===============================
// ===============================
// SECTION | TESTS
// ===============================
describe('Vector DB Tests', () => {
test('should use Vectra as the vector database', async () => {
const lume = new Lume({
llm: new OpenAI(process.env.OPENAI_API_KEY || ''),
vectorDB: new Vectra(path.join(__dirname, 'index')),
})
const response1 = await lume.chat('Hello, my name is John', {
tags: ['user-1'],
})
console.log('AI Response:', response1)
expect(response1).toBeDefined()
const response2 = await lume.chat('What is my name?', {
tags: ['user-1'],
})
console.log('AI Response:', response2)
expect(response2).toContain('John')
})
test('should use Pinecone as the vector database', async () => {
const lume = new Lume({
llm: new OpenAI(process.env.OPENAI_API_KEY || ''),
vectorDB: new Pinecone({
apiKey: process.env.PINECONE_API_KEY || '',
indexName: 'test',
namespace: 'test-namespace',
}),
})
const response1 = await lume.chat('Hello, my name is John', {
tags: ['user-1'],
})
console.log('AI Response:', response1)
expect(response1).toBeDefined()
const response2 = await lume.chat('What is my name?', {
tags: ['user-1'],
})
console.log('AI Response:', response2)
expect(response2).toContain('John')
})
test('should use Qdrant as the vector database', async () => {
const lume = new Lume({
llm: new OpenAI(process.env.OPENAI_API_KEY || ''),
vectorDB: new Qdrant({
apiKey: process.env.QDRANT_API_KEY || '',
collectionName: 'test',
url: process.env.QDRANT_ENDPOINT || '',
}),
})
const response1 = await lume.chat('Hello, my name is John', {
tags: ['user-1'],
})
console.log('AI Response:', response1)
expect(response1).toBeDefined()
const response2 = await lume.chat('What is my name?', {
tags: ['user-1'],
})
console.log('AI Response:', response2)
expect(response2).toContain('John')
})
})
// ===============================