모델 API 설계 - 100-hours-a-week/20-real-wiki GitHub Wiki
-
Method:
POST
-
Path:
/api/v1/chatbots
- 기능: LLM 기반 챗봇 응답 반환
Name | Type | Mandatory | Description |
---|---|---|---|
question | String | O | 사용자가 AI에게 전달하는 질문 |
{
"question": "휴가 신청하는 방법을 알려줘."
}
Name | Type | Description |
---|---|---|
message | String | status |
answer | String | AI가 생성한 답변 |
✅ 200 (성공)
{
"message" : "응답이 완료되었습니다.",
"data" : {
"answer": "휴가 신청하는 방법은 ..."
}
}
❌ 400 (잘못된 요청) - 사용자가 채팅을 입력하지 않음
- 상황: 프론트에서 입력창이 비어 있는데 전송됨
{
"message": "질문 내용이 비어 있습니다.",
"data": null
}
❌ 400 (잘못된 요청) - 사용자가 허용 범위 외(점심, 날씨 등) 채팅을 함
- 상황: "오늘 점심 뭐야?" → 챗봇의 역할 범위 밖
{
"message": "공지사항 관련 질문만 가능합니다.",
"data": null
}
❌ 400 (잘못된 요청) - 사용자가 특정 범위가 필요한 질문을 함
- 상황: 문맥이 불완전한 질문
{
"message": "과정을 먼저 입력해주세요. 예: '프론트엔드 공지 알려줘'",
"data": null
}
❌ 500 (서버 오류) - 내부 서버 오류
{
"message": "서버 내부 오류가 발생했습니다. 잠시 후 다시 시도해주세요.",
"data" : null
}
❌ 500 (서버 오류) - 모델 오류
{
"message": "모델 오류가 발생했습니다. 잠시 후 다시 시도해주세요.",
"data" : null
}
상태 코드 | 응답 | 설명 |
---|---|---|
201 | "응답이 완료되었습니다." |
성공 |
400 | "질문 내용이 비어 있습니다." |
사용자가 채팅을 입력하지 않음 |
"공지사항 관련 질문만 가능합니다.” |
사용자가 허용 범위 외(점심, 날씨 등) 채팅을 함 | |
"과정을 먼저 입력해주세요. 예: '프론트엔드 공지 알려줘'” |
사용자가 특정 범위가 필요한 질문을 함 | |
500 | "서버 내부 오류가 발생했습니다. 관리자에게 문의해주세요." |
서버 내부 오류 |
"모델 오류가 발생했습니다. 잠시 후 다시 시도해주세요." |
모델 오류 |
-
Method:
POST
-
Path:
/api/v1/notices/summarization
- 기능: 공지사항(디스코드, 노션 기반) 요약 생성
Name | Type | Mandatory | Description |
---|---|---|---|
title | string | O | 공지사항 제목 |
content | string | O | 공지사항 본문 내용 |
{
"title": "사원증 배부 안내",
"content": "안녕하세요!! 카테부 여러분~ 기다리시던 사원증이 드디어 도착했습니다!"
}
Name | Type | Description |
---|---|---|
message | string | 응답 상태 메시지 |
data | object | 결과 데이터 |
└ summary | string | 핵심 요약 |
└ isCompleted | boolean | 성공 여부 명시 |
✅ 200 (성공)
- 공지사항
{
"message": "공지사항 요약이 완료되었습니다.",
"data": {
"summary": "금일 사원증을 배부한다. 오후 5시 타운홀 참석하라고 한다.",
"isCompleted": true
}
}
❌ 400 (잘못된 요청) - content 누락
{
"message": "content가 비어 있습니다.",
"data": null
}
❌ 500 (서버 오류) - 내부 서버 오류
{
"message": "서버 내부 오류가 발생했습니다. 잠시 후 다시 시도해주세요.",
"data" : null
}
❌ 500 (서버 오류) - 모델 오류
{
"message": "모델 오류가 발생했습니다. 잠시 후 다시 시도해주세요.",
"data" : null
}
상태 코드 | 응답 | 설명 |
---|---|---|
200 | "공지사항 요약이 완료되었습니다." |
요청이 정상적으로 처리됨 |
400 | "content가 비어 있습니다." |
content 누락 |
500 | "서버 내부 오류가 발생했습니다. 관리자에게 문의해주세요." |
서버 내부 오류 |
"모델 오류가 발생했습니다. 잠시 후 다시 시도해주세요." |
모델 오류 |
-
Method:
POST
-
Path:
/api/v1/news
- 기능: 디스코드 소통방 기반 헤드라인 및 텍스트 요약 생성
Name | Type | Mandatory | Default | Description |
---|---|---|---|---|
title | string | X | - | 소통방 제목 |
content | string | O | - | 소통방 Message 내용 |
{
"title": "음료수 사드릴게요",
"content": "안녕하세요!! 더운 날씨에 블라블라 ..."
}
Name | Type | Description |
---|---|---|
message | string | 응답 상태 메시지 |
data | object | 결과 데이터 |
└ headline | string | 유머스럽게 생성된 제목 |
└ summary | string | 핵심 요약 |
└ isCompleted | boolean | 성공 여부 명시 |
✅ 200 (성공)
- 뉴스
{
"message": "뉴스 헤드라인, 요약 생성이 완료되었습니다.",
"data": {
"headline": "목 마른 자, 음료를 외쳐라!",
"summary": "더운 날씨에 고생이 많다. 금일 퇴근자에게 커피를 제공한다.",
"isCompleted": true
}
}
❌ 400 (잘못된 요청) - content 누락
{
"message": "content가 비어 있습니다.",
"data": null
}
❌ 500 (서버 오류) - 내부 서버 오류
{
"message": "서버 내부 오류가 발생했습니다. 잠시 후 다시 시도해주세요.",
"data" : null
}
❌ 500 (서버 오류) - 모델 오류
{
"message": "모델 오류가 발생했습니다. 잠시 후 다시 시도해주세요.",
"data" : null
}
상태 코드 | 응답 | 설명 |
---|---|---|
200 | "뉴스 헤드라인, 요약 생성이 완료되었습니다." |
요청이 정상적으로 처리됨 |
400 | "content가 비어 있습니다." |
content 누락 |
500 | "서버 내부 오류가 발생했습니다. 관리자에게 문의해주세요." |
서버 내부 오류 |
"모델 오류가 발생했습니다. 잠시 후 다시 시도해주세요." |
모델 오류 |
-
Method:
POST
-
Path:
/api/v2/news
- 기능: 위키 기반 뉴스 생성
Name | Type | Mandatory | Default | Description |
---|---|---|---|---|
title | string | O | - | 위키 문서 제목 |
content | string | O | - | 위키 문서 본문 |
{
"title": "river.Park(박창수)",
"content": "# 1. 정보 \n - 기수: 2기 - 부서: 20조 레알 ..."
}
Name | Type | Description |
---|---|---|
message | String | status |
headline | String | 생성된 뉴스 헤드라인 |
summary | String | 생성된 뉴스 요약 |
content | String | 생성된 뉴스 |
✅ 200 (성공)
- 뉴스
{
"message": "뉴스 생성이 완료되었습니다.",
"data": {
"headline": "20조 리버가 101가지를 사랑한다는 그것은 ...",
"summary": "리버는 보컬 겸 기타리스트. 이름은 한강에서 가져왔다. 27(금) 뚝섬한강공원에서 공연 예정",
"content": "한강의 낭만을 노래하는 밴드부 보컬 겸 기타리스트, ‘리버블라블라’로 감성을 물들이다...."
}
}
❌ 400 (잘못된 요청) - content 누락
{
"message": "content가 비어 있습니다.",
"data": null
}
❌ 500 (서버 오류) - 내부 서버 오류
{
"message": "서버 내부 오류가 발생했습니다. 잠시 후 다시 시도해주세요.",
"data" : null
}
❌ 500 (서버 오류) - 모델 오류
{
"message": "모델 오류가 발생했습니다. 잠시 후 다시 시도해주세요.",
"data" : null
}
상태 코드 | 응답 | 설명 |
---|---|---|
200 | "뉴스 생성이 완료되었습니다." |
요청이 정상적으로 처리됨 |
400 | "content가 비어 있습니다." |
content 누락 |
500 | "서버 내부 오류가 발생했습니다. 관리자에게 문의해주세요." |
서버 내부 오류 |
"모델 오류가 발생했습니다. 잠시 후 다시 시도해주세요." |
모델 오류 |
-
Method:
POST
-
Path:
/api/v1/quizzes
- 기능: 위키 기반 퀴즈 생성
Name | Type | Mandatory | Default | Description |
---|---|---|---|---|
title | string | O | - | 위키 문서 제목 |
content | string | O | - | 위키 문서 본문 |
{
"title": "river.Park(박창수)",
"content": "# 1. 정보 \n - 기수: 2기 - 부서: 20조 레알 ..."
}
Name | Type | Description |
---|---|---|
message | String | status |
question | String | 퀴즈 문제 |
answer | List | 퀴즈 정답 |
✅ 200 (성공)
- 뉴스
{
"messge" : "퀴즈 생성이 완료되었습니다,",
"data" : {
"question": "river의 식성은?",
"answer": ["탄수화물", "밥", "면"]
}
}
❌ 400 (잘못된 요청) - content 누락
{
"message": "content가 비어 있습니다.",
"data": null
}
❌ 500 (서버 오류) - 내부 서버 오류
{
"message": "서버 내부 오류가 발생했습니다. 잠시 후 다시 시도해주세요.",
"data" : null
}
❌ 500 (서버 오류) - 모델 오류
{
"message": "모델 오류가 발생했습니다. 잠시 후 다시 시도해주세요.",
"data" : null
}
상태 코드 | 응답 | 설명 |
---|---|---|
200 | "퀴즈 생성이 완료되었습니다." |
요청이 정상적으로 처리됨 |
400 | "content가 비어 있습니다." |
content 누락 |
500 | "서버 내부 오류가 발생했습니다. 관리자에게 문의해주세요." |
서버 내부 오류 |
"모델 오류가 발생했습니다. 잠시 후 다시 시도해주세요." |
모델 오류 |