Daily Front_Minhhk

React & openAI API (Examples) 활용하여 이름생성기 만들기 + API 사용은 결제하자! 본문

Project/ToyProject

React & openAI API (Examples) 활용하여 이름생성기 만들기 + API 사용은 결제하자!

Minhhk 2023. 5. 2. 17:29

1. openAI 홈페이지 / Developers / example 에 들어가서 사용하고 싶은 것 중 선택하면 된다.

 

 

2. 여기서 이름 생성기를 사용해보겠다.

 

클릭하면 상세 페이지가 뜨는데

이제 curl 과 node.js 선택하면 소스코드가 뜬다.

이것을 활용하여 만들었다.

 

await 비동기로 받아와서 작성 함수에 async 달아주기!!

https://~ ,, post 요청 보낼 주소 값
-H ,, 헤더에 넣어 줄 값
-d ,, data로 body에 넣어 줄 값

 

 

 

 


1. 

.env 파일 생성하여 작성한다.

REACT_APP_OPENAI_API_KEY="API 키"

 

 

2.

        const dataBody = {
          model: "text-davinci-003",
          prompt: `suggest three pet names ${animalNameInput}`,
          temperature: 0.8,
          max_tokens: 60,
          top_p: 1.0,
          frequency_penalty: 0.0,
          presence_penalty: 0.0,
        };

 

이때 max_tokens으로 생성될 글의 길이를,

temperature와 top_p로 생성될 다음 단어의 샘플링 방법 등을 지정한다.

 

 

 

키 중에서 prompt 에 원하는 내용을 입력하면 결과 값을 도출 해준다.

 

 ${animalNameInput} 은 useState() 를 사용하여,

페이지 인풋 값을 적용하여 요청하기 위하여 사용 했다.

 

 

 

그리고 적용 페이지에서 fetch 나 axios 를 통해 요청(post) 해준다.

받은 data를 변수에 담아서 화면에 띄워주면 된다!

 

 

 

주요코드~

      try {
        const dataBody = {
          model: "text-davinci-003",
          prompt: `suggest three pet names ${animalNameInput}`,
          temperature: 0.8,
          max_tokens: 60,
          top_p: 1.0,
          frequency_penalty: 0.0,
          presence_penalty: 0.0,
        };

        const response = await fetch("https://api.openai.com/v1/completions", {
          method: "POST",
          headers: {
            "Content-Type": "application/json",
            Authorization: "Bearer " + process.env.REACT_APP_OPENAI_API_KEY,
          },
          body: JSON.stringify(dataBody),
        });

        const data = await response.json();

        //! data에서 답변 가져오기
        setResult(data.choices[0].text);
        setAnimalNameInput("");
      } catch (error) {
        console.log(error);
        alert("서버에서 잘못된 데이터를 반환했습니다.");
      }

 

아래코드를 사용하여, 결과 값을 넣는다.

 

 

완성!

사이드 프로젝트 고양이 MBTI 결과 페이지에 넣을 예정이다.

 

 

 

 

+ 에러

 

알고나서 너무 화가 났다.. ㅎㅎ
코드 에러도 없었고, 몇번이나 확인 했는데 500 에러가 계속 뜨고
POST 할 때도, JSON.stringify() 로 키,값을 잘 보내고
response.json() 써서 문제가 없었다.. 하지만
openAI API 를 사용할려면 결제를 했어야했다.

결제하자마자 바로 데이터가 이렇게 잘 오다니..

 

 

 

 

 

참조

 

[React] Next.js로 chatGPT 활용하기 (OpenAI Api 가져오기)

Next.js와 OpenAI를 사용해 질문에 답을 얻는 간단한 애플리케이션을 만듭니다.

velog.io

 

 

[OpenAI] 음악 추천 서비스 만들어보기 (React) 2부

오늘은 저번에 이어서 OpenAI 를 사용한 서비스를 만들어보겠습니다. 1부 포스팅은 여기에서 볼 수 있습니다. 1부: https://bolob.tistory.com/entry/OpenAI-%EC%9D%8C%EC%95%85-%EC%B6%94%EC%B2%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%E

bolob.tistory.com