Bit의 개발다이어리

ChatGPT API-Reference

https://platform.openai.com/docs/api-reference/fine-tunes

 

OpenAI API

An API for accessing new AI models developed by OpenAI

platform.openai.com

ChatGPT 사용 예제

https://platform.openai.com/examples

 

ChatGPT 대화하기

https://chat.openai.com

 

ChatGPT Fine-Tuning 하는 방법

하단은 Openai의 Fine-tuning공식 document링크

 

https://platform.openai.com/docs/guides/fine-tuning

 

OpenAI API

An API for accessing new AI models developed by OpenAI

platform.openai.com

 

<조건>

1.JSONL형태의 데이터
2. 파일안에는 prompt, completion형태로 구성
3. prompt에 원하는 프롬프트 구성
4. completion은 원하는 답 형태 구성

 

<형태>
{"prompt": "<prompt text>"
, "completion": "<ideal generated text>"}
{"prompt": "<prompt text>"
, "completion": "<ideal generated text>"}
...

 

1. 

openai tools fine_tunes.prepare_data -f 제이슨엘파일명

해당 명령어를 입력하면 jsonl파일을 읽어서 fine-tuning을 위한 데이터 생성 준비에 들어감.
-> 정보가 나옴
-> 명령어가 끝나면 하나의 파일이 더 생성된다.(준비된 JSONL파일)


2. base model
fine-tuning을 할 수 있는 모델은 base model을 활용.
(ada, babbage, curie, davinci모델 중 하나를 활용할 것)


3. key setting
fine-tuning은 openai의 key를 이용해야 진행가능.(요금발생!!!)
시스템적으로 openai key 세팅해야함.

4. openai api key 넣어주고, 만들었던 json파일, 베이스모델을 넣는다.

openai --api-key 발급받은키 api fine_tunes.create -t 준비된제이슨엘파일명 -m 베이스모델명


Fine-tune costs = 파인튜닝 할 때 가격 값
잘 되면 openai api completions.create가 나오고 fine-tuning과정 종료

5. Fine-tuning 모델 사용
끝나면 OpenAI 계정정보에 Fine-tune training 정보가 나온다.
Playground에 Fine-tuning model확인가능, 모델 직접 사용 가능

 

<가격확인>
https://platform.openai.com/account/usage
billing 에서 결제수단등록하면 된다.

데이터가 부족하면 짤릴수 있다. max_token설정 필요

Fine-tune failed. Fine-tune will exceed biling hard limit
=> 비용 limit

 

chatGpt에 Fine-tuning으로 학습시킨 model을 웹사이트에 넣어서 사용하기

GPT 모델을 웹사이트에 통합하려면 몇 가지 단계를 거쳐야 합니다. 먼저, Fine-tuning된 GPT 모델을 저장하고 웹 서버에서 사용할 수 있도록 모델을 불러와야 합니다. 그런 다음 웹 서버와 상호 작용하기 위한 API 엔드포인트를 설정하고, 웹 클라이언트에서 서버로 요청을 보낼 수 있는 코드를 작성해야 합니다.

다음은 간단한 Flask 웹 서버 예제를 사용하여 ChatGPT를 웹사이트에 통합하는 방법을 보여드리겠습니다. 아래 단계를 따라 진행해보세요:

1. Flask 설치하기:

pip install flask


2. Flask 애플리케이션 코드 작성하기:

from flask import Flask, request, jsonify
import openai

app = Flask(__name__)

# OpenAI API 인증 정보 설정
openai.api_key = 'YOUR_OPENAI_API_KEY'

# Fine-tuning된 GPT 모델 불러오기
model = openai.load_model('path/to/your/fine-tuned/model')

@app.route('/chat', methods=['POST'])
def chat():
    # 웹 클라이언트로부터 질문을 받음
    data = request.get_json()
    question = data['question']

    # GPT 모델에 질문을 입력하여 답변 생성
    response = model.generate(prompt=question, max_length=100)

    # 답변을 웹 클라이언트에게 반환
    return jsonify({'answer': response.choices[0].text.strip()})

if __name__ == '__main__':
    app.run()


   위 코드에서 'YOUR_OPENAI_API_KEY'를 자신의 OpenAI API 키로 대체해야 합니다. 또한 `'path/to/your/fine-tuned/model'` 부분을 Fine-tuning된 GPT 모델의 경로로 변경해야 합니다.

3. 웹 서버 실행하기:

python app.py


   위 명령을 실행하면 Flask 웹 서버가 실행됩니다.

4. 웹 클라이언트에서 서버로 요청 보내기:
   웹 클라이언트에서 HTTP POST 요청을 통해 질문을 서버로 보내고 답변을 받을 수 있습니다. 아래는 JavaScript를 사용한 예시 코드입니다:
   

fetch('/chat', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({ 'question': '질문을 입력하세요.' })
})
.then(response => response.json())
.then(data => {
    console.log('답변:', data.answer);
});


   위 코드에서 '/chat'은 Flask 애플리케이션에서 정의한 API 엔드포인트 경로입니다. 질문을 적절히 변경

하여 요청을 보내면 서버에서 답변을 받을 수 있습니다.

이 예제는 Flask를 사용하여 간단하게 GPT 모델을 웹사이트에 통합하는 방법을 보여주었습니다. 더 복잡한 웹 애플리케이션을 구축하려면 추가적인 개발이 필요할 수 있습니다.

 

 

1. PHP를 사용한 예제:

<?php

// OpenAI API 키 설정
$apiKey = 'YOUR_OPENAI_API_KEY';

// Fine-tuning된 GPT 모델 불러오기
$modelPath = 'path/to/your/fine-tuned/model';
$model = file_get_contents($modelPath);

// 질문 받아오기
$question = $_POST['question'];

// OpenAI API로 요청 보내기
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.openai.com/v1/engines/davinci-codex/completions",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => json_encode(array(
        'prompt' => $question,
        'max_tokens' => 100,
    )),
    CURLOPT_HTTPHEADER => array(
        "Accept: application/json",
        "Authorization: Bearer $apiKey",
        "Content-Type: application/json"
    ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
    echo "cURL Error #:" . $err;
} else {
    $answer = json_decode($response, true)['choices'][0]['text'];

    // 답변 출력
    echo $answer;
}

?>


위 코드에서 'YOUR_OPENAI_API_KEY'를 자신의 OpenAI API 키로 대체해야 합니다. 또한 `'path/to/your/fine-tuned/model'` 부분을 Fine-tuning된 GPT 모델의 경로로 변경해야 합니다. 이 PHP 코드를 서버 측 스크립트로 사용하여 웹사이트에서 질문을 전송하고 답변을 받을 수 있습니다.

2. TypeScript 및 HTML을 사용한 예제:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>ChatGPT</title>
</head>
<body>
    <h1>ChatGPT</h1>
    <input type="text" id="questionInput" placeholder="질문을 입력하세요">
    <button onclick="getAnswer()">질문하기</button>
    <p id="answer"></p>

    <script>
        function getAnswer() {
            const question = document.getElementById('questionInput').value;

            // 질문을 서버로 보내는 AJAX 요청
            const xhr = new XMLHttpRequest();
            xhr.open('POST', 'path/to/your/php/script.php', true);
            xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            xhr.onreadystatechange = function () {
                if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
                    const answer = xhr.responseText;

                    // 답변을 표시
                    document.getElementById('answer').innerText
profile

Bit의 개발다이어리

@bit비트

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!