# 코드를 작성하기 전에 전체적인 구조를 계획해 보겠습니다. # 1. 필요한 라이브러리를 불러옵니다. import os import datetime import openai # OpenAI API를 사용하기 위한 라이브러리 # 2. ChatGPT와의 소통을 담당할 함수를 정의합니다. def ask_chatgpt(question, api_key): openai.api_key = api_key response = openai.Completion.create( model="gpt-3.5-turbo", # 이 모델은 최신 버전에서 사용됩니다. messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": question} ] ) # 응답 형식에 따라 적절한 필드를 반환해야 합니다. # 새로운 API에 따라, 응답 형식이 달라질 수 있으므로, 정확한 필드를 확인해야 합니다. return response.choices[0].text.strip() # 'message' 대신 'text'를 사용 # 3. 응답을 분석하여 파일 제목을 결정하는 함수를 정의합니다. def determine_filename(response): """ 응답 텍스트를 분석하여 파일 제목을 결정하는 함수. :param response: ChatGPT로부터 받은 응답 텍스트. :return: 결정된 파일 제목. """ # "제목"으로 시작하는 문장을 찾습니다. for sentence in response.split('.'): if sentence.strip().lower().startswith("제목"): return sentence.strip() + ".txt" # 제목이 있는 경우 파일 이름을 결정합니다. # 제목이 없는 경우 현재 날짜로 파일 이름을 결정합니다. current_date = datetime.datetime.now().strftime("%Y%m%d") return f"{current_date}-Response.txt" # 4. 응답과 이미지(있는 경우)를 저장하는 함수를 정의합니다. def save_response_and_images(response, folder_path, filename): """ 응답 텍스트와 이미지(있는 경우)를 파일에 저장하는 함수. :param response: ChatGPT로부터 받은 응답 텍스트. :param folder_path: 저장할 폴더의 경로. :param filename: 파일 제목. """ # GPT_Response 폴더가 없으면 생성합니다. if not os.path.exists(folder_path): os.makedirs(folder_path) # 응답을 텍스트 파일로 저장합니다. file_path = os.path.join(folder_path, filename) with open(file_path, 'w') as file: file.write(response) # TODO: 이미지 처리 로직은 사용자의 추가 요구 사항에 따라 결정되어야 합니다. # 주석 처리된 함수 호출들을 제외하고, 이 구조를 기반으로 구체적인 구현을 진행하겠습니다. # 참고: 실제 코드 실행은 주석 처리되어 있으므로, 여기에서는 실행되지 않습니다. # 파이썬 코드 수정: 사용자로부터 질문을 입력 받는 기능 추가 # 함수 정의 부분은 그대로 둡니다. 주요 변경은 스크립트 실행 부분에 있습니다. # 사용자로부터 질문을 입력 받는 코드를 추가합니다. def main(api_key): # 사용자로부터 질문을 입력 받습니다. question = input("ChatGPT에게 물어볼 질문을 입력하세요: ") # ChatGPT에게 질문을 하고 응답을 받습니다. response = ask_chatgpt(question, api_key) # 응답으로부터 파일 제목을 결정합니다. filename = determine_filename(response) # 응답과 이미지(있는 경우)를 저장합니다. folder_path = os.path.join(os.getcwd(), "GPT_Response") save_response_and_images(response, folder_path, filename) # 사용자에게 응답이 저장된 위치를 알려줍니다. print(f"응답이 {folder_path} 폴더에 저장되었습니다, 파일명: {filename}") # 이제 main 함수를 실행할 준비가 되었습니다. # 참고: 실제 환경에서 API 키와 함께 main 함수를 호출해야 합니다. # 예: main('your_openai_api_key_here') # 주석 처리된 함수 호출들을 제외하고, 이 구조를 기반으로 구체적인 구현을 진행하겠습니다. # 참고: 실제 코드 실행은 주석 처리되어 있으므로, 여기에서는 실행되지 않습니다. if __name__ == "__main__": main("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")