본문 바로가기

최근 ChatGPT 가 화제다 회사에서도 개발한 리펙토링을 잘해줘서 자주 사용하고 있고 한달에 20달러 정도로 아래와 같이 Plus 플랜이 있다.

해서 어디까지 사용할수 있을지 해서 제목과 같은 질의문을 통해서 얻은 결과는 아래와 같다.

chatgpt : 다음은 파이썬에서 유튜브 API를 사용하여 동영상 검색 결과를 가져오는 예제입니다. 이 코드는 Google API 클라이언트 라이브러리를 사용하므로 먼저 클라이언트 라이브러리를 설치해야합니다. 이 코드는 googleapiclient 라이브러리를 사용하여 YouTube API에 액세스하고 search 메서드를 사용하여 검색 결과를 검색합니다. 검색 결과에서는 각 동영상의 제목, ID, 설명 및 썸네일 URL을 추출하여 딕셔너리에 저장하고 결과를 리스트에 추가합니다. 마지막으로 검색 결과를 반복하고 각 결과의 제목을 출력합니다.

from googleapiclient.discovery import build
from googleapiclient.errors import HttpError

# API 정보
DEVELOPER_KEY = "YOUR_DEVELOPER_KEY"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"

# 동영상 검색어
query = "Python Programming"

def search_videos(query):
    youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, developerKey=DEVELOPER_KEY)
    search_response = youtube.search().list(
        q=query,
        type="video",
        part="id,snippet",
        maxResults=50
    ).execute()

    videos = []
    for search_result in search_response.get("items", []):
        if search_result["id"]["kind"] == "youtube#video":
            video = {
                "title": search_result["snippet"]["title"],
                "video_id": search_result["id"]["videoId"],
                "description": search_result["snippet"]["description"],
                "thumbnail": search_result["snippet"]["thumbnails"]["default"]["url"]
            }
            videos.append(video)
    return videos

try:
    results = search_videos(query)
    for result in results:
        print(result["title"])
except HttpError as e:
    print(f"An HTTP error {e.resp.status} occurred: {e.content}")

진짜 금방 코드를 작성할 수 있게 도와주고 있다

또 자바로 알려줘 라고 질의를 해보니 아래와 같이 알려주고 있다. 개발자 금방 사라지는거 아닌가?

import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.youtube.YouTube;
import com.google.api.services.youtube.model.SearchListResponse;
import com.google.api.services.youtube.model.SearchResult;

import java.io.IOException;
import java.security.GeneralSecurityException;
import java.util.List;

public class YoutubeSearch {

    private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
    private static final String APPLICATION_NAME = "Youtube Search Example";
    private static final long NUMBER_OF_VIDEOS_RETURNED = 25;

    public static void main(String[] args) throws GeneralSecurityException, IOException {
        HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
        HttpRequestInitializer requestInitializer = httpRequest -> {
            // API Key를 넣어줍니다.
            httpRequest.getHeaders().set("X-Goog-Api-Key", "API_KEY");
            httpRequest.getHeaders().set("Referer", "http://localhost:8080");
        };
        YouTube youtube = new YouTube.Builder(httpTransport, JSON_FACTORY, requestInitializer)
                .setApplicationName(APPLICATION_NAME)
                .build();

        YouTube.Search.List search = youtube.search().list(List.of("id", "snippet"));
        search.setKey("API_KEY");
        search.setQ("검색어");
        search.setType("video");
        search.setFields("items(id/kind,id/videoId,snippet/title,snippet/description,snippet/thumbnails/default/url)");
        search.setMaxResults(NUMBER_OF_VIDEOS_RETURNED);
        SearchListResponse searchResponse = search.execute();

        List<SearchResult> searchResultList = searchResponse.getItems();

        if (searchResultList != null) {
            searchResultList.forEach(searchResult -> {
                System.out.println("Video ID: " + searchResult.getId().getVideoId());
                System.out.println("Title: " + searchResult.getSnippet().getTitle());
                System.out.println("Description: " + searchResult.getSnippet().getDescription());
                System.out.println("Thumbnail: " + searchResult.getSnippet().getThumbnails().getDefault().getUrl());
            });
        }
    }
}

chatgpt : 위 코드에서 API_KEY에는 본인이 발급받은 API 키를 넣어주시면 됩니다. 또한 검색어를 변경하고 싶을 때는 search.setQ("검색어") 부분의 검색어를 변경해주시면 됩니다.

현재 chatgpt가 2021년 데이터 학습해서 나왔다고 한다. 개발할때 정말 편리해 지긴 했다. 대학을 컴공을 나오고 대학원은 인공지능 학과를 다니고 있지만 이 chatgpt가 내 미래의 일자리를 없어지게 할것같다.... 차후에는 chatgpt4를 공개한다는데 현재 버전보다 파라메터가 500배가 는다고 하니 어떤 결과를 보여줄지가 기대된다.  물론 아래와 같이 질문했을때에는 답변이 전문가의 도움을 받는것이 좋다고 한다. ㅋㅋ 

질문 : 현재 20대에 서버에 하둡 클러스터를 구성하려고 한다. 설정은 어떤식으로 하면 좋을까?

답변 : 서버에 하둡 클러스터를 구성하는 것은 꽤 복잡한 작업입니다. 여러 가지 요소를 고려해야 합니다. 다음은 하둡 클러스터 구성에 대해 간단히 언급한 것입니다.

하둡 배포판 선택: Apache Hadoop, Cloudera, Hortonworks 등 다양한 배포판이 있으므로 목적에 맞는 배포판을 선택해야 합니다.

하둡 버전 선택: 최신 버전을 사용하는 것이 좋지만, 호환성 문제가 발생할 수 있으므로 기존 시스템과의 호환성을 고려하여 버전을 선택해야 합니다.

클러스터 크기 결정: 목적에 맞는 클러스터 크기를 결정해야 합니다. 데이터 양, 처리 속도, 가용성 등을 고려하여 적절한 크기를 선택해야 합니다.

하둡 구성 요소 설정: 하둡 클러스터는 여러 구성 요소로 이루어져 있으므로, 각 구성 요소의 설정을 조정해야 합니다. 예를 들어, HDFS의 블록 크기, MapReduce의 슬롯 개수 등을 설정할 수 있습니다.

네트워크 설정: 클러스터 노드 간의 통신을 위한 네트워크 설정이 중요합니다. 각 노드의 IP 주소, 포트 번호 등을 설정해야 합니다.

보안 설정: 하둡 클러스터는 중요한 데이터를 처리하기 때문에 보안 설정이 필요합니다. 각 구성 요소의 인증, 권한 부여, 암호화 등을 설정해야 합니다.

모니터링 및 문제 해결: 클러스터 상태를 모니터링하고 문제를 해결하기 위한 도구와 절차를 설정해야 합니다.

이러한 설정을 위해서는 하둡 클러스터를 이해하고 있는 것이 중요합니다. 따라서 이 작업에 대한 경험이 없다면, 전문가의 도움을 받는 것이 좋습니다.

음.. 당연히 배포판을 선택하면 좋겠지만 비용이 많이 든다 이후에 하둡 버전마다 차이점을 알려달라고 했지만 2021년 데이터라 그런가? 1버전과 2버전의 차이점만 알려주었다.

빨리 chatgpt4 가 나왔으면 좋겠다

엉망진창

개인 블로그 입니다. 코딩, 맛집, 정부정책, 서비스, ~방법 등 다양한 정보를 소개합니다