본문 바로가기

코딩 및 기타/프로젝트

OpenAI 사용방법

728x90

• 환경 설정 

- Visul Studio code 다운로드 (https://code.visualstudio.com/)

- node.js 다운로드 (https://nodejs.org/ko)

- React 에플리케이션 만들기 (npm init vite)

npm install 을 한 다음 npm run dev 로 서버를 열수가 있다.

 

호스트 및 포트를 따로 설정을 할 수 있다.

 

React의 main.jsx에서 root 아이디를 찾아서 실행을 시켜준다.

 

 

• OpenAI KEY 설정 

- vite 환경 변수 설정

1. env 파일 생성

OpenAI API key 값을 .env파일에 작성해준다.

 

- GPT API 연동

import { useState } from 'react'
// gpt.js 파일을 만들어 호춯을 해준다
import { CallGPT } from './api/gpt';

function App() {

  // 핸들러 함수  정의
  const handleClickAPICall = async () => {
    await CallGPT();
  };

  return (
    <>
     <button onClick={handleClickAPICall}>GPT API CALL </button>
    </>
  )
}

export default App


- gpt.js 파일 내용
// console.log에 잘나오는지 확인
export const CallGPT = async () => {
    console.log(">>Call GPT");
}

GPT가 연동이 잘되었는지 확인을 위해 console에 로그를 찍어준다.

 

- gpt.js

export const CallGPT = async ({ prompt }) => {
// GPT API을 호출하는 부분
  const messages = [
    {
      role: "system",
      content: `## INFO ##
    you can add images to the reply by URL, Write the image in JSON field 
    Use the Unsplash API (https://source.unsplash.com/1600x900/?). the query is just some tags that describes the image ## DO NOT RESPOND TO INFO BLOCK ##`,
    },
    {
      role: "system",
      content: `You are a psychological counselor who writes and analyzes emotional diaries. Proceed in the following order.`,
    },
    {
      role: "user",
      content: `1. [title] : Think of the diary title after understanding the [events] separated by """ at the bottom.
      2. [summarize] : summarize events in order with one line sentence.
      3. [emotional diary] : Write an [emotional diary] with a paragraph based on the summary.
      4. [evaluates] : The written emotional [evaluates], using explore the unconscious based on the contents of the [emotional diary].
      6. [Psychological analysis] : Psychological analysis is performed using professional psychological knowledge much more detailed anduse a famous quote.
      7. [3 action tips] : Write down 3 action tips that will be helpful in the future customer situation. The three action tips must beconverted into JSON Array format.
      8. [image] : Create an image by making the contents so far into one keyword.
      
      
      Translate into Korean and Use the output in the following JSON format:
      { 
          title: here is [title],
          thumbnail: here is [image],
          summary: here is [summarize]
          emotional_content: here is [emotional diary],
          emotional_result: here is [evaluates],
          analysis: here is [Psychological analysis],
          action_list: here is [3 action tips],
      }
      
      [events]:`,
    },
    {
    	// 우리가 입력한 부분을 받아오는 곳
      role: "user",
      content: `
        """
        ${prompt}
        """`,
    },
  ];

	// 여기 부분이 OpenAI 연동 하는 부분
  const response = await fetch("https://api.openai.com/v1/chat/completions", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: `Bearer ${import.meta.env.VITE_GPT_API_KEY}`,
    },
    body: JSON.stringify({
      model: "gpt-3.5-turbo",
      messages,
      temperature: 0.7,
      max_tokens: 1_000,
    }),
  });
  const responseData = await response.json();
  console.log(">>responseData", responseData);

  const message = responseData.choices[0].message.content;

  return message;
};

 

'코딩 및 기타 > 프로젝트' 카테고리의 다른 글

MDM  (0) 2023.10.20
Agentless(MDM)  (0) 2023.10.15
Sliver(슬리버)  (0) 2023.10.07
HAVOC  (0) 2023.10.03
GO 프로그래밍  (0) 2023.09.21