■ datetime 클래스의 date 메소드를 사용해 YYYYMMDD 문자열에서 date 객체를 구하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
import datetime sourceDateString = "20160101" targetDatetime = datetime.datetime.strptime(sourceDateString, "%Y%m%d") # datetime.datetime 클래스 targetDate = targetDatetime.date() # datetime.date 클래스 print(targetDatetime) print(targetDate ) """ 2016-01-01 00:00:00 2016-01-01 """ |
■ datetime 클래스의 date 메소드를 사용해 YYYY-MM-DD 문자열에서 date 객체를 구하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
import datetime sourceDateString = "2016-01-01" targetDatetime = datetime.datetime.strptime(sourceDateString, "%Y-%m-%d") # datetime.datetime 클래스 targetDate = targetDatetime.date() # datetime.date 클래스 print(targetDatetime) print(targetDate ) """ 2016-01-01 00:00:00 2016-01-01 """ |
■ OpenAI 클래스의 completions 변수를 사용해 프로그램 소스 코드를 생성하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
import os from openai import OpenAI os.environ["OPENAI_API_KEY"] = "<OPENAI_API_KEY>" openAI = OpenAI() # openAI.completions : openai.resources.completions.Completions 클래스 # completion : openai.types.completion.Completion 클래스 completion = openAI.completions.create( model = "gpt-3.5-turbo-instruct", prompt = "# \"Hello, World!\" 표시\ndef printHelloWorld():\n ...\n\n상기 코드를 완성해주세요.", temperature = 1, max_tokens = 256, top_p = 1, frequency_penalty = 0, presence_penalty = 0 ) print(completion) """ Completion( id = 'cmpl-9W8FGDWTfoKfPyaYHJzqrRAx1sojx', choices = [ CompletionChoice ( finish_reason = 'stop', index = 0, logprobs = None, text = '\n\ndef printHelloWorld():\n print("Hello, World!")' ) ], created = 1717445218, model = 'gpt-3.5-turbo-instruct', object = 'text_completion', system_fingerprint = None, usage = CompletionUsage ( completion_tokens = 13, prompt_tokens = 27, total_tokens = 40 ) ) """ |
▶ requirements.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
annotated-types==0.7.0 anyio==4.4.0 certifi==2024.6.2 distro==1.9.0 exceptiongroup==1.2.1 h11==0.14.0 httpcore==1.0.5 httpx==0.27.0 idna==3.7 openai==1.30.5 pydantic==2.7.3 pydantic_core==2.18.4 sniffio==1.3.1 tqdm==4.66.4 typing_extensions==4.12.1 |
■ OpenAI 클래스의 completions 변수를 사용해 원문을 요약하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
import os from openai import OpenAI os.environ["OPENAI_API_KEY"] = "<OPENAI_API_KEY>" openAI = OpenAI() # openAI.completions : openai.resources.completions.Completions 클래스 # completion : openai.types.completion.Completion 클래스 completon = openAI.completions.create( model ="gpt-3.5-turbo-instruct", prompt ="아래 문장을 짧은 한 문장으로 요약해 주세요.\n\n칼리스토는 목성의 네 개 큰 위성 중에서 가장 외부에 위치한 위성으로, 목성에서 가장 먼 곳에 있습니다.\n칼리스토는 태양계에서 다섯 번째로 큰 위성으로 알려져 있으며, 직경은 약 4,820km로 지구의 달보다도 큽니다.\n그 크기로 보면 목성의 다른 세 개의 큰 위성(이오, 유로파, 갈릴레오)와 비교하여 상당히 큰 편에 속합니다.\n아래 문장을 짧은 한 문장으로 요약해 주세요.\n\n칼리스토는 목성의 네 개 큰 위성 중에서 가장 외부에 위치한 위성으로, 목성에서 가장 먼 곳에 있습니다.\n칼리스토는 태양계에서 다섯 번째로 큰 위성으로 알려져 있으며, 직경은 약 4,820km로 지구의 달보다도 큽니다.\n그 크기로 보면 목성의 다른 세 개의 큰 위성(이오, 유로파, 갈릴레오)와 비교하여 상당히 큰 편에 속합니다.", temperature = 1, max_tokens = 256, top_p = 1, frequency_penalty = 0, presence_penalty = 0 ) print(completon) """ Completion ( id = 'cmpl-9W88cSjedAhPoQzyYyweLUFuKbMPp', choices = [ CompletionChoice ( finish_reason = 'stop', index = 0, logprobs = None, text = '칼리스토는 목성의 다섯 번째로 큰 위성이며, 외부에 위치하고 지구의 달보다 큰 크기를 가지고 있습니다.' ) ], created = 1717444806, model = 'gpt-3.5-turbo-instruct', object = 'text_completion', system_fingerprint = None, usage = CompletionUsage( completion_tokens = 52, prompt_tokens = 372, total_tokens = 424 ) ) """ |
▶ requirements.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
annotated-types==0.7.0 anyio==4.4.0 certifi==2024.6.2 distro==1.9.0 exceptiongroup==1.2.1 h11==0.14.0 httpcore==1.0.5 httpx==0.27.0 idna==3.7 openai==1.30.5 pydantic==2.7.3 pydantic_core==2.18.4 sniffio==1.3.1 tqdm==4.66.4 typing_extensions==4.12.1 |
■ OpenAI 클래스의 completions 변수를 사용해 번역하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
import json import os from openai import OpenAI os.environ["OPENAI_API_KEY"] = "<OPENAI_API_KEY>" openAI = OpenAI() # openAI.completions : openai.resources.completions.Completions 클래스 # completion : openai.types.completion.Completion 클래스 completion = openAI.completions.create( model = "gpt-3.5-turbo-instruct", prompt = "한국어를 영어로 번역합니다.\n\n한국어 : 나는 고양이다.\n영어는 어떻게 됩니까?한국어를 영어로 번역합니다.\n\n한국어 : 나는 고양이다.\n영어는 어떻게 됩니까?", temperature = 0, max_tokens = 256, top_p = 1, frequency_penalty = 0, presence_penalty = 0 ) print(completion) """ Completion ( id = 'cmpl-9W7qx64Ngh2dnoM9gBGbHgIFvwaMo', choices = [ CompletionChoice ( finish_reason = 'stop', index = 0, logprobs = None, text = '\n\n영어: I am a cat.' ) ], created = 1717443711, model = 'gpt-3.5-turbo-instruct', object = 'text_completion', system_fingerprint = None, usage = CompletionUsage ( completion_tokens = 10, prompt_tokens = 88, total_tokens = 98 ) ) """ |
▶ requirements.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
annotated-types==0.7.0 anyio==4.4.0 certifi==2024.6.2 distro==1.9.0 exceptiongroup==1.2.1 h11==0.14.0 httpcore==1.0.5 httpx==0.27.0 idna==3.7 openai==1.30.5 pydantic==2.7.3 pydantic_core==2.18.4 sniffio==1.3.1 tqdm==4.66.4 typing_extensions==4.12.1 |
■ OpenAI 클래스의 completions 변수를 사용해 질의/응답하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
import os from openai import OpenAI os.environ["OPENAI_API_KEY"] = "<OPENAI_API_KEY>" openAI = OpenAI() # openAI.completions : openai.resources.completions.Completions 클래스 # completion : openai.types.completion.Completion 클래스 completion = openAI.completions.create( model = "gpt-3.5-turbo-instruct", prompt = "인공지능에 대해 알려주세요.", temperature = 1, max_tokens = 256, top_p = 1, frequency_penalty = 0, presence_penalty = 0 ) print(completion) """ Completion( id = 'cmpl-9W7ifMAGrW6uzimQBTeNurRBfJxT4', choices = [ CompletionChoice( finish_reason = 'length', index = 0, logprobs = None, text = '\n\n인공지능(AI)은 인간의 지능을 모방하여 만든 컴퓨터 프로그램 또는 시스템을 말합니다. 인공지능은 인간처럼 문제를 해결하고 의사결정을 내리며 학습하고 발전할 수 있습니다.\n\n인공지능은 크게 약한 인공지능과 강한 인공지능으로 나뉩니다. 약한 인공지능은 특정한 작업을 수행하는데 효율적이지만 한정된 범위 내에서만 작업이 가능합니다. 예를 들어 음성인식, 언어 번역, 이미지 분석 등이 이에 해당됩니다. 반면 강한 인공지능은 인간처럼 다양한 문제를 해결하고 다양한 작업을 수행할 수 있으며, 학습과 발전 능력도 높습니다.\n\n인' ) ], created = 1717443197, model = 'gpt-3.5-turbo-instruct', object = 'text_completion', system_fingerprint = None, usage = CompletionUsage( completion_tokens = 256, prompt_tokens = 13, total_tokens = 269 ) ) """ |
▶ requirements.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
annotated-types==0.7.0 anyio==4.4.0 certifi==2024.6.2 distro==1.9.0 exceptiongroup==1.2.1 h11==0.14.0 httpcore==1.0.5 httpx==0.27.0 idna==3.7 openai==1.30.5 pydantic==2.7.3 pydantic_core==2.18.4 sniffio==1.3.1 tqdm==4.66.4 typing_extensions==4.12.1 |
■ OpenAI 클래스의 chat 변수를 사용해 채팅하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
import os from openai import OpenAI os.environ["OPENAI_API_KEY"] = "<OPENAI_API_KEY>" openAI = OpenAI() # openAI.chat : openai.resources.chat.chat.Chat 클래스 # openAI.chat.completions : openai.resources.chat.completions.Completions 클래스 # charCompletion : openai.types.chat.chat_completion.ChatCompletion 클래스 chatCompleton = openAI.chat.completions.create( model = "gpt-4o", messages = [ { "role" : "system", "content" : [ { "type": "text", "text": "16세 여고생입니다." } ] }, { "role" : "user", "content" : [ { "type" : "text", "text" : "요즘 한국 여학생들 사이에서 가장 인기있는 항목은 무엇입니까?" } ] } ], temperature = 1, max_tokens = 256, top_p = 1, frequency_penalty = 0, presence_penalty = 0 ) print(chatCompleton) """ ChatCompletion( id = 'chatcmpl-9W7QzXHrVSLpagmDEHRp7OaKi3LyX', choices = [ Choice( finish_reason = 'length', index = 0, logprobs = None, message = ChatCompletionMessage( content = '요즘 한국 여학생들 사이에서 인기가 많은 항목들은 다음과 같습니다:\n\n1. **K-팝(K-pop)**: BTS, 블랙핑크 같은 그룹들이 여전히 많은 인기를 끌고 있습니다.\n2. **K-드라마 및 웹툰**: 다양한 장르의 드라마와 웹툰이 큰 인기를 얻고 있습니다.\n3. **패션과 뷰티**: 다양한 나이대에 맞는 패션 트렌드와 화장품, 스킨케어 제품에 대한 관심이 많습니다.\n4. **소셜 미디어**: 인스타그램, 틱톡, 유튜브 등에서 활동하고 콘텐츠를 소비하는 것이 매우 인기 있습니다.\n5. **온라인 게임**: 리그 오브 레전드, 메이플스토리, 배틀그라운드 같은 게임들도 아직 많은 인기를 끌고 있습니다.\n6. **공부 및 자기계발**: 대학 입시와 관련된 공부, 다양한 언어 학습, 자격증 취득 등에도 관심이 많습니다.\n\n특히 어떤 부분에 관심이 있는지 좀 더 구체적으로 말씀해주실 수 있나요? 그러면 더 자세하고', role = 'assistant', function_call = None, tool_calls = None ) ) ], created = 1717442101, model = 'gpt-4o-2024-05-13', object = 'chat.completion', system_fingerprint = 'fp_319be4768e', usage = CompletionUsage( completion_tokens = 256, prompt_tokens = 36, total_tokens = 292 ) ) """ |
▶ requirements.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
annotated-types==0.7.0 anyio==4.4.0 certifi==2024.6.2 distro==1.9.0 exceptiongroup==1.2.1 h11==0.14.0 httpcore==1.0.5 httpx==0.27.0 idna==3.7 openai==1.30.5 pydantic==2.7.3 pydantic_core==2.18.4 sniffio==1.3.1 tqdm==4.66.4 typing_extensions==4.12.1 |
■ OpenAI 클래스의 completions 변수를 사용해 텍스트를 생성하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
import json import os from openai import OpenAI os.environ["OPENAI_API_KEY"] = "<OPENAI_API_KEY>" openAI = OpenAI() # openAI.completions : openai.resources.completions.Completions 클래스 # completion : openai.types.completion.Completion 클래스 completion = openAI.completions.create( model = "gpt-3.5-turbo-instruct", prompt = "다음 이야기를 작성해 주세요. 기타를 좋아하는 컴맹인 여고생이 어떤 계기로 록밴드에 가입하고, 낯선 인간 관계를 통해 활동하는 이야기", temperature = 1, max_tokens = 256, top_p = 1, frequency_penalty = 0, presence_penalty = 0 ) print(completion) """ Completion( id = 'cmpl-9W7AzBCXA7yC3jUiWH60e5hL7eZgq', choices = [ CompletionChoice( finish_reason = 'length', index = 0, logprobs = None, text = '\n\n여고생 수진은 그동안 언제나 기타에 집착하며 컴퓨터가 부담스러운 생각이 들기도 했다. 컴퓨터는 왠지 불편하고 어렵게만 느껴졌다. 하지만 수진은 기타를 칠 때면 마음의 평화를 찾을 수 있었다. 그래서 수진의 꿈은 기타리스트가 되는 것이었다.\n\n어느 날, 수진은 학교에서 락 밴드에 대한 홍보 포스터를 보았다. 이번에는 컴퓨터 기술이 아닌 음악으로 인생을 살아보고 싶었다. 수진은 약간의 망설임은 있었지만, 기타를 연주하는 것에 대한 열정이 무엇보다도 강했다.' ) ], created = 1717441109, model = 'gpt-3.5-turbo-instruct', object = 'text_completion', system_fingerprint = None, usage = CompletionUsage(completion_tokens = 256, prompt_tokens = 68, total_tokens = 324) ) """ |
▶ requirements.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
annotated-types==0.7.0 anyio==4.4.0 certifi==2024.6.2 distro==1.9.0 exceptiongroup==1.2.1 h11==0.14.0 httpcore==1.0.5 httpx==0.27.0 idna==3.7 openai==1.30.5 pydantic==2.7.3 pydantic_core==2.18.4 sniffio==1.3.1 tqdm==4.66.4 typing_extensions==4.12.1 |
■ 논리 연산자에 대한 정의를 보여준다. ▶ 논리 연산자
|
=============================================== 연산자 정의 ======= ====================================== a and b a, b 모두 True이면 True a or b a 또는 b가 True이면 True not a a가 False이면 True, a가 True이면 False =============================================== |
■ 대입 연산자에 대한 정의를 보여준다. ▶ 대입 연산자
|
================================================= 연산자 정의 ====== ========================================= = 대입한다. += 더하고 대입한다. -= 빼고 대입한다. *= 곱하고 대입한다. /= 나누고 대입한다(소수점 이를 자르지 않음). //= 나누고 대입한다(소수점 이하 반올림). %= 나머지를 구해서 대입한다. **== 거듭 제곱을 해서 대입한다. ================================================= |
■ 파이썬 데이터 타입을 보여준다. ▶ 표
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
==================================================================================== 구분 타입 설명 사용 예제 ====== ======== ==================== ============================================ 수치형 int 정수 value1 = 12 # 10진수 value2 = 0o14 # 8진수 value3 = 0xc # 16진수 value4 = 0b1100 # 2진수 ======== ==================== ============================================ float 실수(부동 소수점 수) value1 = 1.2 value2 = 1.2e3 # 지수 표기(1.2×10^3) value3 = 1.2e-3 # 지수 표기(1.2×10^-3) ======== ==================== ============================================ bool 논리값 value1 = True value2 = False ======== ==================== ============================================ complex 복소수 value1 = 2 + 3j # 실수 + 허수 value1 = complex(2, 3) # complex(실수, 허수) ==================================================================================== |
■ SQlite3 데이터 타입과 대응하는 파이썬 데이터 타입을 보여준다. ▶ 표
|
============================= SQLite3 자료형 파이썬 자료형 ============== ============= NULL None INTEGER int REAL float TEXT str, bytes BLOB buffer ============================= |
■ unassign 함수를 사용해 구글 코랩에서 런타임 연결을 끊는 방법을 보여준다. ▶ 예제 코드 (PY)
|
from google.colab import runtime runtime.unassign() |
■ nvidia-smi 명령을 사용해 구글 코랩에서 할당된 GPU를 조회하는 방법을 보여준다. ▶ 실행 명령
▶ 실행 결과
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
Mon Jun 3 11:57:34 2024 +---------------------------------------------------------------------------------------+ | NVIDIA-SMI 535.104.05 Driver Version: 535.104.05 CUDA Version: 12.2 | |-----------------------------------------+----------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+======================+======================| | 0 Tesla T4 Off | 00000000:00:04.0 Off | 0 | | N/A 57C P8 11W / 70W | 0MiB / 15360MiB | 0% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ +---------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=======================================================================================| | No running processes found | +---------------------------------------------------------------------------------------+ |
■ makedirs 함수의 exist_ok 인자를 사용해 기존 생성된 디렉토리 재생성시 에러를 발생시키는 방법을 보여준다. ▶ 예제 코드 (PY)
|
import os os.makedirs("~/data", exist_ok = False) |
■ cat 명령을 사용해 구글 코랩에서 12시간 후 초기화 관련 남은 시간을 조회하는 방법을 보여준다. ▶ 실행 명령
|
!cat /proc/uptime | awk '{printf("남은 시간 : %.2f", 12-$1/60/60)}' |
■ datetime 클래스의 today 메소드를 사용해 현재 지역 시간의 datetime 객체를 구하는 방법을 보여준다. ▶ 예제 코드 (PY)
|
from datetime import datetime today = datetime.today() print(today) """ 2024-06-03 20:32:47.935826 """ |
■ BaseBrowser 클래스의 open 메소드를 사용해 1시간 간격으로 웹 브라우저를 갱신하는 방법을 보여준다. ▶ 예제 코드 (PY)
|
import time import datetime import webbrowser for i in range(12): browser = webbrowser.get("chrome") browser.open("http://icodebroker.com") print(i, datetime.datetime.today()) time.sleep(60 * 60) # 1시간 """ 0 2024-06-03 20:25:48.460584 ... """ |
■ ls 명령을 사용해 구글 코랩에서 마운트한 구글 드라이브를 조회하는 방법을 보여준다. ▶ 실행 명령
|
!ls "/content/drive/My Drive/" |
※ 우분투 터미널이 아닌 구글 코랩에서
더 읽기
■ drive 변수의 mount 메소드를 사용해 구글 코랩에서 구글 드라이브를 마운트하는 방법을 보여준다. ▶ 예제 코드 (PY)
|
from google.colab import drive drive.mount("/content/drive") |
■ openai 패키지를 설치하는 방법을 보여준다. 1. 명령 프롬프트를 실행한다. 2. 명령 프롬프트에서 아래 명령을 실행한다. ▶ 실행 명령
■ pip list 명령을 사용해 설치 패키지 리스트를 조회하는 방법을 보여준다. 1. [명령 프롬프트]를 실행한다. 2. [명령 프롬프트]에서 아래 명령을 실행한다. ▶
더 읽기
■ loads 함수를 사용해 JSON 문자열에서 딕셔너리를 구하기는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
import json sendDictonary = {"status" : "success", "message" : "Data received"} jsonString = json.dumps(sendDictonary) targetDictionary = json.loads(jsonString) print(f"소스 JSON 문자열 : {jsonString}" ) print(f"타겟 딕셔너리 : {targetDictionary}") """ 소스 JSON 문자열 : {"status": "success", "message": "Data received"} 타겟 딕셔너리 : {'status': 'success', 'message': 'Data received'} """ |
■ socket 클래스를 사용해 단순 TCP 서버/클라이언트를 만드는 방법을 보여준다. ▶ server.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
import json import socket def startServer(hostIPAddress, hosePort): with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as socket1: socket1.bind((hostIPAddress, hosePort)) socket1.listen() print(f"클라이언트 요청 수신중 : {hostIPAddress}:{hosePort}") while True: socket2, clientAddress = socket1.accept() with socket2: print(f"클라이언트 연결 : {clientAddress}") while True: receiveBytes = socket2.recv(1024) if not receiveBytes: break receiveDictionary = json.loads(receiveBytes.decode()) print(f"수신 데이터 : {receiveDictionary}") sendDictonary = {"status" : "success", "message" : "Data received"} socket2.sendall(json.dumps(sendDictonary).encode()) print(f"클라이언트 연결 종료 : {clientAddress}") if __name__ == "__main__": startServer("127.0.0.1", 12345) |
▶ client.py —————————————————————————————————- import json import socket def start_client(serverIPAddress,
더 읽기
■ DROP USER 명령을 사용해 사용자를 삭제하는 방법을 보여준다. • 사용자를 삭제하려면 슈퍼유저 권한이 필요하다. • 삭제하려는 사용자가 소유한 데이터베이스나 테이블이 있는
더 읽기