xiongzhu 2 роки тому
батько
коміт
66306d6090

+ 4 - 1
src/paper/entities/paper-order.entity.ts

@@ -1,9 +1,10 @@
+import { JsonTransformer } from '../../transformers/json.transformer'
 import { Column, CreateDateColumn, Entity, PrimaryGeneratedColumn } from 'typeorm'
 
 export enum PaperOrderStatus {
     Pending = 'pending',
     Generating = 'generating',
-    Complete = 'complete' 
+    Complete = 'complete'
 }
 
 @Entity()
@@ -32,4 +33,6 @@ export class PaperOrder {
     @Column({ type: 'enum', enum: PaperOrderStatus, default: PaperOrderStatus.Pending })
     status: PaperOrderStatus
 
+    @Column({ type: 'longtext', nullable: true, transformer: new JsonTransformer() })
+    outline?: any
 }

+ 5 - 0
src/paper/paper.controller.ts

@@ -38,4 +38,9 @@ export class PaperController {
     async gen(@Param('id') id: string) {
         return await this.paperService.gen(Number(id))
     }
+
+    @Post('/orders/:id/genChapters')
+    async genChapters(@Param('id') id: string) {
+        return await this.paperService.genChapters(Number(id))
+    }
 }

+ 9 - 0
src/paper/paper.service.ts

@@ -8,6 +8,8 @@ import { PageRequest } from 'src/common/dto/page-request'
 import { CreatePaperOrderDto } from './dto/create-order.dto'
 import { genPaper } from './paper-gen'
 import { genGeneralPaper, genGeneralPaper1 } from './paper-gen/general'
+import { createLLM } from './paper-gen/llm'
+import { genChapters } from './paper-gen/chapter'
 
 @Injectable()
 export class PaperService implements OnModuleInit {
@@ -67,6 +69,13 @@ export class PaperService implements OnModuleInit {
         this.genPaper(order)
     }
 
+    async genChapters(id: number) {
+        const order = await this.findOrderById(id)
+        const tools = createLLM('gpt-3.5-turbo')
+        const chapters = await genChapters(tools, order.major, order.title, order.description)
+        return chapters
+    }
+
     async genPaper(order: PaperOrder) {
         try {
             let content, duration, tokenUsage, fileUrl