[AI]1단계_모델_API_설계_성향기반_익명닉네임_생성 - 100-hours-a-week/12-marong-Wiki GitHub Wiki

1. API 엔드포인트 목록 작성

method 경로 설명
POST /mbti/anonymous_name 사용자 성향기반 익명 닉네임 생성
GET /mbti/history/{user_id} 사용자 익명 닉네임 생성 히스토리 조회

2. API 입/출력 형식 명세서 작성

2-1. POST /mbti/anonymous_name

사용자 MBTI & 취미 정보로 익명 닉네임을 생성합니다.

Request Body

{
  "user_id": "user123",
  "mbti": "ENFP",
  "hobby": "여행"
}
필드명 타입 필수여부 설명
user_id string 필수 사용자 고유 ID
mbti string 필수 MBTI 유형 (예: ENFP)
hobby string 선택 사용자 취미

Response

200

{
  "user_id": "user123",
  "nicknames": [
    "생각여행자",
    "호기심탐험가",
    "감성노마드"
  ]
}

2-2. 오류 응답 예시

400 Bad Request

{
  "message": "invalid_request",
  "data": null
}

500 Internal Server Error

{
  "message": "internal_server_error",
  "data": null
}

3. 서비스 전체 구조 내 역할·연동 관계 설명

'성향기반 익명닉네임 생성'의 서비스 전체 구조 내 역할

“MBTI와 취미 정보를 결합하여 창의적이고 중복 없는 익명 닉네임을 자동으로 생성해주는 LLM 기반 닉네임 생성 모듈”

  • 데이터 파싱
    MBTI 유형과 취미 데이터를 파싱해 프롬프트에 삽입
  • 모델 파이프라인
    LangChain/MCP/RAG 파이프라인으로 최적의 LLM 모델 자동 선택·실행
  • 필터링 & 검증
    생성된 닉네임에 대해 욕설·중복 필터링 및 유효성 검증 수행
  • RAG 보강
    부족하거나 중복된 결과는 RAG로 컨텍스트 보강 후 재생성
  • 저장 & 반환
    최종 닉네임 리스트를 Main DB에 저장하고 사용자에게 반환
  • 활용처
    커뮤니티, 채팅, 매칭 등 타 서비스의 닉네임 기반 기능에 활용
연동대상 연동방식 설명
API Gateway REST API 클라이언트 요청 수신 및 라우팅
Backend Service (FastAPI) 내부 HTTP 호출 닉네임 생성 로직 실행
Nickname Generation Service 라이브러리/Sync LangChain, RAG, LLM Invocation 수행
Vector DB (Chroma) 내부 저장 RAG Augment용 인덱스 및 임베딩 관리
Main DB DB 연동 최종 생성 닉네임 리스트 및 히스토리 저장

4. API 호출 예시 및 예시 응답 정리

4.2 익명 닉네임 생성 요청

POST /mbti/anonymous_name
Content-Type: application/json
{
  "user_id": "user123",
  "mbti": "ENTP",
  "hobby": "등산"
}

Response (200)

{
  "user_id": "user123",
  "nicknames": [
    "산책하는아이디어쟁이",
    "등산연구가",
    "창의탐험러"
  ]
}

4.2 오류 응답 예시

Response (400)

{
  "message": "invalid_request",
  "data": null
}

Response (500)

{
  "message": "internal_server_error",
  "data": null
}

4.3 실제 테스트 결과 예시

입력

{
  "user_id": "test001",
  "mbti": "INFP",
  "hobby": "독서"
}

모델 응답 예시

{
  "nicknames": [
    "조용한책방러",
    "사색하는잉크",
    "감성연필"
  ]
}