forked from mosaicstack/stack
29 lines
876 B
TypeScript
29 lines
876 B
TypeScript
import { Global, Module } from '@nestjs/common';
|
|
import { createMemory, type Memory, createMemoryAdapter, type MemoryAdapter } from '@mosaic/memory';
|
|
import type { Db } from '@mosaic/db';
|
|
import { DB } from '../database/database.module.js';
|
|
import { MEMORY } from './memory.tokens.js';
|
|
import { MemoryController } from './memory.controller.js';
|
|
import { EmbeddingService } from './embedding.service.js';
|
|
|
|
export const MEMORY_ADAPTER = 'MEMORY_ADAPTER';
|
|
|
|
@Global()
|
|
@Module({
|
|
providers: [
|
|
{
|
|
provide: MEMORY,
|
|
useFactory: (db: Db): Memory => createMemory(db),
|
|
inject: [DB],
|
|
},
|
|
{
|
|
provide: MEMORY_ADAPTER,
|
|
useFactory: (): MemoryAdapter => createMemoryAdapter({ type: 'pgvector' }),
|
|
},
|
|
EmbeddingService,
|
|
],
|
|
controllers: [MemoryController],
|
|
exports: [MEMORY, MEMORY_ADAPTER, EmbeddingService],
|
|
})
|
|
export class MemoryModule {}
|