nestjs-generative-ai
v1.0.4
Published
A selection of useful one-liner decorators, pipes and services to boost your NestJS APIs with Generative AI sweetness
Downloads
3
Maintainers
Readme
About The Project
Features
- Payload Validation: Reject payload data, for instance for freetext form fields, which don't match specifications with
@AISpecifications
- Payload Suggestion: Generate feedback for unmet specifications on payload data, through clarifying questions for the user, with
@AIFeedback
- Document Summary: Get a 5 sentences summary along any uploaded document with
AISummarizeDocumentPipe
... and more to come!
Getting Started
Prerequisites
This lib was tested only on and thus require Node.js >=21.6.1, NestJS ^10.3.3
You will also need both the library and class-transformer
and @nestjs/config
to make the magic happen
Installation
# with npm
npm install nestjs-generative-ai
# with yarn
yarn add nestjs-generative-ai
# with pnpm
pnpm add nestjs-generative-ai
Configuration
Configure the library in the module you want to use it in. If you want to use it globally, configure it in the main app module.
The library currently only works with OpenAI so you will need to set the OPENAI_API_KEY
which you will find on OpenAI's website and set in your environment variables.
import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { GenerativeAIModule } from 'nestjs-generative-ai';
@Module({
imports: [
ConfigModule.forRoot(),
GenerativeAIModule.forRootAsync({
imports: [ConfigModule],
useFactory: async (configService: ConfigService) => ({
modelApiKey: configService.get('OPENAI_API_KEY') as string,
}),
inject: [ConfigService],
}),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
If you also want to enable validation globally, you should configure the ValidationPipe
in your main.ts
file
import { ValidationPipe } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.useGlobalPipes(new ValidationPipe({ transform: true }));
await app.listen(3000);
}
bootstrap();
Usage
FAQs
No FAQ at the moment
Roadmap
- [x] Add first 3 decorators and services
- [ ] Allow customizing the chosen LLM
- [ ] Allow customizing the prompt used for a specific decorator instance or globally
- [ ] Add new awesome decorators and services?
Contributing
We are just getting started on this project and would highly appreciate contributions
License
Distributed under the MIT License. See LICENSE for more information.