상세 컨텐츠

본문 제목

Azure OpenAI API 404 Resource not found

백도 황도지사

by 아서킴 2025. 3. 28. 17:45

본문

728x90

하려던 것

- Azure의 OpenAI API를 이용한 gpt-4o 호출.

- Javascript 환경에서 기본 호출만 해보는 것이 목표

 

해결 전 마지막 상태

- Azure 가입. openai 배포. Azure AI Foundry에서 gpt-4o 배포 완료.

- 플레이그라운드 잘 됨 확인.

 

문제

- 그런데 예제 코드를 주워다가 API를 호출하면 계속해서 404에러가 나를 반겼다.

  "Resource not found"

  예제코드도, 그 어떤 AI도 해결해주지 못했다.

  뭐가 잘못됐는지 알려주는 게 에러 코드가 할일 아닌가?

  AI가 해결하지 못했으니, 구글 검색을 했다.

 

정답

- 답은 여기에 있다. 내 글의 결론은 맨 아래에 있다.

 

 

 

<해결 전 코드와 문제점>

알려진 javascript 예제코드는 이렇다. 

import { AzureOpenAI } from "openai";

const endpoint = "<API_ENDPOINT>";
const modelName = "gpt-4o";
const deployment = "gpt-4o";

export async function main() {

  const apiKey = "<your-api-key>";
  const apiVersion = "2024-04-01-preview";
  const options = { endpoint, apiKey, deployment, apiVersion }

  const client = new AzureOpenAI(options);

  const response = await client.chat.completions.create({
    messages: [
      { role:"system", content: "You are a helpful assistant." },
      { role:"user", content: "I am going to Paris, what should I see?" }
    ],
    max_tokens: 4096,
      temperature: 1,
      top_p: 1,
      model: modelName
  });

  if (response.status !== "200") {
    throw response.body.error;
  }
  console.log(response.choices[0].message.content);
}

main().catch((err) => {
  console.error("The sample encountered an error:", err);
});

 

- <API_KEY>는 헷갈릴 게 없다.

- 첫번째 문제는 <API_ENDPOINT>인데, 복사하는 곳마다 path가 조금씩 다르다.

- 두번재 문제는 deployment인데, 이게 내가 사용하려는 모델이 아니라, 내가 배포한 이름이다.

   왜 modelName이 있는데, 굳이 deployment를 또 쓸까? 하는 의문이 들었는데 내가 저렇게 배포를 했다고 한다.

- 마지막 문제는 apiVersion이다. apiVersion이 틀렸을 거라는 답변이 종종 보인다. 그러니 문서를 찾아보라고 한다.

   하지만 문서에는 답이 없다. 

 

<나의 결론>

정답은 매우 간단하다.

플레이그라운드까지는 오셨기를...

플레이그라운드 채팅에서 파란색 "</>코드 보기" 버튼을 눌러보자.

(사실 UI도 좀 별로라고 생각하는데, 나는 저게 현재 내가 보고 있는 탭인 줄 알았다. 누르라고 있는 거였다.)

 

샘플 코드 오른쪽에서 사용할 언어와 OpenAI SDK를 고른다

 

키 인증을 선택

 

언어와 사용할 SDK, 그리고 탭에서 '키 인증'을 선택하면 코드가 나온다.

이 코드가 정답이다.

여기에 쓰여 있는 endpoint와 apiVersion과 deployment를 쓰면 된다.

내가 보고 있는 건 이러한데 이 값은 그 어디에도 없었다.

const apiVersion = "2024-05-01-preview"; 

 

<To AI>

AI 놈들아, 잘 좀해라. 내가 안 찾게. 조만간 다시 물어본다.

 

<To 이걸 보시는 분들>

AWS가 예제도 많고 에러도 명확하고 쉽고 빠르고... 그렇습니다.

하지만 Azure에는 OpenAI가 있습니다. 기본 크레딧도 많이 줍니다.

 

 

관련글 더보기