Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR implements end-to-end quiz generation by fetching and parsing input files, summarizing content, splitting it into chunks, and orchestrating calls to Bedrock for question creation.
- Add
process_fileto extract text from PDF and PPTX files. - Introduce
create_chunksto divide text into segments based on requested quiz count. - Update
GenerateServiceto integrate parsing, summarization, chunking, and DTO changes.
Reviewed Changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| app/util/parsing.py | New function to download and extract text from files. |
| app/util/create_chunks.py | Async chunking utility based on quiz count. |
| app/service/generate_service.py | Service orchestration for parsing, summary, and quiz. |
| app/dto/response/generate_response.py | Refactor response DTO to quiz field. |
| app/dto/request/generate_request.py | Add type field to request. |
| app/adapter/summary_bedrock.py | Adapter for generating summaries via AWS Lambda. |
| app/adapter/request_to_bedrock.py | Timeout update and debug print disabled. |
Comments suppressed due to low confidence (1)
app/dto/request/generate_request.py:7
- [nitpick] Using
typeas a field name shadows the built-intype. Consider renaming to something more descriptive likequiz_typeorfile_type.
type: str
| async def create_chunks(text: str, quiz_count: int): | ||
| try: | ||
| chunks = [] | ||
| chunk_count = quiz_count // 5 |
There was a problem hiding this comment.
Calculating chunk_count as quiz_count // 5 can yield zero when quiz_count < 5, leading to a division by zero on the next line. Consider validating or clamping chunk_count to at least 1.
| chunk_count = quiz_count // 5 | |
| chunk_count = max(quiz_count // 5, 1) |
| import tempfile | ||
| from app.dto.request.generate_request import GenerateRequest | ||
|
|
There was a problem hiding this comment.
[nitpick] The broad try/except simply re-raises the exception without adding context. Consider removing it or logging additional details to improve error diagnosis.
| import tempfile | |
| from app.dto.request.generate_request import GenerateRequest | |
| import tempfile | |
| import logging | |
| from app.dto.request.generate_request import GenerateRequest | |
| logging.basicConfig(level=logging.ERROR) | |
| logger = logging.getLogger(__name__) |
| try: | ||
| chunks = [] | ||
| chunk_count = quiz_count // 5 | ||
| chunk_size = len(text) // chunk_count | ||
| for i in range(chunk_count): | ||
| start = i * chunk_size | ||
| end = (i + 1) * chunk_size if i < chunk_count - 1 else len(text) | ||
| chunks.append(text[start:end]) | ||
|
|
||
| return chunks | ||
| except Exception as e: | ||
| raise e No newline at end of file |
There was a problem hiding this comment.
[nitpick] The try/except block here just rethrows the caught exception. It can be removed to simplify the code unless you plan to add specific error handling.
| try: | |
| chunks = [] | |
| chunk_count = quiz_count // 5 | |
| chunk_size = len(text) // chunk_count | |
| for i in range(chunk_count): | |
| start = i * chunk_size | |
| end = (i + 1) * chunk_size if i < chunk_count - 1 else len(text) | |
| chunks.append(text[start:end]) | |
| return chunks | |
| except Exception as e: | |
| raise e | |
| chunks = [] | |
| chunk_count = quiz_count // 5 | |
| chunk_size = len(text) // chunk_count | |
| for i in range(chunk_count): | |
| start = i * chunk_size | |
| end = (i + 1) * chunk_size if i < chunk_count - 1 else len(text) | |
| chunks.append(text[start:end]) | |
| return chunks |
| @@ -0,0 +1,40 @@ | |||
| from app.util.parsing import process_file | |||
There was a problem hiding this comment.
Imported process_file is unused in this module. Consider removing this import to avoid confusion.
| from app.util.parsing import process_file |
| @@ -0,0 +1,40 @@ | |||
| from app.util.parsing import process_file | |||
| from app.dto.request.generate_request import GenerateRequest | |||
There was a problem hiding this comment.
Imported GenerateRequest is unused. You can remove this import to keep the code clean.
| from app.dto.request.generate_request import GenerateRequest |
app/adapter/request_to_bedrock.py
Outdated
| count = 0 | ||
| async for msg in pubsub.listen(): | ||
| print(msg) | ||
| # print(msg) |
There was a problem hiding this comment.
Leftover commented-out debug print. Remove it or replace with structured logging if needed.
* [ICC-25] 구성 완료 * [ICC-29] 구현 완료 * [ICC-29] 응답 구조 수정 * [ICC-30] 작성 완료 * [ICC-31] 레디스 구독 패턴 구현 완료 * [ICC-31] 레디스 클라이언트를 각 생성마다 생성되게함 * [ICC-31] 필요 없는 의존성 제거 * [ICC-31] requirements.txt 등록 * [ICC-31] 베드락에 요청하는 코드 분리 * [ICC-31] 타입아웃 설정 * [ICC-32] 첫번째 시도 * [ICC-32] 두번째 시도 * [ICC-32] 세번째 시도 * [ICC-32] 네번째 시도 * [ICC-32] 다섯번째 시도 * [ICC-32] 성공 * [ICC-32] 리모트환경에서는 바로 SQS를 보게함 * [ICC-32] 임시 수정 * [ICC-32] boto3 의존성 추가 * [ICC-32] 리전 추가 * [ICC-32] 반응 브랜치 변경 * [ICC-39] 구현 완료 * [ICC-47] quiz parsing (#13) * [ICC-35] Create 5 Quiz * ICC-38 json 객체 테스트 * [ICC-47] Redis 주석 처리 해제 --------- Co-authored-by: Oh YoungJe <pine7420@naver.com> * [ICC-49] Dependency 해결 * [ICC-50] API서버 연결 간 문제 해결 (#15) * [ICC-50] generation으로 엔드포인트 변경 * [ICC-50] api와 연결간 오류 해결 * [ICC-53] 구현 완료 * [ICC-53] 로거, 전역 예외처리기 추가 * [ICC-53] 일부 수정 * [ICC-57] 구현 완료 * [ICC-67] 응답 구조 수정 완료 * [ICC-63] Webb's DOK # Conflicts: # app/service/generate_service.py * [ICC-63] 추가 코드 작성 * [ICC-70] api 수정 * [ICC-48] MCP 기능 구현 완료 * [ICC-48] MCP 리서치 * [ICC-48] 엔드포인트 분리 * [ICC-74] 요청 dto 변경 * [ICC-74] 페이지 일부만 가져오기 구현 완료 * [ICC-74] 파워포인트도 적용 완료 * [ICC-74] 불필요한 로그출력 제거 * [ICC-74] 페이지 선택 방식 변경 * [ICC-76] 발생한 문제 해결 * [ICC-76] 코드 수정 * [ICC-80] 프롬프트 추가 * [ICC-80] 프롬프트 추가 * [ICC-80] 롤백 * [ICC-80] 롤백 * [ICC-87] 최대 청크 개수 증가 * [ICC-87] 기본 구조 작성 * [ICC-87] 레디스 분산락 구현 * [ICC-87] 필요 없는 레디스 함수 제거: * [ICC-87] 한번에 데이터를 넣게 함 * [ICC-99] generate dto 변경 * [ICC-99] 구현 완료 * [ICC-99] generate dto 변경 * [ICC-99] 구현 완료 * [ICC-94] specific explanation 서비스 추가 * [ICC-94] 구현완료 * ICC-112 OX 프롬프트 수정 * [ICC-112] 리팩터링 + BLANK 타입 추가 * [ICC-134] 필요한 프롬프트 추가 * [ICC-164] 작성 완료 --------- Co-authored-by: 이찬우 <105221020+ChanJinYeon@users.noreply.github.com> Co-authored-by: Adansonia <lcw061145@gmail.com> Co-authored-by: lhoju0158 <lhoju0158@gmail.com>
* [ICC-25] 구성 완료 * [ICC-29] 구현 완료 * [ICC-29] 응답 구조 수정 * [ICC-30] 작성 완료 * [ICC-31] 레디스 구독 패턴 구현 완료 * [ICC-31] 레디스 클라이언트를 각 생성마다 생성되게함 * [ICC-31] 필요 없는 의존성 제거 * [ICC-31] requirements.txt 등록 * [ICC-31] 베드락에 요청하는 코드 분리 * [ICC-31] 타입아웃 설정 * [ICC-32] 첫번째 시도 * [ICC-32] 두번째 시도 * [ICC-32] 세번째 시도 * [ICC-32] 네번째 시도 * [ICC-32] 다섯번째 시도 * [ICC-32] 성공 * [ICC-32] 리모트환경에서는 바로 SQS를 보게함 * [ICC-32] 임시 수정 * [ICC-32] boto3 의존성 추가 * [ICC-32] 리전 추가 * [ICC-32] 반응 브랜치 변경 * [ICC-39] 구현 완료 * [ICC-47] quiz parsing (#13) * [ICC-35] Create 5 Quiz * ICC-38 json 객체 테스트 * [ICC-47] Redis 주석 처리 해제 --------- Co-authored-by: Oh YoungJe <pine7420@naver.com> * [ICC-49] Dependency 해결 * [ICC-50] API서버 연결 간 문제 해결 (#15) * [ICC-50] generation으로 엔드포인트 변경 * [ICC-50] api와 연결간 오류 해결 * [ICC-53] 구현 완료 * [ICC-53] 로거, 전역 예외처리기 추가 * [ICC-53] 일부 수정 * [ICC-57] 구현 완료 * [ICC-67] 응답 구조 수정 완료 * [ICC-63] Webb's DOK # Conflicts: # app/service/generate_service.py * [ICC-63] 추가 코드 작성 * [ICC-70] api 수정 * [ICC-48] MCP 기능 구현 완료 * [ICC-48] MCP 리서치 * [ICC-48] 엔드포인트 분리 * [ICC-74] 요청 dto 변경 * [ICC-74] 페이지 일부만 가져오기 구현 완료 * [ICC-74] 파워포인트도 적용 완료 * [ICC-74] 불필요한 로그출력 제거 * [ICC-74] 페이지 선택 방식 변경 * [ICC-76] 발생한 문제 해결 * [ICC-76] 코드 수정 * [ICC-80] 프롬프트 추가 * [ICC-80] 프롬프트 추가 * [ICC-80] 롤백 * [ICC-80] 롤백 * [ICC-87] 최대 청크 개수 증가 * [ICC-87] 기본 구조 작성 * [ICC-87] 레디스 분산락 구현 * [ICC-87] 필요 없는 레디스 함수 제거: * [ICC-87] 한번에 데이터를 넣게 함 * [ICC-99] generate dto 변경 * [ICC-99] 구현 완료 * [ICC-99] generate dto 변경 * [ICC-99] 구현 완료 * [ICC-94] specific explanation 서비스 추가 * [ICC-94] 구현완료 * ICC-112 OX 프롬프트 수정 * [ICC-112] 리팩터링 + BLANK 타입 추가 * [ICC-134] 필요한 프롬프트 추가 * [ICC-164] 작성 완료 * [ICC-167] 프롬프트 수정 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 수정 * [ICC-167] 프롬프트 수정 * [ICC-167] 프롬프트 수정 * [ICC-167] 잘못된 프롬프트 반환 수정 * [ICC-167] 잘못된 프롬프트 반환 수정 * [ICC-167] 모델 변경 * [ICC-167] 리팩터링 완료 * [ICC-167] 코드 포맷팅 * [ICC-167] 제약사항 반영 * [ICC-167] 프롬프트 수정 * [ICC-167] 리팩터링 * [ICC-175] 도커 컴포즈 제거 * [ICC-175] 개발 깃허브 액션 스크립터 제거 --------- Co-authored-by: 이찬우 <105221020+ChanJinYeon@users.noreply.github.com> Co-authored-by: Adansonia <lcw061145@gmail.com> Co-authored-by: lhoju0158 <lhoju0158@gmail.com>
* [ICC-25] 구성 완료 * [ICC-29] 구현 완료 * [ICC-29] 응답 구조 수정 * [ICC-30] 작성 완료 * [ICC-31] 레디스 구독 패턴 구현 완료 * [ICC-31] 레디스 클라이언트를 각 생성마다 생성되게함 * [ICC-31] 필요 없는 의존성 제거 * [ICC-31] requirements.txt 등록 * [ICC-31] 베드락에 요청하는 코드 분리 * [ICC-31] 타입아웃 설정 * [ICC-32] 첫번째 시도 * [ICC-32] 두번째 시도 * [ICC-32] 세번째 시도 * [ICC-32] 네번째 시도 * [ICC-32] 다섯번째 시도 * [ICC-32] 성공 * [ICC-32] 리모트환경에서는 바로 SQS를 보게함 * [ICC-32] 임시 수정 * [ICC-32] boto3 의존성 추가 * [ICC-32] 리전 추가 * [ICC-32] 반응 브랜치 변경 * [ICC-39] 구현 완료 * [ICC-47] quiz parsing (#13) * [ICC-35] Create 5 Quiz * ICC-38 json 객체 테스트 * [ICC-47] Redis 주석 처리 해제 --------- Co-authored-by: Oh YoungJe <pine7420@naver.com> * [ICC-49] Dependency 해결 * [ICC-50] API서버 연결 간 문제 해결 (#15) * [ICC-50] generation으로 엔드포인트 변경 * [ICC-50] api와 연결간 오류 해결 * [ICC-53] 구현 완료 * [ICC-53] 로거, 전역 예외처리기 추가 * [ICC-53] 일부 수정 * [ICC-57] 구현 완료 * [ICC-67] 응답 구조 수정 완료 * [ICC-63] Webb's DOK # Conflicts: # app/service/generate_service.py * [ICC-63] 추가 코드 작성 * [ICC-70] api 수정 * [ICC-48] MCP 기능 구현 완료 * [ICC-48] MCP 리서치 * [ICC-48] 엔드포인트 분리 * [ICC-74] 요청 dto 변경 * [ICC-74] 페이지 일부만 가져오기 구현 완료 * [ICC-74] 파워포인트도 적용 완료 * [ICC-74] 불필요한 로그출력 제거 * [ICC-74] 페이지 선택 방식 변경 * [ICC-76] 발생한 문제 해결 * [ICC-76] 코드 수정 * [ICC-80] 프롬프트 추가 * [ICC-80] 프롬프트 추가 * [ICC-80] 롤백 * [ICC-80] 롤백 * [ICC-87] 최대 청크 개수 증가 * [ICC-87] 기본 구조 작성 * [ICC-87] 레디스 분산락 구현 * [ICC-87] 필요 없는 레디스 함수 제거: * [ICC-87] 한번에 데이터를 넣게 함 * [ICC-99] generate dto 변경 * [ICC-99] 구현 완료 * [ICC-99] generate dto 변경 * [ICC-99] 구현 완료 * [ICC-94] specific explanation 서비스 추가 * [ICC-94] 구현완료 * ICC-112 OX 프롬프트 수정 * [ICC-112] 리팩터링 + BLANK 타입 추가 * [ICC-134] 필요한 프롬프트 추가 * [ICC-164] 작성 완료 * [ICC-167] 프롬프트 수정 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 수정 * [ICC-167] 프롬프트 수정 * [ICC-167] 프롬프트 수정 * [ICC-167] 잘못된 프롬프트 반환 수정 * [ICC-167] 잘못된 프롬프트 반환 수정 * [ICC-167] 모델 변경 * [ICC-167] 리팩터링 완료 * [ICC-167] 코드 포맷팅 * [ICC-167] 제약사항 반영 * [ICC-167] 프롬프트 수정 * [ICC-167] 리팩터링 * [ICC-175] 도커 컴포즈 제거 * [ICC-175] 개발 깃허브 액션 스크립터 제거 * [ICC-180] 셔플 로직 추가 * [ICC-180] CD 브랜치명 올바르게 변경 * [ICC-189] 타임아웃시 전체 실패가 아닌 일부라도 반환하게함 * [ICC-192] 로직변경완료 --------- Co-authored-by: 이찬우 <105221020+ChanJinYeon@users.noreply.github.com> Co-authored-by: Adansonia <lcw061145@gmail.com> Co-authored-by: lhoju0158 <lhoju0158@gmail.com>
* [ICC-25] 구성 완료 * [ICC-29] 구현 완료 * [ICC-29] 응답 구조 수정 * [ICC-30] 작성 완료 * [ICC-31] 레디스 구독 패턴 구현 완료 * [ICC-31] 레디스 클라이언트를 각 생성마다 생성되게함 * [ICC-31] 필요 없는 의존성 제거 * [ICC-31] requirements.txt 등록 * [ICC-31] 베드락에 요청하는 코드 분리 * [ICC-31] 타입아웃 설정 * [ICC-32] 첫번째 시도 * [ICC-32] 두번째 시도 * [ICC-32] 세번째 시도 * [ICC-32] 네번째 시도 * [ICC-32] 다섯번째 시도 * [ICC-32] 성공 * [ICC-32] 리모트환경에서는 바로 SQS를 보게함 * [ICC-32] 임시 수정 * [ICC-32] boto3 의존성 추가 * [ICC-32] 리전 추가 * [ICC-32] 반응 브랜치 변경 * [ICC-39] 구현 완료 * [ICC-47] quiz parsing (#13) * [ICC-35] Create 5 Quiz * ICC-38 json 객체 테스트 * [ICC-47] Redis 주석 처리 해제 --------- Co-authored-by: Oh YoungJe <pine7420@naver.com> * [ICC-49] Dependency 해결 * [ICC-50] API서버 연결 간 문제 해결 (#15) * [ICC-50] generation으로 엔드포인트 변경 * [ICC-50] api와 연결간 오류 해결 * [ICC-53] 구현 완료 * [ICC-53] 로거, 전역 예외처리기 추가 * [ICC-53] 일부 수정 * [ICC-57] 구현 완료 * [ICC-67] 응답 구조 수정 완료 * [ICC-63] Webb's DOK # Conflicts: # app/service/generate_service.py * [ICC-63] 추가 코드 작성 * [ICC-70] api 수정 * [ICC-48] MCP 기능 구현 완료 * [ICC-48] MCP 리서치 * [ICC-48] 엔드포인트 분리 * [ICC-74] 요청 dto 변경 * [ICC-74] 페이지 일부만 가져오기 구현 완료 * [ICC-74] 파워포인트도 적용 완료 * [ICC-74] 불필요한 로그출력 제거 * [ICC-74] 페이지 선택 방식 변경 * [ICC-76] 발생한 문제 해결 * [ICC-76] 코드 수정 * [ICC-80] 프롬프트 추가 * [ICC-80] 프롬프트 추가 * [ICC-80] 롤백 * [ICC-80] 롤백 * [ICC-87] 최대 청크 개수 증가 * [ICC-87] 기본 구조 작성 * [ICC-87] 레디스 분산락 구현 * [ICC-87] 필요 없는 레디스 함수 제거: * [ICC-87] 한번에 데이터를 넣게 함 * [ICC-99] generate dto 변경 * [ICC-99] 구현 완료 * [ICC-99] generate dto 변경 * [ICC-99] 구현 완료 * [ICC-94] specific explanation 서비스 추가 * [ICC-94] 구현완료 * ICC-112 OX 프롬프트 수정 * [ICC-112] 리팩터링 + BLANK 타입 추가 * [ICC-134] 필요한 프롬프트 추가 * [ICC-164] 작성 완료 * [ICC-167] 프롬프트 수정 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 수정 * [ICC-167] 프롬프트 수정 * [ICC-167] 프롬프트 수정 * [ICC-167] 잘못된 프롬프트 반환 수정 * [ICC-167] 잘못된 프롬프트 반환 수정 * [ICC-167] 모델 변경 * [ICC-167] 리팩터링 완료 * [ICC-167] 코드 포맷팅 * [ICC-167] 제약사항 반영 * [ICC-167] 프롬프트 수정 * [ICC-167] 리팩터링 * [ICC-175] 도커 컴포즈 제거 * [ICC-175] 개발 깃허브 액션 스크립터 제거 * [ICC-180] 셔플 로직 추가 * [ICC-180] CD 브랜치명 올바르게 변경 * [ICC-189] 타임아웃시 전체 실패가 아닌 일부라도 반환하게함 * [ICC-192] 로직변경완료 * [ICC-194] 선지를 밝히지 말라는 문구 추가 * [ICC-196] 마이그레이션 완료 * [ICC-196] 프롬프트 롤백 * [ICC-196] min quiz size todo에 추가 * [ICC-196] 개행 문구 추가 * [ICC-200] 타입에 따라 셔플하도록 함 * Refactor quiz generation and explanation services; remove unused Bedrock adapter and integrate GPT for specific explanations. Update router to utilize new explanation service. * [ICC-212] 커서를 통한 1차 리팩터링 완료 * [ICC-212] 어댑터 단순화 * [ICC-212] 블랙 포맷팅 적용 * [ICC-212] 기능 동작하게 수정 완료 * [ICC-212] 개행 프롬프트 추가 * [ICC-212] 구성 완료 * [ICC-215] 수정 완료 --------- Co-authored-by: 이찬우 <105221020+ChanJinYeon@users.noreply.github.com> Co-authored-by: Adansonia <lcw061145@gmail.com> Co-authored-by: lhoju0158 <lhoju0158@gmail.com>
* [ICC-25] 구성 완료 * [ICC-29] 구현 완료 * [ICC-29] 응답 구조 수정 * [ICC-30] 작성 완료 * [ICC-31] 레디스 구독 패턴 구현 완료 * [ICC-31] 레디스 클라이언트를 각 생성마다 생성되게함 * [ICC-31] 필요 없는 의존성 제거 * [ICC-31] requirements.txt 등록 * [ICC-31] 베드락에 요청하는 코드 분리 * [ICC-31] 타입아웃 설정 * [ICC-32] 첫번째 시도 * [ICC-32] 두번째 시도 * [ICC-32] 세번째 시도 * [ICC-32] 네번째 시도 * [ICC-32] 다섯번째 시도 * [ICC-32] 성공 * [ICC-32] 리모트환경에서는 바로 SQS를 보게함 * [ICC-32] 임시 수정 * [ICC-32] boto3 의존성 추가 * [ICC-32] 리전 추가 * [ICC-32] 반응 브랜치 변경 * [ICC-39] 구현 완료 * [ICC-47] quiz parsing (#13) * [ICC-35] Create 5 Quiz * ICC-38 json 객체 테스트 * [ICC-47] Redis 주석 처리 해제 --------- Co-authored-by: Oh YoungJe <pine7420@naver.com> * [ICC-49] Dependency 해결 * [ICC-50] API서버 연결 간 문제 해결 (#15) * [ICC-50] generation으로 엔드포인트 변경 * [ICC-50] api와 연결간 오류 해결 * [ICC-53] 구현 완료 * [ICC-53] 로거, 전역 예외처리기 추가 * [ICC-53] 일부 수정 * [ICC-57] 구현 완료 * [ICC-67] 응답 구조 수정 완료 * [ICC-63] Webb's DOK # Conflicts: # app/service/generate_service.py * [ICC-63] 추가 코드 작성 * [ICC-70] api 수정 * [ICC-48] MCP 기능 구현 완료 * [ICC-48] MCP 리서치 * [ICC-48] 엔드포인트 분리 * [ICC-74] 요청 dto 변경 * [ICC-74] 페이지 일부만 가져오기 구현 완료 * [ICC-74] 파워포인트도 적용 완료 * [ICC-74] 불필요한 로그출력 제거 * [ICC-74] 페이지 선택 방식 변경 * [ICC-76] 발생한 문제 해결 * [ICC-76] 코드 수정 * [ICC-80] 프롬프트 추가 * [ICC-80] 프롬프트 추가 * [ICC-80] 롤백 * [ICC-80] 롤백 * [ICC-87] 최대 청크 개수 증가 * [ICC-87] 기본 구조 작성 * [ICC-87] 레디스 분산락 구현 * [ICC-87] 필요 없는 레디스 함수 제거: * [ICC-87] 한번에 데이터를 넣게 함 * [ICC-99] generate dto 변경 * [ICC-99] 구현 완료 * [ICC-99] generate dto 변경 * [ICC-99] 구현 완료 * [ICC-94] specific explanation 서비스 추가 * [ICC-94] 구현완료 * ICC-112 OX 프롬프트 수정 * [ICC-112] 리팩터링 + BLANK 타입 추가 * [ICC-134] 필요한 프롬프트 추가 * [ICC-164] 작성 완료 * [ICC-167] 프롬프트 수정 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 변경 * [ICC-167] 프롬프트 수정 * [ICC-167] 프롬프트 수정 * [ICC-167] 프롬프트 수정 * [ICC-167] 잘못된 프롬프트 반환 수정 * [ICC-167] 잘못된 프롬프트 반환 수정 * [ICC-167] 모델 변경 * [ICC-167] 리팩터링 완료 * [ICC-167] 코드 포맷팅 * [ICC-167] 제약사항 반영 * [ICC-167] 프롬프트 수정 * [ICC-167] 리팩터링 * [ICC-175] 도커 컴포즈 제거 * [ICC-175] 개발 깃허브 액션 스크립터 제거 * [ICC-180] 셔플 로직 추가 * [ICC-180] CD 브랜치명 올바르게 변경 * [ICC-189] 타임아웃시 전체 실패가 아닌 일부라도 반환하게함 * [ICC-192] 로직변경완료 * [ICC-194] 선지를 밝히지 말라는 문구 추가 * [ICC-196] 마이그레이션 완료 * [ICC-196] 프롬프트 롤백 * [ICC-196] min quiz size todo에 추가 * [ICC-196] 개행 문구 추가 * [ICC-200] 타입에 따라 셔플하도록 함 * Refactor quiz generation and explanation services; remove unused Bedrock adapter and integrate GPT for specific explanations. Update router to utilize new explanation service. * [ICC-212] 커서를 통한 1차 리팩터링 완료 * [ICC-212] 어댑터 단순화 * [ICC-212] 블랙 포맷팅 적용 * [ICC-212] 기능 동작하게 수정 완료 * [ICC-212] 개행 프롬프트 추가 * [ICC-212] 구성 완료 * [ICC-215] 수정 완료 * [ICC-216] 구현 코드 작성 완료 * [ICC-216] 객관식 프롬프트 개선 * [ICC-220] 타임아웃 시 해당 문제만 실패하게 조정 * [ICC-221] env 중복참조 수정 * [ICC-220] 환경변수를 없애고 스레드 관점에서 타임아웃으로 조정 * [ICC-220] 불필요한 참조 제거 * [ICC-220] 불필요한 참조 제거 * v 1.5.5 (#97) (#98) * [ICC-235] 비동기 클라이언트로 변경 완료 (#99) * v 1.6.0 (#100) (#101) * [ICC-229] 분리 완료 (#102) * [ICC-233] 파일 텍스트 부족시 반환 (#103) * [ICC-233] 구현 완료 * [ICC-230] 페이지 제한 환경변수화 * 계승: v1.6.1 (#105) * v 1.6.0 (#100) * v 1.6.1 (#104) * [ICC-237] OCR로 변경 완료 (#106) * [ICC-238] 수정 완료 (#108) * [ICC-238] 수정 완료 * [ICC-241] 구현 완료 * [ICC-241] 최소 3개의 청크는 빨리 응답하도록 함 * [ICC-245] 응답구조 수정 * Hotfixgit add . import 누락 추가 --------- Co-authored-by: 이찬우 <105221020+ChanJinYeon@users.noreply.github.com> Co-authored-by: Adansonia <lcw061145@gmail.com> Co-authored-by: lhoju0158 <lhoju0158@gmail.com>
📢 설명
파일의 URL, 생성할 퀴즈의 개수를 받아 문제를 생성 및 API response 형태까지 맞췄습니다.
✅ 체크 리스트