Class AiChatController

java.lang.Object
com.arms.api.aichat.controller.AiChatController

@RestController @RequestMapping("/auth-user/api/aichat") public class AiChatController extends Object
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<ChatRoom>>
    createRoom(org.springframework.security.oauth2.core.oidc.user.OidcUser oidcUser, ChatRoomRequest request)
    새 대화방 생성 POST /auth-user/api/aichat/rooms
    reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<Void>>
    deleteLastSelection(org.springframework.security.oauth2.core.oidc.user.OidcUser oidcUser)
    마지막으로 선택한 pdService, pdServiceVersion 삭제 DELETE /auth-user/api/aichat/last-selection
    reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<Void>>
    deleteRoom(org.springframework.security.oauth2.core.oidc.user.OidcUser oidcUser, String roomId)
    대화방 삭제 DELETE /auth-user/api/aichat/rooms/{roomId}
    reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<LastSelectionRequest>>
    findLastSelection(org.springframework.security.oauth2.core.oidc.user.OidcUser oidcUser)
    마지막으로 선택한 pdService, pdServiceVersion 조회 GET /auth-user/api/aichat/last-selection
    reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<RagDocsRequest>>
    roomId별 RAG/Wiki 문서 조회 GET /auth-user/api/aichat/rooms/{roomId}/rag-docs
    reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<List<CardContextItem>>>
    getCardContext(org.springframework.security.oauth2.core.oidc.user.OidcUser oidcUser)
    카드 영역 조회 (입력창 하단, 고정 추천 카드) GET /auth-user/api/aichat/cards/context
    reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<List<ChatMessage>>>
    대화내용 조회 GET /auth-user/api/aichat/rooms/{roomId}/messages
    reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<List<ChatRoom>>>
    getRoom(org.springframework.security.oauth2.core.oidc.user.OidcUser oidcUser)
    대화방 조회(history) GET /auth-user/api/aichat/rooms
    reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<Void>>
    마지막 assistant 메시지 덮어쓰기 (체크박스 재답변용) PUT /auth-user/api/aichat/rooms/{roomId}/messages/last-assistant
    reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<Void>>
    saveLastSelection(org.springframework.security.oauth2.core.oidc.user.OidcUser oidcUser, LastSelectionRequest request)
    마지막으로 선택한 pdService, pdServiceVersion 저장 POST /auth-user/api/aichat/last-selection
    reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<ChatMessage>>
    대화내용 저장 user/assistant POST /auth-user/api/aichat/rooms/{roomId}/messages
    reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<Void>>
    saveRagDocs(String roomId, RagDocsRequest request)
    roomId별 RAG/Wiki 문서 저장 (질문할 때마다 덮어씀) POST /auth-user/api/aichat/rooms/{roomId}/rag-docs
    reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<Void>>
    대화방 제품/버전 정보 업데이트 PATCH /auth-user/api/aichat/rooms/{roomId}

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • AiChatController

      public AiChatController()
  • Method Details

    • createRoom

      @PostMapping("/rooms") public reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<ChatRoom>> createRoom(@AuthenticationPrincipal org.springframework.security.oauth2.core.oidc.user.OidcUser oidcUser, @RequestBody(required=false) ChatRoomRequest request)
      새 대화방 생성 POST /auth-user/api/aichat/rooms
    • updateRoom

      @PatchMapping("/rooms/{roomId}") public reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<Void>> updateRoom(@PathVariable String roomId, @RequestBody ChatRoomUpdateRequest request)
      대화방 제품/버전 정보 업데이트 PATCH /auth-user/api/aichat/rooms/{roomId}
    • replaceLastAssistantMessage

      @PutMapping("/rooms/{roomId}/messages/last-assistant") public reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<Void>> replaceLastAssistantMessage(@PathVariable String roomId, @RequestBody ChatMessageRequest request)
      마지막 assistant 메시지 덮어쓰기 (체크박스 재답변용) PUT /auth-user/api/aichat/rooms/{roomId}/messages/last-assistant
    • saveMessage

      @PostMapping("/rooms/{roomId}/messages") public reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<ChatMessage>> saveMessage(@PathVariable String roomId, @RequestBody ChatMessageRequest request)
      대화내용 저장 user/assistant POST /auth-user/api/aichat/rooms/{roomId}/messages
    • getRoom

      @GetMapping("/rooms") public reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<List<ChatRoom>>> getRoom(@AuthenticationPrincipal org.springframework.security.oauth2.core.oidc.user.OidcUser oidcUser)
      대화방 조회(history) GET /auth-user/api/aichat/rooms
    • getMessages

      @GetMapping("/rooms/{roomId}/messages") public reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<List<ChatMessage>>> getMessages(@PathVariable String roomId)
      대화내용 조회 GET /auth-user/api/aichat/rooms/{roomId}/messages
    • deleteRoom

      @DeleteMapping("/rooms/{roomId}") public reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<Void>> deleteRoom(@AuthenticationPrincipal org.springframework.security.oauth2.core.oidc.user.OidcUser oidcUser, @PathVariable String roomId)
      대화방 삭제 DELETE /auth-user/api/aichat/rooms/{roomId}
    • saveRagDocs

      @PostMapping("/rooms/{roomId}/rag-docs") public reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<Void>> saveRagDocs(@PathVariable String roomId, @RequestBody RagDocsRequest request)
      roomId별 RAG/Wiki 문서 저장 (질문할 때마다 덮어씀) POST /auth-user/api/aichat/rooms/{roomId}/rag-docs
    • findRagDocs

      @GetMapping("/rooms/{roomId}/rag-docs") public reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<RagDocsRequest>> findRagDocs(@PathVariable String roomId)
      roomId별 RAG/Wiki 문서 조회 GET /auth-user/api/aichat/rooms/{roomId}/rag-docs
    • getCardContext

      @GetMapping("/cards/context") public reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<List<CardContextItem>>> getCardContext(@AuthenticationPrincipal org.springframework.security.oauth2.core.oidc.user.OidcUser oidcUser)
      카드 영역 조회 (입력창 하단, 고정 추천 카드) GET /auth-user/api/aichat/cards/context
    • saveLastSelection

      @PostMapping("/last-selection") public reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<Void>> saveLastSelection(@AuthenticationPrincipal org.springframework.security.oauth2.core.oidc.user.OidcUser oidcUser, @RequestBody LastSelectionRequest request)
      마지막으로 선택한 pdService, pdServiceVersion 저장 POST /auth-user/api/aichat/last-selection
    • findLastSelection

      @GetMapping("/last-selection") public reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<LastSelectionRequest>> findLastSelection(@AuthenticationPrincipal org.springframework.security.oauth2.core.oidc.user.OidcUser oidcUser)
      마지막으로 선택한 pdService, pdServiceVersion 조회 GET /auth-user/api/aichat/last-selection
    • deleteLastSelection

      @DeleteMapping("/last-selection") public reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<Void>> deleteLastSelection(@AuthenticationPrincipal org.springframework.security.oauth2.core.oidc.user.OidcUser oidcUser)
      마지막으로 선택한 pdService, pdServiceVersion 삭제 DELETE /auth-user/api/aichat/last-selection