728x90

ChatGPT와 같은 대화형 인공지능 API를 PHP에서 사용하려면 다음과 같은 단계를 수행해야 합니다.

  1. ChatGPT API를 사용하기 위해 API 키를 발급받습니다. API 키는 OpenAI 사이트에서 발급받을 수 있습니다.
  2. PHP에서 HTTP 클라이언트를 사용하여 ChatGPT API를 호출합니다.
$prompt = "Hello, how are you?";

$curl = curl_init();
curl_setopt_array($curl, [
    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([
        "prompt" => $prompt,
        "temperature" => 0.5,
        "max_tokens" => 60,
        "top_p" => 1,
        "frequency_penalty" => 0,
        "presence_penalty" => 0
    ]),
    CURLOPT_HTTPHEADER => [
        "content-type: application/json",
        "Authorization: Bearer YOUR_API_KEY"
    ],
]);

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

curl_close($curl);

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

위 코드는 curl 함수를 사용하여 ChatGPT API를 호출하는 예시입니다. API 호출 시 https://api.openai.com/v1/engines/davinci-codex/completions URL을 사용하며, prompt 속성을 통해 인공지능 모델에 전달할 문장을 지정합니다. 그리고 다양한 옵션들을 설정하고, CURLOPT_HTTPHEADER를 통해 API 키를 인증합니다.

  1. API 호출 결과는 curl_exec 함수의 반환값인 $response 변수에 저장됩니다. 이 값을 json_decode 함수를 사용하여 JSON 형태로 디코딩한 뒤, 필요한 정보를 추출하여 사용할 수 있습니다. 위 코드에서는 $response_data['choices'][0]['text']를 통해 반환된 답변을 출력하고 있습니다.
  2. 이제 ChatGPT API를 사용하여 PHP 애플리케이션에서 인공지능 대화 시스템을 구현할 수 있습니다.

 

목동코딩학원 : 온라인코딩교육, 유니티게임개발교육, 로블록스게임개발교육, 한국서비스산업진흥원, 플랫폼프로젝트수업
 

 

 
728x90
728x90

ChatGPT와 같은 대화형 인공지능 API를 React에서 사용하려면 다음과 같은 단계를 수행해야 합니다.

  1. ChatGPT API를 사용하기 위해 API 키를 발급받습니다. API 키는 OpenAI 사이트에서 발급받을 수 있습니다.
  2. React 프로젝트에서 Axios나 Fetch API와 같은 HTTP 클라이언트를 사용하여 ChatGPT API를 호출합니다.
const axios = require('axios');

const prompt = "Hello, how are you?";

axios.post('https://api.openai.com/v1/engines/davinci-codex/completions', {
    "prompt": prompt,
    "temperature": 0.5,
    "max_tokens": 60,
    "top_p": 1,
    "frequency_penalty": 0,
    "presence_penalty": 0
}, {
    headers: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer YOUR_API_KEY'
    }
})
.then((response) => {
    console.log(response.data.choices[0].text);
})
.catch((error) => {
    console.log(error);
});
  1. 위 코드는 Axios를 사용하여 ChatGPT API를 호출하는 예시입니다. API 호출 시 https://api.openai.com/v1/engines/davinci-codex/completions URL을 사용하며, prompt 속성을 통해 인공지능 모델에 전달할 문장을 지정합니다. 그리고 다양한 옵션들을 설정하고, headers를 통해 API 키를 인증합니다.
  2. API 호출 결과는 response.data 속성을 통해 접근할 수 있습니다. 위 코드에서는 response.data.choices[0].text를 통해 반환된 답변을 출력하고 있습니다.
  3. 이제 ChatGPT API를 사용하여 React 애플리케이션에서 인공지능 대화 시스템을 구현할 수 있습니다.

목동코딩학원 : 온라인코딩교육, 유니티게임개발교육, 로블록스게임개발교육, 한국서비스산업진흥원, 플랫폼프로젝트수업

728x90
728x90

코딩교육 : chatGPT에 질문하여 봤다.

  1. 현재 대한민국에서는 코딩교육이 대두되면서 초등학교부터 대학교까지 다양한 교육기관에서 코딩교육을 실시하고 있습니다.
  2. 코딩교육은 단순히 코딩 스킬을 배우는 것이 아니라, 문제해결 능력과 창의적 사고력, 협업 능력 등을 함양할 수 있는 교육입니다.
  3. 또한, 코딩교육은 ICT 산업 분야에서 필요한 인력을 양성하는 것에 큰 도움을 줄 수 있습니다.
  4. 코딩교육의 가장 큰 장점은 학생들이 즉각적인 결과물을 확인할 수 있다는 점입니다.
  5. 이는 학생들이 자신의 노력이 즉각적으로 보상받을 수 있으므로, 학습 동기 부여와 성취감을 동시에 높일 수 있습니다.
  6. 코딩 교육을 통해 학생들은 프로그래밍 언어를 배우며, 컴퓨터 프로그램을 작성하고 실행할 수 있게 됩니다.
  7. 이러한 능력은 학생들이 자신의 능력을 증명하고, 현실 세계에서 문제를 해결할 때에도 유용하게 활용될 수 있습니다.
  8. 코딩 교육은 학생들에게 대규모 프로젝트를 수행하며 협업하고, 프로젝트 관리 및 문제 해결 능력을 함양할 수 있는 기회를 제공합니다.
  9. 또한, 코딩 교육은 학생들의 창의력과 논리적 사고력을 향상시키며, 자신의 아이디어를 구체화하고 구현할 수 있는 능력을 갖추게 됩니다.
  10. 이러한 이유로 코딩 교육은 현재 국내외에서 많은 학생들에게 필요한 교육으로 인식되고 있으며, 교육 기관에서도 적극적으로 추진하고 있습니다.
  11. 코딩 교육을 실시하는 교육기관은 다양합니다. 초등학교, 중학교, 고등학교, 대학교, 교육원, 학원 등 다양한 교육기관에서 코딩....

---------- 목동코딩생각 ---------------

모든 항목에 공감을 하며 특히 전자공부와 통신이 포함된 교육이 절실하다는 생각이다

그래야만 아이디어를 구체화 할수가 있다. 아이디어의 구체화가 플랫폼으로 구현되게 하기 위해서는 필수인 교육이다

728x90
728x90
코딩교육 : yolo 사용한 실습.

​

CNN은 Convolutional Neural Network의 약자로, 이미지와 같은 그래픽 데이터를 처리하는 데 특화된 인공 신경망의 한 종류입니다.

CNN은 주로 이미지 인식과 관련된 작업에서 사용됩니다. 일반적으로 이미지는 3차원 행렬 형태로 표현되며, CNN은 이러한 이미지 데이터를 입력으로 받아서 특징을 추출하고 분류하는 데 사용됩니다.

CNN은 Convolutional Layer, Pooling Layer, Fully Connected Layer 등으로 구성됩니다. Convolutional Layer는 이미지 데이터의 특징을 추출하는 역할을 합니다. 이 레이어에서는 이미지에 여러 개의 필터를 적용하여 입력 데이터에서 특징 맵(feature map)을 추출합니다. 각 필터는 이미지에서 특정한 패턴이나 특징을 인식하는 데 사용됩니다.

Pooling Layer는 Convolutional Layer에서 추출한 특징 맵의 크기를 줄이는 역할을 합니다. 일반적으로 Max Pooling이 가장 많이 사용됩니다. Max Pooling은 입력 데이터를 일정한 크기의 윈도우로 나눈 후, 각 윈도우에서 최댓값을 추출하여 새로운 특징 맵을 만듭니다.

Fully Connected Layer는 추출된 특징을 입력으로 받아서 분류하는 역할을 합니다. 이 레이어에서는 추출된 특징을 바탕으로 입력 데이터가 어떤 클래스에 속하는지 분류하는 작업을 수행합니다.

CNN은 이미지 인식을 비롯한 다양한 작업에서 우수한 성능을 보입니다. 이는 CNN이 이미지와 같은 그래픽 데이터를 처리하는 데 특화되어 있기 때문입니다. 또한, CNN은 데이터의 특징을 자동으로 추출할 수 있기 때문에, 사람이 수동으로 특징을 추출하는 전통적인 방법보다 더욱 효과적으로 작업을 수행할 수 있습니다.

​

CNN 예제를 보여드리겠습니다. 이 예제는 Python과 Keras를 사용하여 MNIST 데이터셋을 분류하는 예제입니다.

MNIST 데이터셋은 손글씨 숫자 이미지 데이터셋으로, 총 70,000개의 이미지가 있으며, 각 이미지는 28x28 크기의 흑백 이미지입니다.

아래의 실습을 colab에서 테스트하면 빠르게 학습할 수 있습니다

먼저, 필요한 라이브러리를 import합니다.

python
Copy code
import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from keras import backend as K
다음으로, 데이터를 불러오고 전처리합니다.

# 데이터 불러오기
(x_train, y_train), (x_test, y_test) = mnist.load_data()

# 이미지 데이터 전처리
img_rows, img_cols = 28, 28
if K.image_data_format() == 'channels_first':
    x_train = x_train.reshape(x_train.shape[0], 1, img_rows, img_cols)
    x_test = x_test.reshape(x_test.shape[0], 1, img_rows, img_cols)
    input_shape = (1, img_rows, img_cols)
else:
    x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1)
    x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1)
    input_shape = (img_rows, img_cols, 1)

# 이미지 데이터 정규화
x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
x_train /= 255
x_test /= 255

# 클래스 라벨 One-Hot Encoding
num_classes = 10
y_train = keras.utils.to_categorical(y_train, num_classes)
y_test = keras.utils.to_categorical(y_test, num_classes)
이제 모델을 정의하고 학습시킵니다.

# 모델 정의
model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation='softmax'))

# 모델 컴파일
model.compile(loss=keras.losses.categorical_crossentropy,
              optimizer=keras.optimizers.Adadelta(),
              metrics=['accuracy'])

# 모델 학습
batch_size = 128
epochs = 10
model.fit(x_train, y_train,
          batch_size=batch_size,
          epochs=epochs,
          verbose=1,
          validation_data=(x_test, y_test))
이제 모델을 평가하고 예측합니다.

# 모델 평가
score = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])

# 모델 예측
predictions = model.predict(x_test)
728x90
728x90

나는 종종 프로그램을 배우는 제일 좋은 방법은 돈을 받는것이라고 말하곤 한다.

돈을 내고 배우는 것은 자꾸 미루게 된다 내일 내일 내일로...

요즘 인공지능 관련된 새로운 내용을 정말 열심히 학습을 하면서 프로젝트를 하고 있다.

돈을 받았기 때문이다 ㅎㅎ.

작년 초부터 조짐이 수상했다. 내가 고정관념으로 생각했던 AI가 아닌거 같다....

영상분석을 통해서 보안시스템에 적용도 하고 , 작업 내역을 관리도 하고, 의학의 진단시스템에 사용도 하고...

COBOL로 직장생활을 시작했고, VisualBasic으로 사업을 하게 되고, Android와 Unity3d 로 심화시켜서, AI로 노후를 대비하게 되었다.

내가 처음 취업을 할때만 해도 회사에서 원하는 직원상은 "회사에 뼈를 묻는 직원"이었다. 그러다가 60에 환갑으로 마무리하는 삶이었다.

지금 처럼 "명퇴"가 40대부터 진행되는 세상을 상상하지 못했다. 한번 배운걸 계속 써먹는 시대는 저물어 가는거 같다.

점점 학습능력이 중요한 시대가 성큼 다가왔다.

우리 아이들도 학습능력을 키우는데 집중해야 겠다. 시험성적이 다가 아니다라는 생각이다....

목동코딩학원 : 온라인코딩교육
목동코딩학원 : 온라인코딩교육

728x90
728x90

목동코딩 : 인공지능수업, 온라인코딩수업

요즘, 보안관련, 진단관련, 음식 메뉴 관련 인공지능 응용시스템을 만들고 있다.

속으로 조금 걱정을 했는데 의외로 인식을 잘한다.

강아지나 고양이 와는 다르게, 외형이 불규칙해서 될까? 싶었는데 의외의 결과가 나왔다.

이번 프로젝트를 통해서 앞으로는 비젼시스템이 주된 방식이 될거 같은 확신이 든다.

물론 이 자체로는 활용 하기가 곤란하겠지만, 다양한 플랫폼이 추가되면 아주 큰 활용이 가능하다는 생각이 든다.

아래 사진은 인터넷에서 다운받은 사진으로서 육개장, 냉면, 라면, 콩장, 짜장면을 인식한 샘플사진이다.

 

목동코딩학원 : 온라인코딩교육
목동코딩학원 : 온라인코딩교육
목동코딩학원 : 온라인코딩교육
목동코딩학원 : 온라인코딩교육
목동코딩학원 : 온라인코딩교육
목동코딩학원 : 온라인코딩교육

728x90
728x90

목동코딩 : 인공지능수업, 온라인코딩수업

요즘, 보안관련, 진단관련, 음식 메뉴 관련 인공지능 응용시스템을 만들고 있다.

속으로 조금 걱정을 했는데 의외로 인식을 잘한다.

강아지나 고양이 와는 다르게, 외형이 불규칙해서 될까? 싶었는데 의외의 결과가 나왔다.

이번 프로젝트를 통해서 앞으로는 비젼시스템이 주된 방식이 될거 같은 확신이 든다.

물론 이 자체로는 활용 하기가 곤란하겠지만, 다양한 플랫폼이 추가되면 아주 큰 활용이 가능하다는 생각이 든다.

아래 사진은 인터넷에서 다운받은 사진으로서 육개장, 냉면, 라면, 콩장, 짜장면을 인식한 샘플사진이다.

 

목동코딩학원 인공지능수업

 

 

 

 

728x90
728x90

목동코딩학원: 인공지능수업

요즘 인공지능 활용을 위해 Custom dataset을 만드는 재미에 푹 빠져있다.

프로젝트를 하면서, 직접 나만의 Cusotom Detection이 필요하다 보니 유튜브에서 많은 영상을 보며 공부했다.

그결과 이제는 내가 원하는 데로 학습시키고 , 인식 하는데 많이 수월해 졌다.

jpg, mp4, rtsp방식등 여러번 테스트를 하면서 다양한 수요에 준비를 하는 중이다.

요즘 요청 받는 프로젝트는 거의가 인공지능( A.I )가 필수이다.

그만큼 인공지능이 보편화 되어가는것 같다.

아래 영상은 유튜브영상을 Object Detection한 영상이다

( 상업적 목적이 없습니다. 혹시 저작권등에 문제가 된다면 지우겠습니다 )

참고로 공부한 영상을 올려본다.

 

 

728x90

+ Recent posts