[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 입/출력 형식 명세서 작성
POST /mbti/anonymous_name
2-1. 사용자 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": [
"조용한책방러",
"사색하는잉크",
"감성연필"
]
}