inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

베개투자법 완성: 아침이 설레는 AI 주식 완전 자동매매 Claude 바이브코딩

Opus/Sonnet 버전 관련 문의

해결된 질문

58

yundyo

작성한 질문수 4

1

선생님, LLM검토 관련 문의드립니다.


최근 며칠간 자동매매 파이프라인에서 LLM(Claude API) 호출 단계가 계속 실패해서 원인을 찾아보고 있었습니다.


배경

증상

원인 분석

제가 한 조치


제가 여쭤보고 싶은건..

선생님께서는 Opus,Sonnet 버전을 어떤 걸로 쓰고 계신지 궁금합니다.

저처럼 최신 버전(opus-5/sonnet-5)으로 올려서 쓰고 계신지, 아니면 다른 버전을 쓰시는지, 그리고 이런 thinking/max_tokens 이슈를 겪으신 적 있으신지도 여쭤보고 싶습니다. 토큰을 낮추기위해 effort 파라미터를 조정해볼까도 생각중인데 어떻게 해야할지 모르겠네요~



python 머신러닝 aws FastAPI 퀀트 cloud-computing claude

답변 2

1

치알남 cheatkeyman

안녕하세요, @yundyo님.

분석하신 내용은 정확하십니다. 순서대로 답변 드리겠습니다.


1. 강의 버전: 운영 서버는 claude-opus-4-8 + 폴백 claude-sonnet-4-6입니다. 이 둘은 thinking을 생략하면 사고 과정이 꺼져서 max_tokens=2000content[0].text로도 문제없이 돌았고, 그래서 그 이슈는 겪지 않았습니다. Opus 5 / Sonnet 5는 생략해도 사고 과정이 켜지도록 기본값이 바뀐 것이라, 겪으신 현상은 정상입니다.

2. 하신 조치(텍스트 블록만 파싱, max_tokens 16000)는 맞습니다. 하나만 추가로 확인해주세요. 5 시리즈는 temperature를 지원하지 않아서 보내면 anthropic.BadRequestError(HTTP 400, invalid_request_error)로 요청이 거부되고, 우리 코드는 이 예외를 재시도 없이 다음 모델로 넘기므로 결국 매수가 차단됩니다. MODELS_WITHOUT_TEMPERATURE에 두 모델을 넣어 주세요.

3. effort: 사고 깊이를 조절하는 정식 파라미터입니다. 옛 방식 budget_tokens는 5 시리즈에서 같은 예외로 거부됩니다.

message = client.messages.create(
    model="claude-opus-5",
    max_tokens=16000,
    thinking={"type": "adaptive"},
    output_config={"effort": "medium"},   # low / medium / high(기본) / xhigh / max
    messages=[{"role": "user", "content": prompt}],
)

BUY/HOLD JSON을 내는 정형화된 판단이라 medium부터 시작해 며칠 판정 로그를 보며 조정하시면 됩니다. thinking을 끄는 것보다 effort를 낮추는 쪽이 품질/비용 모두 좋을 것 같습니다. output_config는 최신 SDK가 필요하니 pip install -U anthropic 해주세요.

4. 비용: Opus 5 단가는 4.8과 같지만 사고 과정 토큰이 출력으로 과금되니 호출당 비용은 늘어날 것입니다. Sonnet 5는 단가는 낮아도 토크나이저 변경으로 토큰 수가 약 30% 늘어납니다. 응답의 usage를 며칠 기록해 보고 effort를 정하시면 될 것 같습니다.

저는 당분간 4.8 + 4.6을 유지하고, 위 설정으로 판정 로그를 비교한 뒤 전환할 계획입니다.


추가로 질문있으시다면 편하게 문의 주세요~

감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. yundyo님.

Claude 모델 버전과 thinking 응답으로 인해 JSON 파싱이 실패하는 상황은 아래 기존 질문과 가장 유사합니다.

여태까지 발견한 이슈들 공유드립니다.

해당 답변에서 지식공유자님은 강의 코드를 최신 Anthropic 규격에 맞춰 claude-opus-4-8로 업데이트했으며, 기존 4.7 버전도 기능 자체에는 문제가 없다고 안내하셨습니다. 또한 모델 버전은 코드에 직접 하드코딩하기보다 .env 환경 변수로 분리해 관리하는 방식을 권장하셨습니다.

ThinkingBlock 또는 Unterminated string 오류와 관련해서는 다음 질문도 참고하실 수 있습니다.

pipeline/run-buy-pipeline 실행시 “LLM호출전체실패”에러발생

이 질문의 오류 역시 LLM 응답이 JSON으로 정상 종료되지 않아 Unterminated string 파싱 오류가 발생한 사례입니다. 기존 답변에서는 다음 사항을 우선 점검하도록 안내하고 있습니다.

  • Anthropic API 계정의 잔액 및 호출 가능 여부 확인
  • 응답이 중간에 잘리는 경우 max_tokens 값을 충분히 크게 설정
  • 오류 전문을 확인해 실제 응답이 thinking 블록만 반환된 것인지 점검

따라서 yundyo님께서 적용하신 것처럼 type == "text"인 블록만 추출한 뒤 JSON 파싱을 수행하는 방어 코드와, max_tokens를 16,000 수준으로 늘리는 방식은 현재 증상에 대응하는 합리적인 접근으로 보입니다. 다만 강의 기준 모델 및 검증된 설정은 claude-opus-4-8 계열이므로, 최신 모델로 변경할 경우에는 thinking 활성화 여부, 응답 블록 처리 방식, 최대 토큰 설정을 함께 조정해야 합니다. effort 값을 변경하면 비용이나 응답 길이는 줄어들 수 있지만, 판단 품질에 영향을 줄 수 있으므로 우선은 강의에서 사용한 모델과 설정으로 정상 작동 여부를 확인하는 것을 권장드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

검색 대상 종목 선정

1

56

2

llm_decision_logs 미적재 문의

1

42

2

연동 문제

1

50

2

5-21 질문이요!

1

67

3

매수 실행 시점 관련

1

41

1

섹션2 질문이요

1

65

2

섹션1.9 질문입니다!

1

86

3

Kaggle 노트북(predict.ipynb) 관련

1

61

2

git bash .env

1

64

1

알파벤티지 sleep(5) 관련 문의

1

75

2

실전 계좌에서 운영하고 계신 분 계신가요?

1

72

2

클로드

1

66

2

pip install -r requirements.txt

0

68

2

명령 프롬프트

0

72

2

slack 알림 연동 강의 관련

1

82

2

supabase_key 관련

1

92

3

python run.py 실행시 에러 문제

1

103

2

커서창

1

73

2

cursor 환경

1

74

2

개발 환경 준비와 프로젝트 구조 강의 관련

1

65

2

저장 공간

1

73

2

colab 코드 실행시 error

1

65

2

llm_decision_logs 저장 실패(실적 컬럼 불일치)를 어떻게 해결할까요?

2

107

4

kaggle notebook에 service key 설정이 누락된 것 같습니다

1

84

2