UNPKG

lume-ai

Version:

A powerful yet simple library to build your own AI applications.

67 lines (63 loc) 2.08 kB
// =============================== // SECTION | IMPORTS // =============================== import 'dotenv/config' import { describe, test, expect } from '@jest/globals' import { Lume } from '../index' import { OpenAI } from '../llms' import { Memory, Redis, SQLite } from '../histories' // =============================== // =============================== // SECTION | TESTS // =============================== describe('History Tests', () => { test('should store messages in memory', async () => { const lume = new Lume({ llm: new OpenAI(process.env.OPENAI_API_KEY || ''), history: new Memory(), }) 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 store messages in redis', async () => { const lume = new Lume({ llm: new OpenAI(process.env.OPENAI_API_KEY || ''), history: new Redis(), }) 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 store messages in sqlite', async () => { const lume = new Lume({ llm: new OpenAI(process.env.OPENAI_API_KEY || ''), history: new SQLite(), }) 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') }) }) // ===============================