0.0.2 • Published 1 year ago

jarvis-kb-nest v0.0.2

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

Installing

Package manager

Using npm:

$ npm install jarvis-kb-nest

Using yarn:

$ yarn add jarvis-kb-nest

Once the package is installed, you can import the library using import:

import { JarvisKBModule } from 'jarvis-kb-nest';

Example

Params
import { ConfigModule, ConfigService } from '@nestjs/config';

const jarvisModuleParams = {
  imports: [ConfigModule],
  inject: [ConfigService],
  useFactory: (configService: ConfigService) => ({
    secretKey: configService.getOrThrow<string>('SECRET_KEY'),
    publicKey: configService.getOrThrow<string>('PUBLIC_KEY'),
  }),
};

export default jarvisModuleParams;
Module
import { Module } from '@nestjs/common';
import { AssistantController } from './assistant.controller';
import { JarvisKBModule } from 'jarvis-kb-nest';
import jarvisModuleParams from './helpers/jarvis-kb-module-params';
import { AssistantService } from './assistant.service';

@Module({
  imports: [JarvisKBModule.forRootAsync(jarvisModuleParams)],
  controllers: [AssistantController],
  providers: [AssistantService],
})
export class AssistantModule {}
Service
import { Injectable } from '@nestjs/common';
import { ThreadRecipe, TokenManager } from 'jarvis-kb-nest';

@Injectable()
export class AssistantService {
  constructor(
    private threadRecipe: ThreadRecipe,
    private tokenManager: TokenManager,
  ) {}

  async createThread(firstMessage?: string) {
    try {
      const thread = await this.threadRecipe.createThread(firstMessage);
      return thread;
    } catch (error) {
      throw error;
    }
  }

  async getThreads() {
    try {
      const threads = await this.threadRecipe.getThreads();
      return threads;
    } catch (error) {
      throw error;
    }
  }

  async retrieveMessage(openAiThreadId: string) {
    try {
      const messages = await this.threadRecipe.retrieveMessage(openAiThreadId);
      return messages;
    } catch (error) {
      throw error;
    }
  }

  async chatWithAssistant(openAiThreadId: string, message: string) {
    try {
      const messages = await this.threadRecipe.doAskAssistant(
        openAiThreadId,
        message,
      );
      return messages;
    } catch (error) {
      throw error;
    }
  }

  generateToken() {
    try {
      const token = this.tokenManager.generateUserToken();
      return token;
    } catch (error) {
      throw error;
    }
  }
}

License

MIT