Package com.arms.api.sample.service
Class SampleQueryServiceImpl
java.lang.Object
com.arms.api.sample.service.SampleQueryServiceImpl
- All Implemented Interfaces:
UserQueryService<SampleQueryDTO>
@Service
public class SampleQueryServiceImpl
extends Object
implements UserQueryService<SampleQueryDTO>
샘플 질의 서비스 구현체
UserQueryService<SampleQueryDTO> 를 구현하며,
UserQueryServiceImpl 에 위임하여 AI 파이프라인을 실행합니다.
파이프라인:
SampleQueryDTO.queryText
↓
UserQueryServiceImpl.stream() / generate() ← RAG 직접 응답
UserQueryServiceImpl.execute() ← RAG → Keyword → Search → LLM
UserQueryServiceImpl.executeStream() ← 위 파이프라인 스트리밍
↓
AiResponseService.convert() / convertAll() ← 파일 변환·저장
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionreactor.core.publisher.Mono<PromptContextVO> buildContext(SampleQueryDTO query) RAG → Keyword → SearchEngine 파이프라인 결과만 반환합니다.reactor.core.publisher.Mono<AiRequestResultVO> execute(SampleQueryDTO query) RAG → Keyword → SearchEngine → LLM 전체 파이프라인 실행 후 단건 응답을 반환합니다.reactor.core.publisher.Mono<AiResponseResultVO> executeAndSave(SampleQueryDTO query, String outputPath, OutputType outputType, String fileName) 전체 파이프라인 실행 후 결과를 지정 타입 파일로 저장합니다.reactor.core.publisher.Mono<List<AiResponseResultVO>> executeAndSaveAll(SampleQueryDTO query, String outputPath, String fileName) 전체 파이프라인 실행 후 결과를 PDF / JSON / Word / PPT / Excel 5가지 타입으로 저장합니다.reactor.core.publisher.Flux<String> executeStream(SampleQueryDTO query, String streamId) RAG → Keyword → SearchEngine → LLM 전체 파이프라인 실행 후 스트리밍 응답을 반환합니다.reactor.core.publisher.Mono<String> generate(SampleQueryDTO query) 질의를 AI 파이프라인에 전달하고 완성된 응답을 단건으로 반환합니다.stopStream(String sessionId) 진행 중인 스트림을 sessionId 기준으로 중단합니다.reactor.core.publisher.Flux<String> stream(SampleQueryDTO query) 질의를 AI 파이프라인에 전달하고 응답을 실시간 스트림으로 반환합니다.
-
Constructor Details
-
SampleQueryServiceImpl
public SampleQueryServiceImpl()
-
-
Method Details
-
stream
Description copied from interface:UserQueryService질의를 AI 파이프라인에 전달하고 응답을 실시간 스트림으로 반환합니다.- Specified by:
streamin interfaceUserQueryService<SampleQueryDTO>- Parameters:
query- 사용자 질의 객체- Returns:
- 토큰 단위 스트리밍 응답
-
generate
Description copied from interface:UserQueryService질의를 AI 파이프라인에 전달하고 완성된 응답을 단건으로 반환합니다.- Specified by:
generatein interfaceUserQueryService<SampleQueryDTO>- Parameters:
query- 사용자 질의 객체- Returns:
- 완성된 응답 문자열
-
stopStream
Description copied from interface:UserQueryService진행 중인 스트림을 sessionId 기준으로 중단합니다.- Specified by:
stopStreamin interfaceUserQueryService<SampleQueryDTO>- Parameters:
sessionId- 중단할 스트림의 세션 ID- Returns:
- 처리 결과 메시지
-
execute
RAG → Keyword → SearchEngine → LLM 전체 파이프라인 실행 후 단건 응답을 반환합니다.- Parameters:
query- 샘플 질의 DTO- Returns:
- LLM 최종 응답 결과 VO
-
executeStream
RAG → Keyword → SearchEngine → LLM 전체 파이프라인 실행 후 스트리밍 응답을 반환합니다.- Parameters:
query- 샘플 질의 DTOstreamId- 스트림 중단에 사용할 세션 ID- Returns:
- 토큰 단위 스트리밍 응답
-
buildContext
RAG → Keyword → SearchEngine 파이프라인 결과만 반환합니다. (LLM 호출 없음)- Parameters:
query- 샘플 질의 DTO- Returns:
- 파이프라인 전체 컨텍스트 VO
-
executeAndSave
public reactor.core.publisher.Mono<AiResponseResultVO> executeAndSave(SampleQueryDTO query, String outputPath, OutputType outputType, String fileName) 전체 파이프라인 실행 후 결과를 지정 타입 파일로 저장합니다.- Parameters:
query- 샘플 질의 DTOoutputPath- 저장 디렉터리 경로 (없으면 자동 생성)outputType- 출력 파일 타입fileName- 파일명 (확장자 제외, null 이면 자동 생성)- Returns:
- 파일 변환 결과 VO
-
executeAndSaveAll
public reactor.core.publisher.Mono<List<AiResponseResultVO>> executeAndSaveAll(SampleQueryDTO query, String outputPath, String fileName) 전체 파이프라인 실행 후 결과를 PDF / JSON / Word / PPT / Excel 5가지 타입으로 저장합니다.- Parameters:
query- 샘플 질의 DTOoutputPath- 저장 디렉터리 경로 (없으면 자동 생성)fileName- 파일명 (확장자 제외, null 이면 자동 생성)- Returns:
- 타입별 파일 변환 결과 목록 (5개)
-