본문 바로가기
딥러닝

[딥러닝] 언어모델 이해 (1) ChatGPT API로 연결하기 _ 20241105

by 황오독 2024. 11. 5.
더보기

* 과정 목표

① OpenAI API를 통해 파이썬 코드로 직접 ChatGPT 질문을 던지고 답변을 받을 수 있다.

② 언어 모델에 대한 최신 모델 방향을 파악한다.

③ LangChain과 RAG를 이용하여 손쉽게 나만의 챗봇을 만들 수 있다.

1. 언어모델 이해

 1) API란?

출처 : https://velog.io/@justhighway/posts

 - 손님이 점원에게 주문을 하면 점원은 요리사에게 그 주문을 전달

 - 요리사는 요리를 만들어 점원에게 전달하면 점원은 요리를 손님에게 가져다 줌.

 - 여기서 점원이 바로 API

 - API는 클라이언트에게 요청을 받아 서버로 전달

 - 서버는 요청을 처리한 후 결과 데이터를 API에 전달하면 API가 다시 데이터를 클라이언트로 전달

   "소프트웨어 간에 데이터를 교환하고 통신할 수 있도록 하는 인터페이스를 제공"

 

 2) API를 사용하기 위해서

 ① 우선 API 가장 기본적인 구성 요소 3가지

KEY 양식을 맞춰야 함 결과 형태를 알아야 함

 

 ② Request - Response

   - Request(요청양식) : API 주소 + API Key

   - Response(결과 양식)

 

2. ChatGPT API로 연결하기

 1) ChatGPT API - 발급받기

   - 감사하게도 에이블스쿨에서 API를 발급받아주었지만, 어케 발급받는지 과정은 알아두어야 할 것 같아서..!

    (1) OpenAI로 접속 > 로그인 > API 선택

 

   (2) API Key 생성

키 생성 후 API 키 복사해서 따로 저장
(잊어버리면, 다시 발급 필요)

 

2) ChatGPT API 사용하기

 (1) 환경 준비

   ① 라이브러리 설치

!pip install openai

 

   ② 라이브러리 Import

import pandas as pd
import numpy as np
import os
import openai
from openai import OpenAI

api_key = '발급받은 키' # 위에서 발급받은 API 키
os.environ['OPENAI_API_KEY']= api_key # os.environ : 환경 변수 생성
openai.api_key = os.getenv('OPEN_API_JEY') 
# 코랩에 가상환경 변수로 등록,
# os.getenv('OPEN_API_JEY') 환경 변수에서 키 값 가져옴
# openai.api_key에 할당하여, OpenAI API 사용할 때 이 키를 사용하도록 설정

 

 (2) API 사용하기

   ▶ 역할을 부여한 ChatGPT에게 질문하기

def ask_chatgpt2(sys_role, question):

    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[
            {"role": "system", "content": sys_role}, # 역할 부여
            {"role": "user", "content": question}, # 질문하기
        ]
    )

    return response.choices[0].message.content
    
# 원하는 역할 부여
sys_role = '당신은 아름답고 감동적인 시를 창작하는 데 영감을 주는 시적인 천재입니다. 당신의 시는 감정의 깊이, 자연의 아름다움, 인간 경험의 복잡성을 탐구하는 작품이며, 당신의 시를 읽는 이들의 마음을 움직입니다.'

# 원하는 질문 입력
question = "생성형 AI란 주제로 시를 지어줘. 운율에 맞춰서 작성해줘야 해."

response = ask_chatgpt2(sys_role, question)
print(response)