■ OpenAI 클래스의 fine_tuning 변수를 사용해 파인튜닝 작업의 실행을 요청하는 방법을 보여준다. ▶ main.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 os from openai import OpenAI os.environ["OPENAI_API_KEY"] = "<OPENAI_API_KEY>" openAI = OpenAI() trainingFileObjectID = "file-7rxtolLQnEPEZbAsu8E4L0Vp" # 업로드한 파일 객체 ID를 설정한다. fineTuningJob = openAI.fine_tuning.jobs.create( training_file = trainingFileObjectID, model = "davinci-002" ) print(fineTuningJob) """ FineTuningJob( id = 'ftjob-HkgAjAxQoiLDyPTOPLGuhPSz', created_at = 1717683513, error = Error( code = None, message = None, param = None ), fine_tuned_model = None, finished_at = None, hyperparameters = Hyperparameters ( n_epochs = 'auto', batch_size = 'auto', learning_rate_multiplier = 'auto' ), model = 'davinci-002', object = 'fine_tuning.job', organization_id = 'org-EkYGQNtJSwLObhqCI65I747J', result_files = [], seed = 1223001701, status = 'validating_files', trained_tokens = None, training_file = 'file-7rxtolLQnEPEZbAsu8E4L0Vp', validation_file = None, estimated_finish = None, integrations = [], user_provided_suffix = None ) """ |
▶ 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.31.1 pydantic==2.7.3 pydantic_core==2.18.4 sniffio==1.3.1 tqdm==4.66.4 typing_extensions==4.12.1 |
■ OpenAI 클래스의 files 변수를 사용해 파일을 업로드하는 방법을 보여준다. ▶ main.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
|
import os from openai import OpenAI os.environ["OPENAI_API_KEY"] = "<OPENAI_API_KEY>" openAI = OpenAI() fileObject = openAI.files.create( file = open("tsukuyomi_prepared.jsonl", "rb"), purpose = "fine-tune" ) print(f"File ID : {fileObject.id}") """ FileObject( id = 'file-la32xWXKcIHXWpe8P4d8RVEJ', bytes = 70794, created_at = 1717680553, filename = 'tsukuyomi_prepared.jsonl', object = 'file', purpose = 'fine-tune', status = 'processed', status_details = None ) """ |
▶ 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.31.1 pydantic==2.7.3 pydantic_core==2.18.4 sniffio==1.3.1 tqdm==4.66.4 typing_extensions==4.12.1 |
■ openai 프로그램을 사용해 파인튜닝 데이트 세트를 검증하는 방법을 보여준다. 1. 명령 프롬프트를 실행한다. 2. 명령 프롬프트에서 아래 명령을 실행한다. ▶ 실행
더 읽기
■ OpenAI 클래스의 embeddings 변수를 사용해 유사도를 검색하는 방법을 보여준다. (FAISS 벡터 데이터베이스 사용) ▶ 예제 코드 (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
|
import os import numpy import faiss from openai import OpenAI os.environ["OPENAI_API_KEY"] = "<OPENAI_API_KEY>" openAI = OpenAI() # 입력 텍스트의 텍스트 임베딩을 생성한다. inputText = "오늘은 비가 오지 않아서 다행이다." response = openAI.embeddings.create( input = inputText, model = "text-embedding-ada-002" ) inputEmbeddingList = [embedding.embedding for embedding in response.data] # inputEmbeddingList의 항목은 List 타입이다. inputEmbeddingNDArray = numpy.array(inputEmbeddingList).astype("float32") # 2차원 배열 : (1, 1536) # 대상 텍스트의 텍스트 임베딩을 생성한다. targetTextList = [ "좋아하는 음식은 무엇인가요?", "어디에 살고 계신가요?", "아침 전철은 혼잡하네요.", "오늘은 날씨가 좋네요.", "요즘 경기가 좋지 않네요." ] response = openAI.embeddings.create( input = targetTextList, model = "text-embedding-ada-002" ) targetEmbeddingList = [embedding.embedding for embedding in response.data] # targetEmbeddingList의 항목은 List 타입이다. targetEmbeddingNDArray = numpy.array(targetEmbeddingList).astype("float32") # 2차원 배열 : (5, 1536) # Faiss의 인덱스를 생성한다. indexFlatL2 = faiss.IndexFlatL2(targetEmbeddingNDArray.shape[1]) # 대상 텍스트의 임베딩 2차원 배열값을 인덱스에 추가한다. indexFlatL2.add(targetEmbeddingNDArray) # 유사도 검사를 수행한다. distanceList, indexList = indexFlatL2.search(inputEmbeddingNDArray, 1) print(distanceList) print(indexList) print(targetTextList[indexList[0][0]]) """ [[0.28370145]] [[3]] 오늘은 날씨가 좋네요. """ |
▶ requirements.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
annotated-types==0.7.0 anyio==4.4.0 certifi==2024.6.2 distro==1.9.0 exceptiongroup==1.2.1 faiss-gpu==1.7.2 h11==0.14.0 httpcore==1.0.5 httpx==0.27.0 idna==3.7 numpy==1.26.4 openai==1.31.1 packaging==24.0 pydantic==2.7.3 pydantic_core==2.18.4 sniffio==1.3.1 tqdm==4.66.4 typing_extensions==4.12.1 |
더 읽기
■ OpenAI 클래스의 embeddings 변수를 사용해 텍스트에서 임베딩을 생성하는 방법을 보여준다. • 임베딩은 자연어 처리 및 머신러닝 분야에서 널리 사용되는 개념으로, 텍스트를
더 읽기
■ OpenAI 클래스의 images 변수를 사용해 이미지에 대해 이미지 변형을 만드는 방법을 보여준다. [원본 이미지] [결과 이미지] ▶ 예제 코드 (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
|
import os from openai import OpenAI os.environ["OPENAI_API_KEY"] = "<OPENAI_API_KEY>" openAI = OpenAI() image = open("image.png", "rb") imageResponse = openAI.images.create_variation( image = image, size = "512x512", n = 1 ) print(imageResponse) """ ImagesResponse( created = 1717575422, data = [ Image( b64_json = None, revised_prompt = None, url = 'https://oaidalleapiprodscus.blob.core.windows.net/private/org-EkYGQNtJSwLObhqCI65I747J/user-89spyW5FYIOQ1WqSb6pwacpU/img-CiaFlRejfDdU3kmYPoTav8m0.png?st=2024-06-05T07%3A17%3A02Z&se=2024-06-05T09%3A17%3A02Z&sp=r&sv=2023-11-03&sr=b&rscd=inline&rsct=image/png&skoid=6aaadede-4fb3-4698-a8f6-684d7786b067&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2024-06-05T05%3A36%3A52Z&ske=2024-06-06T05%3A36%3A52Z&sks=b&skv=2023-11-03&sig=y6NnVvRqnUBVnA44OhDnH9hLTuX%2Bplme/iTEqccK6V0%3D' ) ] ) """ |
더 읽기
■ OpenAI 클래스의 images 변수를 사용해 이미지/텍스트를 갖고 이미지를 편집하는 방법을 보여준다. [원본 및 마스크 이미지] [결과 이미지] ▶ 예제 코드 (PY)
더 읽기
■ OpenAI 클래스의 images 변수를 사용해 텍스트를 갖고 이미지를 만드는 방법을 보여준다. • 한국어보다 영어가 더 정확하기 때문에 영어로 prompt 인자를 설정했다.
더 읽기
■ OpenAI 클래스의 completions 변수를 사용해 텍스트를 편집하는 방법을 보여준다. • 텍스트 편집은 원하는 텍스트와 편집 방법을 입력하면 원하는 텍스트의 편집 결과를
더 읽기
■ OpenAI 클래스의 completions 변수를 사용해 텍스트를 삽입하는 방법을 보여준다. • 삽입은 텍스트의 연속이 아닌 사이사이의 텍스트를 생성하는 기능이다. • 삽입을 이용하면
더 읽기
■ 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 |
■ openai 패키지를 설치하는 방법을 보여준다. 1. 명령 프롬프트를 실행한다. 2. 명령 프롬프트에서 아래 명령을 실행한다. ▶ 실행 명령