Skip to content

Fix/#55 fix error in test - #57

Merged
2-dayeon merged 14 commits into
mainfrom
fix/#55-fix-error-in-test
Oct 20, 2026
Merged

2-dayeon merged 14 commits into
mainfrom
fix/#55-fix-error-in-test

Conversation

@2-dayeon

Copy link
Copy Markdown
Contributor

No description provided.

@danjee2009 danjee2009 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

검토 범위: SOLO/MULTI 피드백의 예상 꼬리질문·생성 텍스트 정규화, 기업 평가의 형식 오류 재시도·시간 제한, 요청별 로그 문맥, 관련 회귀 테스트와 API 문서를 확인했습니다. 확인된 수정 필요 결함은 없습니다. 로컬 테스트는 재실행하지 않았습니다.

@kimwuju kimwuju left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

검토 중 확인한 문제 2건입니다. 두 건 모두 strict 도구 스키마에 Anthropic이 지원하지 않는 길이·개수 제약이 들어가서 실제 API 호출이 400으로 실패하는 문제입니다. 테스트는 가짜 LLM을 쓰기 때문에 CI에서는 드러나지 않습니다.

Comment on lines +14 to +15
"minLength": 1,
"maxLength": FOLLOW_UP_QUESTION_MAX,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P1] strict 채점 도구에 지원되지 않는 문자열 제약이 들어가서, 피드백 채점 호출 전체가 400으로 실패할 수 있습니다.

solo·multi 채점 도구(SUBMIT_FEEDBACK_TOOL 등)는 이미 "strict": True인데, 이 스키마가 follow_up_question에 minLength/maxLength를 추가합니다. Anthropic strict tool use(structured outputs)는 minLength·maxLength를 지원하지 않습니다. 문서에는 지원하지 않는 기능이 스키마에 있으면 400을 반환한다고 적혀 있습니다. AnthropicTextClientImpl은 messages.create(tools=...)로 스키마를 그대로 보내기 때문에 SDK가 제약을 걸러 주지도 않습니다. 골든 call__feedback_solo.json에도 제약이 그대로 실려 있습니다.

결국 선택 필드 하나 때문에 solo/multi 피드백 작업 전체가 실패합니다. 길이 제한은 description으로만 안내하고, 검증은 이미 있는 normalize_follow_up_question에 맡기는 편이 맞아 보입니다.


SUBMIT_COMPANY_FIT_TOOL: dict[str, Any] = {
"name": TOOL_NAME,
"strict": True,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P1] strict: True를 켜면 기업 평가 호출이 매번 400으로 실패합니다.

이 스키마에는 원래부터 maxItems, minLength, maxLength가 들어 있습니다. strict tool use는 이 제약을 지원하지 않아서 400을 반환합니다(minItems는 0이나 1만 허용). 400은 AnthropicTextClientError로 잡혀 company_fit.api_failed만 남기고 None을 반환합니다. 그래서 운영에서는 기업 평가가 한 번도 적용되지 않습니다. 이번에 추가한 형식 보정 재시도도 API 오류에는 동작하지 않습니다.

_parse_submission·_clean_items가 길이와 개수를 서버에서 이미 검증하므로, strict를 켜려면 지원하지 않는 제약을 스키마에서 빼야 합니다.

@kimwuju kimwuju left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

다시 확인했습니다. 앞서 남긴 [P1] 2건(strict 도구 스키마의 미지원 제약)은 0cd3e4d·bdcf6a2·038a08c에서 해결됐습니다. 채점·기업 평가 strict 스키마에서 minLength/maxLength/maxItems가 빠졌고, 상한은 description과 서버 검증으로 유지됩니다. 실제 SDK로 보내는 스키마에 미지원 제약이 없는지 모든 직군 도구를 확인하는 회귀 테스트도 추가됐습니다. 추가로 발견한 문제는 없어 승인합니다.

@2-dayeon
2-dayeon merged commit 60348a4 into main Oct 20, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants