Description 이슈 배경
AI 서버(n8n webhook)와 연동하여 링크 최초 요약 및 요약 재생성 기능을 수행하는 클라이언트를 구현함.
기존 Mock 구현체를 제거하고 Feign Client 를 통해 실제 외부 API를 호출하도록 변경함.
이슈 내용
1. API 명세 구현 (RagSummaryClient)
A. 최초 요약 요청 (generateSummary)
Endpoint : POST /webhook/summary-initial
Request :
{
"linkId" : 103 ,
"userId" : 2 ,
"title" : " Spring Boot 공식문서" ,
"url" : " https://..." ,
"memo" : " 3.2 릴리스 노트"
}
Response : SummarizeRes (JSON Array)
List 형태 로 반환
summary: 새로 생성된 요약.
[
{
"summary" : " **Spring Boot 리뷰**\n\n 스프링 부트는 쉽게 서빙을 위한..."
}
]
B. 요약 재생성 요청 (regenerateSummary)
Endpoint : POST /webhook/summary-resummarize
동작 : 새로 생성된 요약문과 기존 요약 대비 차이점을 반환함.
Request
linkId: 링크 ID (Integer).
userId: 요청한 사용자 ID (Integer).
url: 원본 링크 URL (String).
summary: 기존 요약 내용 (String) - AI가 이전 내용과 비교하기 위해 필요함.
{
"linkId" : 103 ,
"userId" : 1 ,
"url" : " https://spring.io/projects/spring-boot" ,
"summary" : " 기존 요약 내용입니다..."
}
Response : ReSummarizeRes (JSON Array)
List 형태 로 반환
summary: 새로 생성된 요약.
difference: 기존 요약과의 차이점 또는 개선된 점.
[
{
"summary" : " **Spring Boot 리뷰**\n\n 스프링 부트는 쉽게 서빙을 위한..." ,
"difference" : " 요약된 텍스트는 이전보다 더 자세하고 구조화된 정보를 제공합니다."
}
]
2. 서비스 로직 구현
RealAiSummaryClient: AiSummaryClient 인터페이스의 구현체 작성, 프로파일 분리
AiSummaryFeigin: AI 요약 서버 연동 Feign 클라이언트 작성
DTO 정의
4. 예외 처리
Fallback : 외부 서버 통신 실패(Timeout, 5xx) 시, 트랜잭션 롤백 없이 에러 로그를 남기고 null 또는 실패 응답을 반환하여 메인 로직에 영향을 주지 않도록 함(Soft Fail).
참고 자료
No response
Reactions are currently unavailable
You can’t perform that action at this time.
이슈 배경
n8n webhook)와 연동하여 링크 최초 요약 및 요약 재생성 기능을 수행하는 클라이언트를 구현함.이슈 내용
1. API 명세 구현 (
RagSummaryClient)A. 최초 요약 요청 (
generateSummary)POST /webhook/summary-initial{ "linkId": 103, "userId": 2, "title": "Spring Boot 공식문서", "url": "https://...", "memo": "3.2 릴리스 노트" }SummarizeRes(JSON Array)summary: 새로 생성된 요약.[ { "summary": "**Spring Boot 리뷰**\n\n스프링 부트는 쉽게 서빙을 위한..." } ]B. 요약 재생성 요청 (
regenerateSummary)POST /webhook/summary-resummarizelinkId: 링크 ID (Integer).userId: 요청한 사용자 ID (Integer).url: 원본 링크 URL (String).summary: 기존 요약 내용 (String) - AI가 이전 내용과 비교하기 위해 필요함.{ "linkId": 103, "userId": 1, "url": "https://spring.io/projects/spring-boot", "summary": "기존 요약 내용입니다..." }ReSummarizeRes(JSON Array)summary: 새로 생성된 요약.difference: 기존 요약과의 차이점 또는 개선된 점.[ { "summary": "**Spring Boot 리뷰**\n\n스프링 부트는 쉽게 서빙을 위한...", "difference": "요약된 텍스트는 이전보다 더 자세하고 구조화된 정보를 제공합니다." } ]2. 서비스 로직 구현
RealAiSummaryClient:AiSummaryClient인터페이스의 구현체 작성, 프로파일 분리AiSummaryFeigin: AI 요약 서버 연동 Feign 클라이언트 작성4. 예외 처리
null또는 실패 응답을 반환하여 메인 로직에 영향을 주지 않도록 함(Soft Fail).참고 자료
No response