Package com.arms.api.sample.controller
Class SampleQueryController
java.lang.Object
com.arms.egovframework.javaservice.aigenerate.l_query.controller.UserQueryAbstractController<SampleQueryServiceImpl,SampleQueryDTO>
com.arms.api.sample.controller.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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionreactor.core.publisher.Mono<org.springframework.http.ResponseEntity<PromptContextVO>> context(SampleQueryDTO query) RAG → Keyword → SearchEngine 파이프라인 결과만 반환합니다.reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<AiRequestResultVO>> execute(SampleQueryDTO query) RAG → Keyword → SearchEngine → LLM 전체 파이프라인을 실행하고 단건 응답을 반환합니다.reactor.core.publisher.Flux<String> executeStream(SampleQueryDTO query, String streamId) RAG → Keyword → SearchEngine → LLM 전체 파이프라인을 실행하고 스트리밍 응답을 반환합니다.reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<AiResponseResultVO>> save(SampleQueryDTO query, String outputPath, OutputType outputType, String fileName) 전체 파이프라인 실행 후 결과를 지정 타입의 파일로 저장합니다.reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<List<AiResponseResultVO>>> saveAll(SampleQueryDTO query, String outputPath, String fileName) 전체 파이프라인 실행 후 결과를 PDF / JSON / Word / PPT / Excel 5가지 타입으로 저장합니다.Methods inherited from class com.arms.egovframework.javaservice.aigenerate.l_query.controller.UserQueryAbstractController
getQueryService, queryGenerate, queryStream, setQueryService, stopStream, validateQuery
-
Constructor Details
-
SampleQueryController
-
-
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
-