Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Naver Clova Studio API 도입 및 예시 API 생성 #446

Merged
merged 3 commits into from
Oct 24, 2024

Conversation

penrose15
Copy link
Collaborator

🌱 관련 이슈

📌 작업 내용 및 특이사항

  • NCP 운영 요금 70 만원 지원을 위해 Naver Clova Studio API 에서 응답을 받아오는 모듈을 추가했습니다.
    • 해당 모듈은 module-infrastructure:ai에 추가되었습니다.
    • Naver Clova Studio API의 요약 API, Chat Completions API에 요청하면 응답을 받아오는 역할을 합니다.
  • 이를 활용한 API 예시를 추가하였습니다. (요약 API, Chat Completions API 각각 1개씩)
    • POST /ai : 긴 글을 요약해줍니다.

clova studio 요약 api 요청
clova studio 요약 api 응답

  • GET /ai : Chat Completions API로 기존의 캘린더 조회 쿼리를 재사용하여 1달간의 수영기록을 요약해주는 API입니다.

clova studio chat completions api 요청
clova studio chat completions api 응답

📝 참고사항

  • 해당 API는 테스트 앱을 활용하여 실 서비스에 적용하기에는 제한이 있습니다. 실제 서비스에서 사용하기 위해서는 서비스 앱 신청을 해야 한다고 합니다. 서비스 앱의 경우 한번 만들어지면 수정이 불가능하므로 기획이 먼저 진행되어야 할 사항 같습니다.
    image

  • Naver Clova Studio API doc : https://api.ncloud-docs.com/docs/ai-naver-clovastudio-summary

@penrose15 penrose15 self-assigned this Oct 22, 2024
Copy link

Test Results

64 tests   64 ✅  2s ⏱️
17 suites   0 💤
17 files     0 ❌

Results for commit 39375a3.

Copy link
Member

@its-sky its-sky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

굉장히 깔끔하게 잘하셨네요! 수고하셨습니다

Map<String, Object> result = (Map<String, Object>) response.getBody().get("result");
Map<String, Object> message = (Map<String, Object>) result.get("message");
return message.get("content").toString();
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Retryable과 같은 두 메소드에 대한 실패 전략에 대해서도 생각해보면 좋을거 같습니다!

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인해보겠습니다. 감사합니다.


@Service
@RequiredArgsConstructor
@Transactional(readOnly = true)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

클로바 스튜디오에 대한 외부 I/O가 있어도 readOnly가 적용되나요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Transactional(readOnly = true) 를 쓴 이유는 캘린더 조회 로직이 있어서 추가했습니다. readOnly로 더티 체킹이 되지 않을 뿐이니깐 외부 I/O와는 관계없이 캘린더 조회 할 때는 문제 없이 적용되지 않을까 생각됩니다.

@penrose15 penrose15 merged commit ee7ffc6 into develop Oct 24, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

✨ CLOVA Studio API 연동
2 participants