잡담
프로젝트 준비하면서 ChatGpt OpenAI를 활용하고 있습니다. 잘 사용하다가 뭔가를 잘못 건드렸는지 해당 오류가 발생하더라고요.. 도대체 뭐를 잘못했는지 한참을 찾았는데 코드를 아무리 봐도 잘못된 게 없었습니다. 이리저리 검색하다 발견했습니다. 결국 잘못한 건 나였고...
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed:
org.springframework.web.client.HttpClientErrorException$Unauthorized:
401 Unauthorized: [no body]] with root cause
401 Unauthorized: [no body] 오류
해당 오류 메시지는 401 Unauthorized 오류로, 이는 인증되지 않은 요청이 API 서버에 의해 거부되었음을 나타냅니다. 이 문제는 보통 API 호출 시 필요한 인증 정보가 누락되었거나 잘못된 경우에 발생합니다.
1. API 키 확인:
- API 키가 올바르게 설정되었는지 확인합니다. API 키가 누락되었거나 잘못되었을 수 있습니다.
2. 인증 헤더 추가:
- 요청에 인증 헤더를 추가해야 합니다. RestTemplate을 사용할 때, HttpHeaders 객체에 API 키를 포함하는 방법을 확인합니다.
사실 이 두 가지를 전부 해봤지만 달라지는 게 없었습니다. 그러다 찾은 방법!
3. API-KEY 재발급
아래의 링크를 통해 OpenAI의 키 발급하는 곳으로 이동해서 재발급받으시고 사용하시면 해결되었습니다.
https://platform.openai.com/api-keys
지금 와서 생각해 보니까 보통 API-KEY는 환경변수에 담아서 gitignore에 올려서 Github에는 Push 안되도록 해야 되는데 그걸 깜빡하고 그대로 코드를 올린 거 같습니다.
메일이 도착해 있었습니다
해당 내용을 Github에서 판단해서 Push 하는 것을 막아줬는데 그걸 또 어떻게 알고 OpenAI에서 해당 API-KEY를 차단한 거 같더라고요.
Github에서 막은 걸 어떻게 OpenAI가 알고 있는 거지...
ChatGpt가 딥러닝할 때 Github정보들을 다 흡수했다는 가설이 있던데 사실일지도 모르겠다는 생각이 드네요.
글을 마치며
API-KEY 같은 경우는 요금을 지불하는 경우가 있기 때문에 진짜 잘 관리하셔야 됩니다. 저도 초보라 이렇게 실수했지만 현업에서 그랬다고 생각하면 아찔하네요.. 꼭 환경변수에 담아서 사용하시길 바랍니다!
'DB' 카테고리의 다른 글
[MySQL/MariaDB] Character set 오류 해결 방법 (1) | 2024.06.24 |
---|---|
[MariaDB] [28000][1045] (conn=1034) 오류 해결 (0) | 2024.06.22 |
[MySQL] Select ① (0) | 2024.04.03 |
[MySQL] 기본적인 MySQL 사용법, (Table생성, INSERT), 기본키/외래키 (1) | 2024.03.30 |
[MySQL] MySQL 다운로드 및 설치 (0) | 2024.03.28 |