Releases: TreeNut-KR/ChatBot
Release v1.1.2
릴리스 v1.1.2
FastAPI 명세서
📌 ChatBot FastAPI 명세서
📢 개요
이 API는 MongoDB 데이터 관리와 이메일 인증을 위한 기능을 제공합니다.
📍 엔드포인트 목록
🔹 MongoDB 라우터
📌 데이터베이스 관리
-
GET /mongo/db- 설명: 데이터베이스 서버에 있는 모든 데이터베이스의 목록을 반환합니다.
- 응답: 데이터베이스 목록 및 관련 링크를 포함한 JSON 객체
-
GET /mongo/collections- 설명: 현재 선택된 데이터베이스 내의 모든 컬렉션 이름을 반환합니다.
- 쿼리 파라미터:
파라미터명 필수 여부 설명 db_name 필수 데이터베이스 이름 - 응답: 컬렉션 목록 및 관련 링크를 포함한 JSON 객체
🔹 MongoDB / Offices
📌 오피스 채팅방 관리
-
POST /mongo/offices/users/{user_id}- 설명: 새로운 유저 채팅 문서(채팅 로그)를 MongoDB에 생성합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID - 응답: 생성된 채팅방 ID 및 관련 API 링크 정보
-
GET /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서의 채팅 로그를 MongoDB에서 불러옵니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 채팅 로그 내용 및 관련 API 링크 정보
-
PUT /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서에 유저의 채팅 데이터를 저장합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
{ "input_data": "안녕하세요, 챗봇!", "output_data": "안녕하세요! 무엇을 도와드릴까요?" }필드명 타입 제약조건 설명 예시 input_data string minLength=1, maxLength=500 사용자 입력 문장 "안녕하세요, 챗봇!"output_data string minLength=1, maxLength=8191 챗봇 출력 문장 "안녕하세요! 무엇을 도와드릴까요?" - 응답: 저장 결과 메시지 및 관련 API 링크 정보
-
PATCH /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 기존 채팅 문서에 유저의 채팅 데이터를 수정합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
PUT요청과 동일한 형식 - 응답: 수정 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 유저의 채팅방을 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/offices/users/{user_id}/documents/{document_id}/idx/{index}- 설명: 최신 대화 ~ 선택된 채팅을 로그에서 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID index integer 삭제를 시작할 채팅 로그의 인덱스 - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
🔹 MongoDB / Characters
📌 캐릭터 채팅방 관리
-
POST /mongo/characters/users/{user_id}- 설명: 새로운 유저 채팅 문서(채팅 로그)를 MongoDB에 생성합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID - 요청 본문:
{ "character_idx": 1 }필드명 타입 설명 예시 character_idx integer 캐릭터 id 1 - 응답: 생성된 채팅방 ID 및 관련 API 링크 정보
-
GET /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서의 채팅 로그를 MongoDB에서 불러옵니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 채팅 로그 내용, 캐릭터 인덱스 및 관련 API 링크 정보
-
PUT /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서에 유저의 채팅 데이터를 저장합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
{ "img_url": "https://drive.google.com/thumbnail?id=12PqUS6bj4eAO_fLDaWQmoq94-771xfim", "input_data": "안녕하세요, 챗봇!", "output_data": "안녕하세요! 무엇을 도와드릴까요?" }필드명 타입 제약조건 설명 예시 img_url string minLength=1, maxLength=2048 이미지 URL "https://drive.google.com/thumbnail?id=12PqUS6bj4eAO_fLDaWQmoq94-771xfim"input_data string minLength=1, maxLength=500 사용자 입력 문장 "안녕하세요, 챗봇!"output_data string minLength=1, maxLength=8191 챗봇 출력 문장 "안녕하세요! 무엇을 도와드릴까요?" - 응답: 저장 결과 메시지 및 관련 API 링크 정보
-
PATCH /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 기존 채팅 문서에 유저의 채팅 데이터를 수정합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
PUT요청과 동일한 형식 - 응답: 수정 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 유저의 채팅방을 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/characters/users/{user_id}/documents/{document_id}/idx/{index}- 설명: 최신 대화 ~ 선택된 채팅을 로그에서 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID index integer 삭제를 시작할 채팅 로그의 인덱스 - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
🔹 인증
📌 이메일 인증
-
POST /auth/verification/send- 설명: 사용자 이메일로 인증 코드를 전송합니다.
- 요청 본문:
{ "user_id": "shaa97102", "email": "user@example.com" }필드명 타입 제약조건 설명 예시 user_id string minLength=1, maxLength=50 유저 ID "shaa97102"email string 유효한 이메일 형식 인증 코드를 전송할 이메일 주소 "user@example.com" - 응답: 인증 코드 전송 결과 메시지
-
POST /auth/verification/verify- 설명: 사용자로부터 받은 인증 코드를 검증합니다.
- 요청 본문:
{ "user_id": "shaa97102", "email": "user@example.com", "code": "A12B34" }필드명 타입 제약조건 설명 예시 user_id string minLength=1, maxLength=50 유저 ID "shaa97102"email string 유효한 이메일 형식 인증 코드를 전송한 이메일 주소 "user@example.com"code string minLength=6, maxLength=6 6자리 인증 코드 "A12B34" - 응답: 인증 코드 검증 결과 메시지
🛠 응답 구조
일반 응답
- 정상 응답 예시:
{ "status": "success", "message": "인증 코드가 전송되었습니다. 이메일을 확인해주세요." }
HATEOAS 링크
- 링크 포함 응답 예시:
{ "Document ID": "614a123456789b0d323e456f", "_links": [ { "href": "/mongo/offices/users/shaa97102", "rel": "self", "type": "GET", "title": "유저 채팅방 ID 생성" }, { "href": "/mongo/offices/users/shaa97102/documents/614a123456789b0d323e456f", "rel": "/users/shaa97102/documents/614a123456789b0d323e456f", "type": "GET", "title": "유저 채팅 불러오기" } ] }
오류 응답
- 오류 응답 예시:
{ "status": "error", "detail": "인증 코드가 일치하지 않습니다.", "code": "invalid_verification_code" }
SpringBoot RoomController 명세서
📢 개요
- API 이름: RoomController
- 설명: 채팅방 및 대화 관리 API
이 API는 Office 모드와 Character 모드의 채팅방을 생성, 관리하고 대화 기록을 저장, 조회, 수정, 삭제하는 기능을 제공합니다.
📍 엔드포인트 목록
🔹 Office 채팅방 (정보 제공 모드)
📌 Office 채팅방 생성
POST /server/rooms/office- 설명: 새로운 Office 채팅방을 생성합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 응답 예시
{ "status": 200, "message": "채팅방이 성공적으로 생성되었습니다.", "mysql_officeroom": { "idx": 3, "userid": "test_VIP", "mongo_chatroomid": "8430b4dc-45a0-47ba-a3e4-a7d01edbfcf3", "createdAt": "2025-03-24T17:54:32.230555456", "updatedAt": "2025-03-24T17:54:32.230581553" } }
📌 Office 채팅방 목록 조회
GET /server/rooms/office- 설명: 사용자의 Office 채팅방 목록을 조회합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 응답 예시
{ "status": 200, "rooms": [ { "roomid": "5df8cf5a-baae-4a53-be70-5eb2215fc237", "Title": "파이썬에 대해서 자..." } ] }
📌 Office 채팅방 삭제
DELETE /server/rooms/office/{roomId}- 설명: 특정 Office 채팅방을 삭제합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 경로 매개변수
...
Release v1.1.1
릴리스 v1.1.1
FastAPI 명세서
📌 ChatBot FastAPI 명세서
📢 개요
이 API는 MongoDB 데이터 관리와 이메일 인증을 위한 기능을 제공합니다.
📍 엔드포인트 목록
🔹 MongoDB 라우터
📌 데이터베이스 관리
-
GET /mongo/db- 설명: 데이터베이스 서버에 있는 모든 데이터베이스의 목록을 반환합니다.
- 응답: 데이터베이스 목록 및 관련 링크를 포함한 JSON 객체
-
GET /mongo/collections- 설명: 현재 선택된 데이터베이스 내의 모든 컬렉션 이름을 반환합니다.
- 쿼리 파라미터:
파라미터명 필수 여부 설명 db_name 필수 데이터베이스 이름 - 응답: 컬렉션 목록 및 관련 링크를 포함한 JSON 객체
🔹 MongoDB / Offices
📌 오피스 채팅방 관리
-
POST /mongo/offices/users/{user_id}- 설명: 새로운 유저 채팅 문서(채팅 로그)를 MongoDB에 생성합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID - 응답: 생성된 채팅방 ID 및 관련 API 링크 정보
-
GET /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서의 채팅 로그를 MongoDB에서 불러옵니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 채팅 로그 내용 및 관련 API 링크 정보
-
PUT /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서에 유저의 채팅 데이터를 저장합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
{ "input_data": "안녕하세요, 챗봇!", "output_data": "안녕하세요! 무엇을 도와드릴까요?" }필드명 타입 제약조건 설명 예시 input_data string minLength=1, maxLength=500 사용자 입력 문장 "안녕하세요, 챗봇!"output_data string minLength=1, maxLength=8191 챗봇 출력 문장 "안녕하세요! 무엇을 도와드릴까요?" - 응답: 저장 결과 메시지 및 관련 API 링크 정보
-
PATCH /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 기존 채팅 문서에 유저의 채팅 데이터를 수정합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
PUT요청과 동일한 형식 - 응답: 수정 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 유저의 채팅방을 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/offices/users/{user_id}/documents/{document_id}/idx/{index}- 설명: 최신 대화 ~ 선택된 채팅을 로그에서 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID index integer 삭제를 시작할 채팅 로그의 인덱스 - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
🔹 MongoDB / Characters
📌 캐릭터 채팅방 관리
-
POST /mongo/characters/users/{user_id}- 설명: 새로운 유저 채팅 문서(채팅 로그)를 MongoDB에 생성합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID - 요청 본문:
{ "character_idx": 1 }필드명 타입 설명 예시 character_idx integer 캐릭터 id 1 - 응답: 생성된 채팅방 ID 및 관련 API 링크 정보
-
GET /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서의 채팅 로그를 MongoDB에서 불러옵니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 채팅 로그 내용, 캐릭터 인덱스 및 관련 API 링크 정보
-
PUT /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서에 유저의 채팅 데이터를 저장합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
{ "img_url": "https://drive.google.com/thumbnail?id=12PqUS6bj4eAO_fLDaWQmoq94-771xfim", "input_data": "안녕하세요, 챗봇!", "output_data": "안녕하세요! 무엇을 도와드릴까요?" }필드명 타입 제약조건 설명 예시 img_url string minLength=1, maxLength=2048 이미지 URL "https://drive.google.com/thumbnail?id=12PqUS6bj4eAO_fLDaWQmoq94-771xfim"input_data string minLength=1, maxLength=500 사용자 입력 문장 "안녕하세요, 챗봇!"output_data string minLength=1, maxLength=8191 챗봇 출력 문장 "안녕하세요! 무엇을 도와드릴까요?" - 응답: 저장 결과 메시지 및 관련 API 링크 정보
-
PATCH /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 기존 채팅 문서에 유저의 채팅 데이터를 수정합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
PUT요청과 동일한 형식 - 응답: 수정 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 유저의 채팅방을 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/characters/users/{user_id}/documents/{document_id}/idx/{index}- 설명: 최신 대화 ~ 선택된 채팅을 로그에서 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID index integer 삭제를 시작할 채팅 로그의 인덱스 - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
🔹 인증
📌 이메일 인증
-
POST /auth/verification/send- 설명: 사용자 이메일로 인증 코드를 전송합니다.
- 요청 본문:
{ "user_id": "shaa97102", "email": "user@example.com" }필드명 타입 제약조건 설명 예시 user_id string minLength=1, maxLength=50 유저 ID "shaa97102"email string 유효한 이메일 형식 인증 코드를 전송할 이메일 주소 "user@example.com" - 응답: 인증 코드 전송 결과 메시지
-
POST /auth/verification/verify- 설명: 사용자로부터 받은 인증 코드를 검증합니다.
- 요청 본문:
{ "user_id": "shaa97102", "email": "user@example.com", "code": "A12B34" }필드명 타입 제약조건 설명 예시 user_id string minLength=1, maxLength=50 유저 ID "shaa97102"email string 유효한 이메일 형식 인증 코드를 전송한 이메일 주소 "user@example.com"code string minLength=6, maxLength=6 6자리 인증 코드 "A12B34" - 응답: 인증 코드 검증 결과 메시지
🛠 응답 구조
일반 응답
- 정상 응답 예시:
{ "status": "success", "message": "인증 코드가 전송되었습니다. 이메일을 확인해주세요." }
HATEOAS 링크
- 링크 포함 응답 예시:
{ "Document ID": "614a123456789b0d323e456f", "_links": [ { "href": "/mongo/offices/users/shaa97102", "rel": "self", "type": "GET", "title": "유저 채팅방 ID 생성" }, { "href": "/mongo/offices/users/shaa97102/documents/614a123456789b0d323e456f", "rel": "/users/shaa97102/documents/614a123456789b0d323e456f", "type": "GET", "title": "유저 채팅 불러오기" } ] }
오류 응답
- 오류 응답 예시:
{ "status": "error", "detail": "인증 코드가 일치하지 않습니다.", "code": "invalid_verification_code" }
SpringBoot RoomController 명세서
📢 개요
- API 이름: RoomController
- 설명: 채팅방 및 대화 관리 API
이 API는 Office 모드와 Character 모드의 채팅방을 생성, 관리하고 대화 기록을 저장, 조회, 수정, 삭제하는 기능을 제공합니다.
📍 엔드포인트 목록
🔹 Office 채팅방 (정보 제공 모드)
📌 Office 채팅방 생성
POST /server/rooms/office- 설명: 새로운 Office 채팅방을 생성합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 응답 예시
{ "status": 200, "message": "채팅방이 성공적으로 생성되었습니다.", "mysql_officeroom": { "idx": 3, "userid": "test_VIP", "mongo_chatroomid": "8430b4dc-45a0-47ba-a3e4-a7d01edbfcf3", "createdAt": "2025-03-24T17:54:32.230555456", "updatedAt": "2025-03-24T17:54:32.230581553" } }
📌 Office 채팅방 목록 조회
GET /server/rooms/office- 설명: 사용자의 Office 채팅방 목록을 조회합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 응답 예시
{ "status": 200, "rooms": [ { "roomid": "5df8cf5a-baae-4a53-be70-5eb2215fc237", "Title": "파이썬에 대해서 자..." } ] }
📌 Office 채팅방 삭제
DELETE /server/rooms/office/{roomId}- 설명: 특정 Office 채팅방을 삭제합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 경로 매개변수
...
Release v1.1.0
릴리스 v1.1.0
FastAPI 명세서
📌 ChatBot FastAPI 명세서
📢 개요
이 API는 MongoDB 데이터 관리와 이메일 인증을 위한 기능을 제공합니다.
📍 엔드포인트 목록
🔹 MongoDB 라우터
📌 데이터베이스 관리
-
GET /mongo/db- 설명: 데이터베이스 서버에 있는 모든 데이터베이스의 목록을 반환합니다.
- 응답: 데이터베이스 목록 및 관련 링크를 포함한 JSON 객체
-
GET /mongo/collections- 설명: 현재 선택된 데이터베이스 내의 모든 컬렉션 이름을 반환합니다.
- 쿼리 파라미터:
파라미터명 필수 여부 설명 db_name 필수 데이터베이스 이름 - 응답: 컬렉션 목록 및 관련 링크를 포함한 JSON 객체
🔹 MongoDB / Offices
📌 오피스 채팅방 관리
-
POST /mongo/offices/users/{user_id}- 설명: 새로운 유저 채팅 문서(채팅 로그)를 MongoDB에 생성합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID - 응답: 생성된 채팅방 ID 및 관련 API 링크 정보
-
GET /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서의 채팅 로그를 MongoDB에서 불러옵니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 채팅 로그 내용 및 관련 API 링크 정보
-
PUT /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서에 유저의 채팅 데이터를 저장합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
{ "input_data": "안녕하세요, 챗봇!", "output_data": "안녕하세요! 무엇을 도와드릴까요?" }필드명 타입 제약조건 설명 예시 input_data string minLength=1, maxLength=500 사용자 입력 문장 "안녕하세요, 챗봇!"output_data string minLength=1, maxLength=8191 챗봇 출력 문장 "안녕하세요! 무엇을 도와드릴까요?" - 응답: 저장 결과 메시지 및 관련 API 링크 정보
-
PATCH /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 기존 채팅 문서에 유저의 채팅 데이터를 수정합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
PUT요청과 동일한 형식 - 응답: 수정 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 유저의 채팅방을 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/offices/users/{user_id}/documents/{document_id}/idx/{index}- 설명: 최신 대화 ~ 선택된 채팅을 로그에서 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID index integer 삭제를 시작할 채팅 로그의 인덱스 - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
🔹 MongoDB / Characters
📌 캐릭터 채팅방 관리
-
POST /mongo/characters/users/{user_id}- 설명: 새로운 유저 채팅 문서(채팅 로그)를 MongoDB에 생성합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID - 요청 본문:
{ "character_idx": 1 }필드명 타입 설명 예시 character_idx integer 캐릭터 id 1 - 응답: 생성된 채팅방 ID 및 관련 API 링크 정보
-
GET /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서의 채팅 로그를 MongoDB에서 불러옵니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 채팅 로그 내용, 캐릭터 인덱스 및 관련 API 링크 정보
-
PUT /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서에 유저의 채팅 데이터를 저장합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
{ "img_url": "https://drive.google.com/thumbnail?id=12PqUS6bj4eAO_fLDaWQmoq94-771xfim", "input_data": "안녕하세요, 챗봇!", "output_data": "안녕하세요! 무엇을 도와드릴까요?" }필드명 타입 제약조건 설명 예시 img_url string minLength=1, maxLength=2048 이미지 URL "https://drive.google.com/thumbnail?id=12PqUS6bj4eAO_fLDaWQmoq94-771xfim"input_data string minLength=1, maxLength=500 사용자 입력 문장 "안녕하세요, 챗봇!"output_data string minLength=1, maxLength=8191 챗봇 출력 문장 "안녕하세요! 무엇을 도와드릴까요?" - 응답: 저장 결과 메시지 및 관련 API 링크 정보
-
PATCH /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 기존 채팅 문서에 유저의 채팅 데이터를 수정합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
PUT요청과 동일한 형식 - 응답: 수정 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 유저의 채팅방을 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/characters/users/{user_id}/documents/{document_id}/idx/{index}- 설명: 최신 대화 ~ 선택된 채팅을 로그에서 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID index integer 삭제를 시작할 채팅 로그의 인덱스 - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
🔹 인증
📌 이메일 인증
-
POST /auth/verification/send- 설명: 사용자 이메일로 인증 코드를 전송합니다.
- 요청 본문:
{ "user_id": "shaa97102", "email": "user@example.com" }필드명 타입 제약조건 설명 예시 user_id string minLength=1, maxLength=50 유저 ID "shaa97102"email string 유효한 이메일 형식 인증 코드를 전송할 이메일 주소 "user@example.com" - 응답: 인증 코드 전송 결과 메시지
-
POST /auth/verification/verify- 설명: 사용자로부터 받은 인증 코드를 검증합니다.
- 요청 본문:
{ "user_id": "shaa97102", "email": "user@example.com", "code": "A12B34" }필드명 타입 제약조건 설명 예시 user_id string minLength=1, maxLength=50 유저 ID "shaa97102"email string 유효한 이메일 형식 인증 코드를 전송한 이메일 주소 "user@example.com"code string minLength=6, maxLength=6 6자리 인증 코드 "A12B34" - 응답: 인증 코드 검증 결과 메시지
🛠 응답 구조
일반 응답
- 정상 응답 예시:
{ "status": "success", "message": "인증 코드가 전송되었습니다. 이메일을 확인해주세요." }
HATEOAS 링크
- 링크 포함 응답 예시:
{ "Document ID": "614a123456789b0d323e456f", "_links": [ { "href": "/mongo/offices/users/shaa97102", "rel": "self", "type": "GET", "title": "유저 채팅방 ID 생성" }, { "href": "/mongo/offices/users/shaa97102/documents/614a123456789b0d323e456f", "rel": "/users/shaa97102/documents/614a123456789b0d323e456f", "type": "GET", "title": "유저 채팅 불러오기" } ] }
오류 응답
- 오류 응답 예시:
{ "status": "error", "detail": "인증 코드가 일치하지 않습니다.", "code": "invalid_verification_code" }
SpringBoot RoomController 명세서
📢 개요
- API 이름: RoomController
- 설명: 채팅방 및 대화 관리 API
이 API는 Office 모드와 Character 모드의 채팅방을 생성, 관리하고 대화 기록을 저장, 조회, 수정, 삭제하는 기능을 제공합니다.
📍 엔드포인트 목록
🔹 Office 채팅방 (정보 제공 모드)
📌 Office 채팅방 생성
POST /server/rooms/office- 설명: 새로운 Office 채팅방을 생성합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 응답 예시
{ "status": 200, "message": "채팅방이 성공적으로 생성되었습니다.", "mysql_officeroom": { "idx": 3, "userid": "test_VIP", "mongo_chatroomid": "8430b4dc-45a0-47ba-a3e4-a7d01edbfcf3", "createdAt": "2025-03-24T17:54:32.230555456", "updatedAt": "2025-03-24T17:54:32.230581553" } }
📌 Office 채팅방 목록 조회
GET /server/rooms/office- 설명: 사용자의 Office 채팅방 목록을 조회합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 응답 예시
{ "status": 200, "rooms": [ { "roomid": "5df8cf5a-baae-4a53-be70-5eb2215f...
Release v1.0.5
릴리스 v1.0.5
FastAPI 명세서
📌 ChatBot FastAPI 명세서
📢 개요
이 API는 MongoDB 데이터 관리와 이메일 인증을 위한 기능을 제공합니다.
📍 엔드포인트 목록
🔹 MongoDB 라우터
📌 데이터베이스 관리
-
GET /mongo/db- 설명: 데이터베이스 서버에 있는 모든 데이터베이스의 목록을 반환합니다.
- 응답: 데이터베이스 목록 및 관련 링크를 포함한 JSON 객체
-
GET /mongo/collections- 설명: 현재 선택된 데이터베이스 내의 모든 컬렉션 이름을 반환합니다.
- 쿼리 파라미터:
파라미터명 필수 여부 설명 db_name 필수 데이터베이스 이름 - 응답: 컬렉션 목록 및 관련 링크를 포함한 JSON 객체
🔹 MongoDB / Offices
📌 오피스 채팅방 관리
-
POST /mongo/offices/users/{user_id}- 설명: 새로운 유저 채팅 문서(채팅 로그)를 MongoDB에 생성합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID - 응답: 생성된 채팅방 ID 및 관련 API 링크 정보
-
GET /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서의 채팅 로그를 MongoDB에서 불러옵니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 채팅 로그 내용 및 관련 API 링크 정보
-
PUT /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서에 유저의 채팅 데이터를 저장합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
{ "input_data": "안녕하세요, 챗봇!", "output_data": "안녕하세요! 무엇을 도와드릴까요?" }필드명 타입 제약조건 설명 예시 input_data string minLength=1, maxLength=500 사용자 입력 문장 "안녕하세요, 챗봇!"output_data string minLength=1, maxLength=8191 챗봇 출력 문장 "안녕하세요! 무엇을 도와드릴까요?" - 응답: 저장 결과 메시지 및 관련 API 링크 정보
-
PATCH /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 기존 채팅 문서에 유저의 채팅 데이터를 수정합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
PUT요청과 동일한 형식 - 응답: 수정 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 유저의 채팅방을 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/offices/users/{user_id}/documents/{document_id}/idx/{index}- 설명: 최신 대화 ~ 선택된 채팅을 로그에서 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID index integer 삭제를 시작할 채팅 로그의 인덱스 - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
🔹 MongoDB / Characters
📌 캐릭터 채팅방 관리
-
POST /mongo/characters/users/{user_id}- 설명: 새로운 유저 채팅 문서(채팅 로그)를 MongoDB에 생성합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID - 요청 본문:
{ "character_idx": 1 }필드명 타입 설명 예시 character_idx integer 캐릭터 id 1 - 응답: 생성된 채팅방 ID 및 관련 API 링크 정보
-
GET /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서의 채팅 로그를 MongoDB에서 불러옵니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 채팅 로그 내용, 캐릭터 인덱스 및 관련 API 링크 정보
-
PUT /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서에 유저의 채팅 데이터를 저장합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
{ "img_url": "https://drive.google.com/thumbnail?id=12PqUS6bj4eAO_fLDaWQmoq94-771xfim", "input_data": "안녕하세요, 챗봇!", "output_data": "안녕하세요! 무엇을 도와드릴까요?" }필드명 타입 제약조건 설명 예시 img_url string minLength=1, maxLength=2048 이미지 URL "https://drive.google.com/thumbnail?id=12PqUS6bj4eAO_fLDaWQmoq94-771xfim"input_data string minLength=1, maxLength=500 사용자 입력 문장 "안녕하세요, 챗봇!"output_data string minLength=1, maxLength=8191 챗봇 출력 문장 "안녕하세요! 무엇을 도와드릴까요?" - 응답: 저장 결과 메시지 및 관련 API 링크 정보
-
PATCH /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 기존 채팅 문서에 유저의 채팅 데이터를 수정합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
PUT요청과 동일한 형식 - 응답: 수정 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 유저의 채팅방을 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/characters/users/{user_id}/documents/{document_id}/idx/{index}- 설명: 최신 대화 ~ 선택된 채팅을 로그에서 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID index integer 삭제를 시작할 채팅 로그의 인덱스 - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
🔹 인증
📌 이메일 인증
-
POST /auth/verification/send- 설명: 사용자 이메일로 인증 코드를 전송합니다.
- 요청 본문:
{ "user_id": "shaa97102", "email": "user@example.com" }필드명 타입 제약조건 설명 예시 user_id string minLength=1, maxLength=50 유저 ID "shaa97102"email string 유효한 이메일 형식 인증 코드를 전송할 이메일 주소 "user@example.com" - 응답: 인증 코드 전송 결과 메시지
-
POST /auth/verification/verify- 설명: 사용자로부터 받은 인증 코드를 검증합니다.
- 요청 본문:
{ "user_id": "shaa97102", "email": "user@example.com", "code": "A12B34" }필드명 타입 제약조건 설명 예시 user_id string minLength=1, maxLength=50 유저 ID "shaa97102"email string 유효한 이메일 형식 인증 코드를 전송한 이메일 주소 "user@example.com"code string minLength=6, maxLength=6 6자리 인증 코드 "A12B34" - 응답: 인증 코드 검증 결과 메시지
🛠 응답 구조
일반 응답
- 정상 응답 예시:
{ "status": "success", "message": "인증 코드가 전송되었습니다. 이메일을 확인해주세요." }
HATEOAS 링크
- 링크 포함 응답 예시:
{ "Document ID": "614a123456789b0d323e456f", "_links": [ { "href": "/mongo/offices/users/shaa97102", "rel": "self", "type": "GET", "title": "유저 채팅방 ID 생성" }, { "href": "/mongo/offices/users/shaa97102/documents/614a123456789b0d323e456f", "rel": "/users/shaa97102/documents/614a123456789b0d323e456f", "type": "GET", "title": "유저 채팅 불러오기" } ] }
오류 응답
- 오류 응답 예시:
{ "status": "error", "detail": "인증 코드가 일치하지 않습니다.", "code": "invalid_verification_code" }
SpringBoot RoomController 명세서
📢 개요
- API 이름: RoomController
- 설명: 채팅방 및 대화 관리 API
이 API는 Office 모드와 Character 모드의 채팅방을 생성, 관리하고 대화 기록을 저장, 조회, 수정, 삭제하는 기능을 제공합니다.
📍 엔드포인트 목록
🔹 Office 채팅방 (정보 제공 모드)
📌 Office 채팅방 생성
POST /server/rooms/office- 설명: 새로운 Office 채팅방을 생성합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 응답 예시
{ "status": 200, "message": "채팅방이 성공적으로 생성되었습니다.", "mysql_officeroom": { "idx": 3, "userid": "test_VIP", "mongo_chatroomid": "8430b4dc-45a0-47ba-a3e4-a7d01edbfcf3", "createdAt": "2025-03-24T17:54:32.230555456", "updatedAt": "2025-03-24T17:54:32.230581553" } }
📌 Office 채팅방 목록 조회
GET /server/rooms/office- 설명: 사용자의 Office 채팅방 목록을 조회합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 응답 예시
{ "status": 200, "rooms": [ { "roomid": "5df8cf5a-baae-4a53-be70-5eb2215fc237", "Title": "파이썬에 대해서 자..." } ] }
📌 Office 채팅방 삭제
DELETE /server/rooms/office/{roomId}- 설명: 특정 Office 채팅방을 삭제합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 경로 매개변수
...
Release v1.0.2
릴리스 v1.0.2
FastAPI 명세서
📌 ChatBot FastAPI 명세서
📢 개요
이 API는 MongoDB 데이터 관리와 이메일 인증을 위한 기능을 제공합니다.
📍 엔드포인트 목록
🔹 MongoDB 라우터
📌 데이터베이스 관리
-
GET /mongo/db- 설명: 데이터베이스 서버에 있는 모든 데이터베이스의 목록을 반환합니다.
- 응답: 데이터베이스 목록 및 관련 링크를 포함한 JSON 객체
-
GET /mongo/collections- 설명: 현재 선택된 데이터베이스 내의 모든 컬렉션 이름을 반환합니다.
- 쿼리 파라미터:
파라미터명 필수 여부 설명 db_name 필수 데이터베이스 이름 - 응답: 컬렉션 목록 및 관련 링크를 포함한 JSON 객체
🔹 MongoDB / Offices
📌 오피스 채팅방 관리
-
POST /mongo/offices/users/{user_id}- 설명: 새로운 유저 채팅 문서(채팅 로그)를 MongoDB에 생성합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID - 응답: 생성된 채팅방 ID 및 관련 API 링크 정보
-
GET /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서의 채팅 로그를 MongoDB에서 불러옵니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 채팅 로그 내용 및 관련 API 링크 정보
-
PUT /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서에 유저의 채팅 데이터를 저장합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
{ "input_data": "안녕하세요, 챗봇!", "output_data": "안녕하세요! 무엇을 도와드릴까요?" }필드명 타입 제약조건 설명 예시 input_data string minLength=1, maxLength=500 사용자 입력 문장 "안녕하세요, 챗봇!"output_data string minLength=1, maxLength=8191 챗봇 출력 문장 "안녕하세요! 무엇을 도와드릴까요?" - 응답: 저장 결과 메시지 및 관련 API 링크 정보
-
PATCH /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 기존 채팅 문서에 유저의 채팅 데이터를 수정합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
PUT요청과 동일한 형식 - 응답: 수정 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 유저의 채팅방을 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/offices/users/{user_id}/documents/{document_id}/idx/{index}- 설명: 최신 대화 ~ 선택된 채팅을 로그에서 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID index integer 삭제를 시작할 채팅 로그의 인덱스 - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
🔹 MongoDB / Characters
📌 캐릭터 채팅방 관리
-
POST /mongo/characters/users/{user_id}- 설명: 새로운 유저 채팅 문서(채팅 로그)를 MongoDB에 생성합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID - 요청 본문:
{ "character_idx": 1 }필드명 타입 설명 예시 character_idx integer 캐릭터 id 1 - 응답: 생성된 채팅방 ID 및 관련 API 링크 정보
-
GET /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서의 채팅 로그를 MongoDB에서 불러옵니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 채팅 로그 내용, 캐릭터 인덱스 및 관련 API 링크 정보
-
PUT /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서에 유저의 채팅 데이터를 저장합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
{ "img_url": "https://drive.google.com/thumbnail?id=12PqUS6bj4eAO_fLDaWQmoq94-771xfim", "input_data": "안녕하세요, 챗봇!", "output_data": "안녕하세요! 무엇을 도와드릴까요?" }필드명 타입 제약조건 설명 예시 img_url string minLength=1, maxLength=2048 이미지 URL "https://drive.google.com/thumbnail?id=12PqUS6bj4eAO_fLDaWQmoq94-771xfim"input_data string minLength=1, maxLength=500 사용자 입력 문장 "안녕하세요, 챗봇!"output_data string minLength=1, maxLength=8191 챗봇 출력 문장 "안녕하세요! 무엇을 도와드릴까요?" - 응답: 저장 결과 메시지 및 관련 API 링크 정보
-
PATCH /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 기존 채팅 문서에 유저의 채팅 데이터를 수정합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
PUT요청과 동일한 형식 - 응답: 수정 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 유저의 채팅방을 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/characters/users/{user_id}/documents/{document_id}/idx/{index}- 설명: 최신 대화 ~ 선택된 채팅을 로그에서 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID index integer 삭제를 시작할 채팅 로그의 인덱스 - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
🔹 인증
📌 이메일 인증
-
POST /auth/verification/send- 설명: 사용자 이메일로 인증 코드를 전송합니다.
- 요청 본문:
{ "user_id": "shaa97102", "email": "user@example.com" }필드명 타입 제약조건 설명 예시 user_id string minLength=1, maxLength=50 유저 ID "shaa97102"email string 유효한 이메일 형식 인증 코드를 전송할 이메일 주소 "user@example.com" - 응답: 인증 코드 전송 결과 메시지
-
POST /auth/verification/verify- 설명: 사용자로부터 받은 인증 코드를 검증합니다.
- 요청 본문:
{ "user_id": "shaa97102", "email": "user@example.com", "code": "A12B34" }필드명 타입 제약조건 설명 예시 user_id string minLength=1, maxLength=50 유저 ID "shaa97102"email string 유효한 이메일 형식 인증 코드를 전송한 이메일 주소 "user@example.com"code string minLength=6, maxLength=6 6자리 인증 코드 "A12B34" - 응답: 인증 코드 검증 결과 메시지
🛠 응답 구조
일반 응답
- 정상 응답 예시:
{ "status": "success", "message": "인증 코드가 전송되었습니다. 이메일을 확인해주세요." }
HATEOAS 링크
- 링크 포함 응답 예시:
{ "Document ID": "614a123456789b0d323e456f", "_links": [ { "href": "/mongo/offices/users/shaa97102", "rel": "self", "type": "GET", "title": "유저 채팅방 ID 생성" }, { "href": "/mongo/offices/users/shaa97102/documents/614a123456789b0d323e456f", "rel": "/users/shaa97102/documents/614a123456789b0d323e456f", "type": "GET", "title": "유저 채팅 불러오기" } ] }
오류 응답
- 오류 응답 예시:
{ "status": "error", "detail": "인증 코드가 일치하지 않습니다.", "code": "invalid_verification_code" }
SpringBoot RoomController 명세서
📢 개요
- API 이름: RoomController
- 설명: 채팅방 및 대화 관리 API
이 API는 Office 모드와 Character 모드의 채팅방을 생성, 관리하고 대화 기록을 저장, 조회, 수정, 삭제하는 기능을 제공합니다.
📍 엔드포인트 목록
🔹 Office 채팅방 (정보 제공 모드)
📌 Office 채팅방 생성
POST /server/rooms/office- 설명: 새로운 Office 채팅방을 생성합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 응답 예시
{ "status": 200, "message": "채팅방이 성공적으로 생성되었습니다.", "mysql_officeroom": { "idx": 3, "userid": "test_VIP", "mongo_chatroomid": "8430b4dc-45a0-47ba-a3e4-a7d01edbfcf3", "createdAt": "2025-03-24T17:54:32.230555456", "updatedAt": "2025-03-24T17:54:32.230581553" } }
📌 Office 채팅방 목록 조회
GET /server/rooms/office- 설명: 사용자의 Office 채팅방 목록을 조회합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 응답 예시
{ "status": 200, "rooms": [ { "roomid": "5df8cf5a-baae-4a53-be70-5eb2215fc237", "Title": "파이썬에 대해서 자..." } ] }
📌 Office 채팅방 삭제
DELETE /server/rooms/office/{roomId}- 설명: 특정 Office 채팅방을 삭제합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 경로 매개변수
...
Release v1.0.4
릴리스 v1.0.4
FastAPI 명세서
📌 ChatBot FastAPI 명세서
📢 개요
이 API는 MongoDB 데이터 관리와 이메일 인증을 위한 기능을 제공합니다.
📍 엔드포인트 목록
🔹 MongoDB 라우터
📌 데이터베이스 관리
-
GET /mongo/db- 설명: 데이터베이스 서버에 있는 모든 데이터베이스의 목록을 반환합니다.
- 응답: 데이터베이스 목록 및 관련 링크를 포함한 JSON 객체
-
GET /mongo/collections- 설명: 현재 선택된 데이터베이스 내의 모든 컬렉션 이름을 반환합니다.
- 쿼리 파라미터:
파라미터명 필수 여부 설명 db_name 필수 데이터베이스 이름 - 응답: 컬렉션 목록 및 관련 링크를 포함한 JSON 객체
🔹 MongoDB / Offices
📌 오피스 채팅방 관리
-
POST /mongo/offices/users/{user_id}- 설명: 새로운 유저 채팅 문서(채팅 로그)를 MongoDB에 생성합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID - 응답: 생성된 채팅방 ID 및 관련 API 링크 정보
-
GET /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서의 채팅 로그를 MongoDB에서 불러옵니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 채팅 로그 내용 및 관련 API 링크 정보
-
PUT /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서에 유저의 채팅 데이터를 저장합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
{ "input_data": "안녕하세요, 챗봇!", "output_data": "안녕하세요! 무엇을 도와드릴까요?" }필드명 타입 제약조건 설명 예시 input_data string minLength=1, maxLength=500 사용자 입력 문장 "안녕하세요, 챗봇!"output_data string minLength=1, maxLength=8191 챗봇 출력 문장 "안녕하세요! 무엇을 도와드릴까요?" - 응답: 저장 결과 메시지 및 관련 API 링크 정보
-
PATCH /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 기존 채팅 문서에 유저의 채팅 데이터를 수정합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
PUT요청과 동일한 형식 - 응답: 수정 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 유저의 채팅방을 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/offices/users/{user_id}/documents/{document_id}/idx/{index}- 설명: 최신 대화 ~ 선택된 채팅을 로그에서 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID index integer 삭제를 시작할 채팅 로그의 인덱스 - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
🔹 MongoDB / Characters
📌 캐릭터 채팅방 관리
-
POST /mongo/characters/users/{user_id}- 설명: 새로운 유저 채팅 문서(채팅 로그)를 MongoDB에 생성합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID - 요청 본문:
{ "character_idx": 1 }필드명 타입 설명 예시 character_idx integer 캐릭터 id 1 - 응답: 생성된 채팅방 ID 및 관련 API 링크 정보
-
GET /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서의 채팅 로그를 MongoDB에서 불러옵니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 채팅 로그 내용, 캐릭터 인덱스 및 관련 API 링크 정보
-
PUT /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서에 유저의 채팅 데이터를 저장합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
{ "img_url": "https://drive.google.com/thumbnail?id=12PqUS6bj4eAO_fLDaWQmoq94-771xfim", "input_data": "안녕하세요, 챗봇!", "output_data": "안녕하세요! 무엇을 도와드릴까요?" }필드명 타입 제약조건 설명 예시 img_url string minLength=1, maxLength=2048 이미지 URL "https://drive.google.com/thumbnail?id=12PqUS6bj4eAO_fLDaWQmoq94-771xfim"input_data string minLength=1, maxLength=500 사용자 입력 문장 "안녕하세요, 챗봇!"output_data string minLength=1, maxLength=8191 챗봇 출력 문장 "안녕하세요! 무엇을 도와드릴까요?" - 응답: 저장 결과 메시지 및 관련 API 링크 정보
-
PATCH /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 기존 채팅 문서에 유저의 채팅 데이터를 수정합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
PUT요청과 동일한 형식 - 응답: 수정 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 유저의 채팅방을 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/characters/users/{user_id}/documents/{document_id}/idx/{index}- 설명: 최신 대화 ~ 선택된 채팅을 로그에서 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID index integer 삭제를 시작할 채팅 로그의 인덱스 - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
🔹 인증
📌 이메일 인증
-
POST /auth/verification/send- 설명: 사용자 이메일로 인증 코드를 전송합니다.
- 요청 본문:
{ "user_id": "shaa97102", "email": "user@example.com" }필드명 타입 제약조건 설명 예시 user_id string minLength=1, maxLength=50 유저 ID "shaa97102"email string 유효한 이메일 형식 인증 코드를 전송할 이메일 주소 "user@example.com" - 응답: 인증 코드 전송 결과 메시지
-
POST /auth/verification/verify- 설명: 사용자로부터 받은 인증 코드를 검증합니다.
- 요청 본문:
{ "user_id": "shaa97102", "email": "user@example.com", "code": "A12B34" }필드명 타입 제약조건 설명 예시 user_id string minLength=1, maxLength=50 유저 ID "shaa97102"email string 유효한 이메일 형식 인증 코드를 전송한 이메일 주소 "user@example.com"code string minLength=6, maxLength=6 6자리 인증 코드 "A12B34" - 응답: 인증 코드 검증 결과 메시지
🛠 응답 구조
일반 응답
- 정상 응답 예시:
{ "status": "success", "message": "인증 코드가 전송되었습니다. 이메일을 확인해주세요." }
HATEOAS 링크
- 링크 포함 응답 예시:
{ "Document ID": "614a123456789b0d323e456f", "_links": [ { "href": "/mongo/offices/users/shaa97102", "rel": "self", "type": "GET", "title": "유저 채팅방 ID 생성" }, { "href": "/mongo/offices/users/shaa97102/documents/614a123456789b0d323e456f", "rel": "/users/shaa97102/documents/614a123456789b0d323e456f", "type": "GET", "title": "유저 채팅 불러오기" } ] }
오류 응답
- 오류 응답 예시:
{ "status": "error", "detail": "인증 코드가 일치하지 않습니다.", "code": "invalid_verification_code" }
SpringBoot RoomController 명세서
📢 개요
- API 이름: RoomController
- 설명: 채팅방 및 대화 관리 API
이 API는 Office 모드와 Character 모드의 채팅방을 생성, 관리하고 대화 기록을 저장, 조회, 수정, 삭제하는 기능을 제공합니다.
📍 엔드포인트 목록
🔹 Office 채팅방 (정보 제공 모드)
📌 Office 채팅방 생성
POST /server/rooms/office- 설명: 새로운 Office 채팅방을 생성합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 응답 예시
{ "status": 200, "message": "채팅방이 성공적으로 생성되었습니다.", "mysql_officeroom": { "idx": 3, "userid": "test_VIP", "mongo_chatroomid": "8430b4dc-45a0-47ba-a3e4-a7d01edbfcf3", "createdAt": "2025-03-24T17:54:32.230555456", "updatedAt": "2025-03-24T17:54:32.230581553" } }
📌 Office 채팅방 목록 조회
GET /server/rooms/office- 설명: 사용자의 Office 채팅방 목록을 조회합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 응답 예시
{ "status": 200, "rooms": [ { "roomid": "5df8cf5a-baae-4a53-be70-5eb2215fc237", "Title": "파이썬에 대해서 자..." } ] }
📌 Office 채팅방 삭제
DELETE /server/rooms/office/{roomId}- 설명: 특정 Office 채팅방을 삭제합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 경로 매개변수
...
Release v1.0.3
릴리스 v1.0.3
FastAPI 명세서
📌 ChatBot FastAPI 명세서
📢 개요
이 API는 MongoDB 데이터 관리와 이메일 인증을 위한 기능을 제공합니다.
📍 엔드포인트 목록
🔹 MongoDB 라우터
📌 데이터베이스 관리
-
GET /mongo/db- 설명: 데이터베이스 서버에 있는 모든 데이터베이스의 목록을 반환합니다.
- 응답: 데이터베이스 목록 및 관련 링크를 포함한 JSON 객체
-
GET /mongo/collections- 설명: 현재 선택된 데이터베이스 내의 모든 컬렉션 이름을 반환합니다.
- 쿼리 파라미터:
파라미터명 필수 여부 설명 db_name 필수 데이터베이스 이름 - 응답: 컬렉션 목록 및 관련 링크를 포함한 JSON 객체
🔹 MongoDB / Offices
📌 오피스 채팅방 관리
-
POST /mongo/offices/users/{user_id}- 설명: 새로운 유저 채팅 문서(채팅 로그)를 MongoDB에 생성합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID - 응답: 생성된 채팅방 ID 및 관련 API 링크 정보
-
GET /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서의 채팅 로그를 MongoDB에서 불러옵니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 채팅 로그 내용 및 관련 API 링크 정보
-
PUT /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서에 유저의 채팅 데이터를 저장합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
{ "input_data": "안녕하세요, 챗봇!", "output_data": "안녕하세요! 무엇을 도와드릴까요?" }필드명 타입 제약조건 설명 예시 input_data string minLength=1, maxLength=500 사용자 입력 문장 "안녕하세요, 챗봇!"output_data string minLength=1, maxLength=8191 챗봇 출력 문장 "안녕하세요! 무엇을 도와드릴까요?" - 응답: 저장 결과 메시지 및 관련 API 링크 정보
-
PATCH /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 기존 채팅 문서에 유저의 채팅 데이터를 수정합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
PUT요청과 동일한 형식 - 응답: 수정 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 유저의 채팅방을 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/offices/users/{user_id}/documents/{document_id}/idx/{index}- 설명: 최신 대화 ~ 선택된 채팅을 로그에서 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID index integer 삭제를 시작할 채팅 로그의 인덱스 - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
🔹 MongoDB / Characters
📌 캐릭터 채팅방 관리
-
POST /mongo/characters/users/{user_id}- 설명: 새로운 유저 채팅 문서(채팅 로그)를 MongoDB에 생성합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID - 요청 본문:
{ "character_idx": 1 }필드명 타입 설명 예시 character_idx integer 캐릭터 id 1 - 응답: 생성된 채팅방 ID 및 관련 API 링크 정보
-
GET /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서의 채팅 로그를 MongoDB에서 불러옵니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 채팅 로그 내용, 캐릭터 인덱스 및 관련 API 링크 정보
-
PUT /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서에 유저의 채팅 데이터를 저장합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
{ "img_url": "https://drive.google.com/thumbnail?id=12PqUS6bj4eAO_fLDaWQmoq94-771xfim", "input_data": "안녕하세요, 챗봇!", "output_data": "안녕하세요! 무엇을 도와드릴까요?" }필드명 타입 제약조건 설명 예시 img_url string minLength=1, maxLength=2048 이미지 URL "https://drive.google.com/thumbnail?id=12PqUS6bj4eAO_fLDaWQmoq94-771xfim"input_data string minLength=1, maxLength=500 사용자 입력 문장 "안녕하세요, 챗봇!"output_data string minLength=1, maxLength=8191 챗봇 출력 문장 "안녕하세요! 무엇을 도와드릴까요?" - 응답: 저장 결과 메시지 및 관련 API 링크 정보
-
PATCH /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 기존 채팅 문서에 유저의 채팅 데이터를 수정합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
PUT요청과 동일한 형식 - 응답: 수정 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 유저의 채팅방을 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/characters/users/{user_id}/documents/{document_id}/idx/{index}- 설명: 최신 대화 ~ 선택된 채팅을 로그에서 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID index integer 삭제를 시작할 채팅 로그의 인덱스 - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
🔹 인증
📌 이메일 인증
-
POST /auth/verification/send- 설명: 사용자 이메일로 인증 코드를 전송합니다.
- 요청 본문:
{ "user_id": "shaa97102", "email": "user@example.com" }필드명 타입 제약조건 설명 예시 user_id string minLength=1, maxLength=50 유저 ID "shaa97102"email string 유효한 이메일 형식 인증 코드를 전송할 이메일 주소 "user@example.com" - 응답: 인증 코드 전송 결과 메시지
-
POST /auth/verification/verify- 설명: 사용자로부터 받은 인증 코드를 검증합니다.
- 요청 본문:
{ "user_id": "shaa97102", "email": "user@example.com", "code": "A12B34" }필드명 타입 제약조건 설명 예시 user_id string minLength=1, maxLength=50 유저 ID "shaa97102"email string 유효한 이메일 형식 인증 코드를 전송한 이메일 주소 "user@example.com"code string minLength=6, maxLength=6 6자리 인증 코드 "A12B34" - 응답: 인증 코드 검증 결과 메시지
🛠 응답 구조
일반 응답
- 정상 응답 예시:
{ "status": "success", "message": "인증 코드가 전송되었습니다. 이메일을 확인해주세요." }
HATEOAS 링크
- 링크 포함 응답 예시:
{ "Document ID": "614a123456789b0d323e456f", "_links": [ { "href": "/mongo/offices/users/shaa97102", "rel": "self", "type": "GET", "title": "유저 채팅방 ID 생성" }, { "href": "/mongo/offices/users/shaa97102/documents/614a123456789b0d323e456f", "rel": "/users/shaa97102/documents/614a123456789b0d323e456f", "type": "GET", "title": "유저 채팅 불러오기" } ] }
오류 응답
- 오류 응답 예시:
{ "status": "error", "detail": "인증 코드가 일치하지 않습니다.", "code": "invalid_verification_code" }
SpringBoot RoomController 명세서
📢 개요
- API 이름: RoomController
- 설명: 채팅방 및 대화 관리 API
이 API는 Office 모드와 Character 모드의 채팅방을 생성, 관리하고 대화 기록을 저장, 조회, 수정, 삭제하는 기능을 제공합니다.
📍 엔드포인트 목록
🔹 Office 채팅방 (정보 제공 모드)
📌 Office 채팅방 생성
POST /server/rooms/office- 설명: 새로운 Office 채팅방을 생성합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 응답 예시
{ "status": 200, "message": "채팅방이 성공적으로 생성되었습니다.", "mysql_officeroom": { "idx": 3, "userid": "test_VIP", "mongo_chatroomid": "8430b4dc-45a0-47ba-a3e4-a7d01edbfcf3", "createdAt": "2025-03-24T17:54:32.230555456", "updatedAt": "2025-03-24T17:54:32.230581553" } }
📌 Office 채팅방 목록 조회
GET /server/rooms/office- 설명: 사용자의 Office 채팅방 목록을 조회합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 응답 예시
{ "status": 200, "rooms": [ { "roomid": "5df8cf5a-baae-4a53-be70-5eb2215fc237", "Title": "파이썬에 대해서 자..." } ] }
📌 Office 채팅방 삭제
DELETE /server/rooms/office/{roomId}- 설명: 특정 Office 채팅방을 삭제합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 경로 매개변수
...
Release v1.0.1
릴리스 v1.0.1
FastAPI 명세서
📌 ChatBot FastAPI 명세서
📢 개요
이 API는 MongoDB 데이터 관리와 이메일 인증을 위한 기능을 제공합니다.
📍 엔드포인트 목록
🔹 MongoDB 라우터
📌 데이터베이스 관리
-
GET /mongo/db- 설명: 데이터베이스 서버에 있는 모든 데이터베이스의 목록을 반환합니다.
- 응답: 데이터베이스 목록 및 관련 링크를 포함한 JSON 객체
-
GET /mongo/collections- 설명: 현재 선택된 데이터베이스 내의 모든 컬렉션 이름을 반환합니다.
- 쿼리 파라미터:
파라미터명 필수 여부 설명 db_name 필수 데이터베이스 이름 - 응답: 컬렉션 목록 및 관련 링크를 포함한 JSON 객체
🔹 MongoDB / Offices
📌 오피스 채팅방 관리
-
POST /mongo/offices/users/{user_id}- 설명: 새로운 유저 채팅 문서(채팅 로그)를 MongoDB에 생성합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID - 응답: 생성된 채팅방 ID 및 관련 API 링크 정보
-
GET /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서의 채팅 로그를 MongoDB에서 불러옵니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 채팅 로그 내용 및 관련 API 링크 정보
-
PUT /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서에 유저의 채팅 데이터를 저장합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
{ "input_data": "안녕하세요, 챗봇!", "output_data": "안녕하세요! 무엇을 도와드릴까요?" }필드명 타입 제약조건 설명 예시 input_data string minLength=1, maxLength=500 사용자 입력 문장 "안녕하세요, 챗봇!"output_data string minLength=1, maxLength=8191 챗봇 출력 문장 "안녕하세요! 무엇을 도와드릴까요?" - 응답: 저장 결과 메시지 및 관련 API 링크 정보
-
PATCH /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 기존 채팅 문서에 유저의 채팅 데이터를 수정합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
PUT요청과 동일한 형식 - 응답: 수정 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 유저의 채팅방을 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/offices/users/{user_id}/documents/{document_id}/idx/{index}- 설명: 최신 대화 ~ 선택된 채팅을 로그에서 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID index integer 삭제를 시작할 채팅 로그의 인덱스 - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
🔹 MongoDB / Characters
📌 캐릭터 채팅방 관리
-
POST /mongo/characters/users/{user_id}- 설명: 새로운 유저 채팅 문서(채팅 로그)를 MongoDB에 생성합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID - 요청 본문:
{ "character_idx": 1 }필드명 타입 설명 예시 character_idx integer 캐릭터 id 1 - 응답: 생성된 채팅방 ID 및 관련 API 링크 정보
-
GET /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서의 채팅 로그를 MongoDB에서 불러옵니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 채팅 로그 내용, 캐릭터 인덱스 및 관련 API 링크 정보
-
PUT /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서에 유저의 채팅 데이터를 저장합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
{ "img_url": "https://drive.google.com/thumbnail?id=12PqUS6bj4eAO_fLDaWQmoq94-771xfim", "input_data": "안녕하세요, 챗봇!", "output_data": "안녕하세요! 무엇을 도와드릴까요?" }필드명 타입 제약조건 설명 예시 img_url string minLength=1, maxLength=2048 이미지 URL "https://drive.google.com/thumbnail?id=12PqUS6bj4eAO_fLDaWQmoq94-771xfim"input_data string minLength=1, maxLength=500 사용자 입력 문장 "안녕하세요, 챗봇!"output_data string minLength=1, maxLength=8191 챗봇 출력 문장 "안녕하세요! 무엇을 도와드릴까요?" - 응답: 저장 결과 메시지 및 관련 API 링크 정보
-
PATCH /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 기존 채팅 문서에 유저의 채팅 데이터를 수정합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
PUT요청과 동일한 형식 - 응답: 수정 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 유저의 채팅방을 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/characters/users/{user_id}/documents/{document_id}/idx/{index}- 설명: 최신 대화 ~ 선택된 채팅을 로그에서 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID index integer 삭제를 시작할 채팅 로그의 인덱스 - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
🔹 인증
📌 이메일 인증
-
POST /auth/verification/send- 설명: 사용자 이메일로 인증 코드를 전송합니다.
- 요청 본문:
{ "user_id": "shaa97102", "email": "user@example.com" }필드명 타입 제약조건 설명 예시 user_id string minLength=1, maxLength=50 유저 ID "shaa97102"email string 유효한 이메일 형식 인증 코드를 전송할 이메일 주소 "user@example.com" - 응답: 인증 코드 전송 결과 메시지
-
POST /auth/verification/verify- 설명: 사용자로부터 받은 인증 코드를 검증합니다.
- 요청 본문:
{ "user_id": "shaa97102", "email": "user@example.com", "code": "A12B34" }필드명 타입 제약조건 설명 예시 user_id string minLength=1, maxLength=50 유저 ID "shaa97102"email string 유효한 이메일 형식 인증 코드를 전송한 이메일 주소 "user@example.com"code string minLength=6, maxLength=6 6자리 인증 코드 "A12B34" - 응답: 인증 코드 검증 결과 메시지
🛠 응답 구조
일반 응답
- 정상 응답 예시:
{ "status": "success", "message": "인증 코드가 전송되었습니다. 이메일을 확인해주세요." }
HATEOAS 링크
- 링크 포함 응답 예시:
{ "Document ID": "614a123456789b0d323e456f", "_links": [ { "href": "/mongo/offices/users/shaa97102", "rel": "self", "type": "GET", "title": "유저 채팅방 ID 생성" }, { "href": "/mongo/offices/users/shaa97102/documents/614a123456789b0d323e456f", "rel": "/users/shaa97102/documents/614a123456789b0d323e456f", "type": "GET", "title": "유저 채팅 불러오기" } ] }
오류 응답
- 오류 응답 예시:
{ "status": "error", "detail": "인증 코드가 일치하지 않습니다.", "code": "invalid_verification_code" }
SpringBoot RoomController 명세서
📢 개요
- API 이름: RoomController
- 설명: 채팅방 및 대화 관리 API
이 API는 Office 모드와 Character 모드의 채팅방을 생성, 관리하고 대화 기록을 저장, 조회, 수정, 삭제하는 기능을 제공합니다.
📍 엔드포인트 목록
🔹 Office 채팅방 (정보 제공 모드)
📌 Office 채팅방 생성
POST /server/rooms/office- 설명: 새로운 Office 채팅방을 생성합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 응답 예시
{ "status": 200, "message": "채팅방이 성공적으로 생성되었습니다.", "mysql_officeroom": { "idx": 3, "userid": "test_VIP", "mongo_chatroomid": "8430b4dc-45a0-47ba-a3e4-a7d01edbfcf3", "createdAt": "2025-03-24T17:54:32.230555456", "updatedAt": "2025-03-24T17:54:32.230581553" } }
📌 Office 채팅방 목록 조회
GET /server/rooms/office- 설명: 사용자의 Office 채팅방 목록을 조회합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 응답 예시
{ "status": 200, "rooms": [ { "roomid": "5df8cf5a-baae-4a53-be70-5eb2215fc237", "Title": "파이썬에 대해서 자..." } ] }
📌 Office 채팅방 삭제
DELETE /server/rooms/office/{roomId}- 설명: 특정 Office 채팅방을 삭제합니다.
- 헤더
필드명 타입 필수 설명 Authorization string 필수 사용자 인증 토큰 - 경로 매개변수
...
Release v1.0.0
📌 ChatBot FastAPI 명세서
📢 개요
이 API는 MongoDB 데이터 관리와 이메일 인증을 위한 기능을 제공합니다.
📍 엔드포인트 목록
🔹 MongoDB 라우터
📌 데이터베이스 관리
-
GET /mongo/db- 설명: 데이터베이스 서버에 있는 모든 데이터베이스의 목록을 반환합니다.
- 응답: 데이터베이스 목록 및 관련 링크를 포함한 JSON 객체
-
GET /mongo/collections- 설명: 현재 선택된 데이터베이스 내의 모든 컬렉션 이름을 반환합니다.
- 쿼리 파라미터:
파라미터명 필수 여부 설명 db_name 필수 데이터베이스 이름 - 응답: 컬렉션 목록 및 관련 링크를 포함한 JSON 객체
🔹 MongoDB / Offices
📌 오피스 채팅방 관리
-
POST /mongo/offices/users/{user_id}- 설명: 새로운 유저 채팅 문서(채팅 로그)를 MongoDB에 생성합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID - 응답: 생성된 채팅방 ID 및 관련 API 링크 정보
-
GET /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서의 채팅 로그를 MongoDB에서 불러옵니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 채팅 로그 내용 및 관련 API 링크 정보
-
PUT /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서에 유저의 채팅 데이터를 저장합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
{ "input_data": "안녕하세요, 챗봇!", "output_data": "안녕하세요! 무엇을 도와드릴까요?" }필드명 타입 제약조건 설명 예시 input_data string minLength=1, maxLength=500 사용자 입력 문장 "안녕하세요, 챗봇!"output_data string minLength=1, maxLength=8191 챗봇 출력 문장 "안녕하세요! 무엇을 도와드릴까요?" - 응답: 저장 결과 메시지 및 관련 API 링크 정보
-
PATCH /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 기존 채팅 문서에 유저의 채팅 데이터를 수정합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
PUT요청과 동일한 형식 - 응답: 수정 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/offices/users/{user_id}/documents/{document_id}- 설명: 유저의 채팅방을 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/offices/users/{user_id}/documents/{document_id}/idx/{index}- 설명: 최신 대화 ~ 선택된 채팅을 로그에서 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID index integer 삭제를 시작할 채팅 로그의 인덱스 - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
🔹 MongoDB / Characters
📌 캐릭터 채팅방 관리
-
POST /mongo/characters/users/{user_id}- 설명: 새로운 유저 채팅 문서(채팅 로그)를 MongoDB에 생성합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID - 요청 본문:
{ "character_idx": 1 }필드명 타입 설명 예시 character_idx integer 캐릭터 id 1 - 응답: 생성된 채팅방 ID 및 관련 API 링크 정보
-
GET /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서의 채팅 로그를 MongoDB에서 불러옵니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 채팅 로그 내용, 캐릭터 인덱스 및 관련 API 링크 정보
-
PUT /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 생성된 채팅 문서에 유저의 채팅 데이터를 저장합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
{ "img_url": "https://drive.google.com/thumbnail?id=12PqUS6bj4eAO_fLDaWQmoq94-771xfim", "input_data": "안녕하세요, 챗봇!", "output_data": "안녕하세요! 무엇을 도와드릴까요?" }필드명 타입 제약조건 설명 예시 img_url string minLength=1, maxLength=2048 이미지 URL "https://drive.google.com/thumbnail?id=12PqUS6bj4eAO_fLDaWQmoq94-771xfim"input_data string minLength=1, maxLength=500 사용자 입력 문장 "안녕하세요, 챗봇!"output_data string minLength=1, maxLength=8191 챗봇 출력 문장 "안녕하세요! 무엇을 도와드릴까요?" - 응답: 저장 결과 메시지 및 관련 API 링크 정보
-
PATCH /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 기존 채팅 문서에 유저의 채팅 데이터를 수정합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 요청 본문:
PUT요청과 동일한 형식 - 응답: 수정 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/characters/users/{user_id}/documents/{document_id}- 설명: 유저의 채팅방을 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
-
DELETE /mongo/characters/users/{user_id}/documents/{document_id}/idx/{index}- 설명: 최신 대화 ~ 선택된 채팅을 로그에서 삭제합니다.
- 경로 파라미터:
파라미터명 타입 설명 user_id string 유저 ID document_id string 채팅방 ID index integer 삭제를 시작할 채팅 로그의 인덱스 - 응답: 삭제 결과 메시지 및 관련 API 링크 정보
🔹 인증
📌 이메일 인증
-
POST /auth/verification/send- 설명: 사용자 이메일로 인증 코드를 전송합니다.
- 요청 본문:
{ "user_id": "shaa97102", "email": "user@example.com" }필드명 타입 제약조건 설명 예시 user_id string minLength=1, maxLength=50 유저 ID "shaa97102"email string 유효한 이메일 형식 인증 코드를 전송할 이메일 주소 "user@example.com" - 응답: 인증 코드 전송 결과 메시지
-
POST /auth/verification/verify- 설명: 사용자로부터 받은 인증 코드를 검증합니다.
- 요청 본문:
{ "user_id": "shaa97102", "email": "user@example.com", "code": "A12B34" }필드명 타입 제약조건 설명 예시 user_id string minLength=1, maxLength=50 유저 ID "shaa97102"email string 유효한 이메일 형식 인증 코드를 전송한 이메일 주소 "user@example.com"code string minLength=6, maxLength=6 6자리 인증 코드 "A12B34" - 응답: 인증 코드 검증 결과 메시지
🛠 응답 구조
일반 응답
- 정상 응답 예시:
{ "status": "success", "message": "인증 코드가 전송되었습니다. 이메일을 확인해주세요." }
HATEOAS 링크
- 링크 포함 응답 예시:
{ "Document ID": "614a123456789b0d323e456f", "_links": [ { "href": "/mongo/offices/users/shaa97102", "rel": "self", "type": "GET", "title": "유저 채팅방 ID 생성" }, { "href": "/mongo/offices/users/shaa97102/documents/614a123456789b0d323e456f", "rel": "/users/shaa97102/documents/614a123456789b0d323e456f", "type": "GET", "title": "유저 채팅 불러오기" } ] }
오류 응답
- 오류 응답 예시:
{ "status": "error", "detail": "인증 코드가 일치하지 않습니다.", "code": "invalid_verification_code" }
Release v0.5.1
Full Changelog: v0.4.3...v0.5.1