Class SampleQueryController


@RestController @RequestMapping("/sample/query") public class SampleQueryController extends UserQueryAbstractController<SampleQueryServiceImpl,SampleQueryDTO>
샘플 질의 컨트롤러

UserQueryAbstractController 를 확장하여 AI 파이프라인 전체를 노출합니다.

 상속 엔드포인트 (UserQueryAbstractController):
   POST /sample/query/stream    → RAG 직접 스트리밍
   POST /sample/query/generate  → RAG 단건 응답
   GET  /sample/query/stop-stream → 스트림 중단
   POST /sample/query/validate  → 질의 유효성 검증

 추가 엔드포인트 (이 컨트롤러):
   POST /sample/query/execute          → 전체 파이프라인 + LLM 단건 응답
   POST /sample/query/execute-stream   → 전체 파이프라인 + LLM 스트리밍
   POST /sample/query/context          → 파이프라인 컨텍스트 조회 (LLM 없음)
   POST /sample/query/save             → 전체 파이프라인 + 단일 타입 파일 저장
   POST /sample/query/save-all         → 전체 파이프라인 + 5개 타입 파일 저장
 
  • Constructor Details

  • Method Details

    • execute

      @PostMapping("/execute") public reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<AiRequestResultVO>> execute(@RequestBody SampleQueryDTO query)
      RAG → Keyword → SearchEngine → LLM 전체 파이프라인을 실행하고 단건 응답을 반환합니다.

      POST /sample/query/execute

      요청 예시:

      
       {
         "queryText": "프로젝트 일정 관리 방법은?",
         "sessionId": "session-001",
         "keywordCount": 3
       }
       
    • executeStream

      @PostMapping(value="/execute-stream", produces="text/event-stream") public reactor.core.publisher.Flux<String> executeStream(@RequestBody SampleQueryDTO query, @RequestParam("streamId") String streamId)
      RAG → Keyword → SearchEngine → LLM 전체 파이프라인을 실행하고 스트리밍 응답을 반환합니다.

      POST /sample/query/execute-stream

    • context

      @PostMapping("/context") public reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<PromptContextVO>> context(@RequestBody SampleQueryDTO query)
      RAG → Keyword → SearchEngine 파이프라인 결과만 반환합니다. LLM 을 호출하지 않습니다.

      POST /sample/query/context

    • save

      @PostMapping("/save") public reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<AiResponseResultVO>> save(@RequestBody SampleQueryDTO query, @RequestParam("outputPath") String outputPath, @RequestParam("outputType") OutputType outputType, @RequestParam(value="fileName",required=false) String fileName)
      전체 파이프라인 실행 후 결과를 지정 타입의 파일로 저장합니다.

      POST /sample/query/save?outputPath=C:\armsinvalid input: '&outputType'=PDFinvalid input: '&fileName'=report

      요청 예시:

      
       {
         "queryText": "요구사항 관리 방법은?",
         "sessionId": "session-001",
         "keywordCount": 3
       }
       
    • saveAll

      @PostMapping("/save-all") public reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<List<AiResponseResultVO>>> saveAll(@RequestBody SampleQueryDTO query, @RequestParam("outputPath") String outputPath, @RequestParam(value="fileName",required=false) String fileName)
      전체 파이프라인 실행 후 결과를 PDF / JSON / Word / PPT / Excel 5가지 타입으로 저장합니다.

      POST /sample/query/save-all?outputPath=C:\armsinvalid input: '&fileName'=report