본문 바로가기
인공지능/코딩 이야기 from ChatGPT

ChatGPT4.0이 제안한 첫 번째 방법 도전하기

by AI4EcoLife 2023. 4. 15.
반응형

서론

ChatGPT4.0과 함께하는 코딩 프로젝트 part01에서 ChatGPT4.0이 제안한 첫 번째 방법인 API키를 이용한 방법을 환경 준비 및 도구 설치하고 직접 실행하는 과정을 담은 글입니다. 자, 시작합니다.

목차

    ChatGPT4.0이 제안한 첫 번째 방법 도전하기

    대화하는 귀여운 인공지능 로봇 이미지입니다.

    첫 번째 오류

    제안한 환경 준비 및 도구 설치를 마치고, VS Code에서 파일 만들고 실행하면 다음과 같은 에러를 처음 만났습니다.

    터미널 프로세스 "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe"이(가) 종료되었습니다(종료 코드: 3221225794).

    위의 내용을 ChatGPT 프롬프트에 질문하면 아래와 같은 답변을 해줍니다.

     

    이 오류 메시지는 PowerShell이 비정상적으로 종료되었음을 나타냅니다. 이 문제를 해결하기 위해 다음 단계를 시도해 보세요.
    PowerShell을 관리자 권한으로 실행하세요. 시작 메뉴에서 'Windows PowerShell'을 검색한 후, 마우스 오른쪽 버튼으로 클릭하여 '관리자 권한으로 실행'을 선택합니다.
    PowerShell 실행 정책을 변경하세요. PowerShell이 실행되지 않는 원인 중 하나는 실행 정책 때문일 수 있습니다. PowerShell을 관리자 권한으로 실행한 후, 다음 명령어를 입력하여 실행 정책을 변경해 보세요:

    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

    이 명령어를 실행하면 실행 정책이 변경되어 PowerShell 스크립트를 더 쉽게 실행할 수 있습니다. 변경된 실행 정책을 저장하려면 'Y'를 입력하세요.
    PowerShell이 아닌 명령 프롬프트를 사용해 보세요. 시작 메뉴에서 '명령 프롬프트'를 검색하고, 마우스 오른쪽 버튼으로 클릭하여 '관리자 권한으로 실행'을 선택합니다.
    시스템 파일 검사 도구를 사용하여 손상된 시스템 파일을 복구하세요. 명령 프롬프트(또는 PowerShell)에서 다음 명령어를 입력하세요:

    sfc /scannow

    이 명령어는 시스템 파일 검사 도구를 실행하여 손상된 시스템 파일을 검색하고 복구합니다. 명령어 실행이 완료되면 컴퓨터를 다시 시작해 보세요.

     

    위의 단계 중 하나가 문제를 해결할 수 있을 것입니다. 그래도 문제가 계속되면, 사용하시는 개발 환경, 운영 체제 버전, 에러 발생 시 실행한 명령어 등과 같은 추가 정보를 제공해 주시면 더 도움을 드릴 수 있습니다.

     

    ChatGPT4.0이 제안한 방법으로는 해결이 안 됨.

     

    해결방법은 두 가지였습니다.

    하나는 VS Code에서 외부로 나와 CMD를 열어서 실행하는 방법이었고.(아주 쉬운 방법이었습니다.) 다른 하나는 VS Code에서 터미널의 환경 변수를 바꾸는 방법으로 실행이 되었습니다. 실행은 됐지만 원하는 결과를 화면에 보여 주지 못했습니다. 제가 묻는 질문만 화면에 나오는 형태여서 다시 질문을 하였습니다.

     

     

    두 번째 개선 사항 요청

    ChatGPT4.0이 처음에 제안한 코드의 결과를 보면 질문만 화면에 나타나고 답변은 보이질 않았습니다. 마지막 대화가 끝나면 엑셀 파일로 저장되어 엑셀 파일을 열면 답변이 저장되어 있었습니다.

    추가 요청 방법은 제안한 코드 전체를 붙여 넣기를 하였고 결과에서 답변이 나타나지 않는 문제를 해결해 달라고 했습니다.

    아래와 같은 답변이 왔습니다.

     

    코드를 수정하여 사용자의 대화와 ChatGPT4.0의 대답이 화면에 출력되도록 수정했습니다. print 문을 사용하여 GPT 응답을 출력하면 됩니다. 아래 코드를 참고하세요:

     

    import openai
    import openpyxl
    from openpyxl import Workbook
    
    # Set up the OpenAI API
    openai.api_key = "이 자리에 개인 API 키를 입력합니다."
    
    # Create a new Excel workbook and sheet
    wb = Workbook()
    ws = wb.active
    ws.title = "ChatGPT4.0 Conversation"
    
    # Define headers for the Excel sheet
    headers = ["User", "Message", "Response"]
    for col_num, header in enumerate(headers, 1):
        col_letter = openpyxl.utils.get_column_letter(col_num)
        ws[f"{col_letter}1"] = header
    
    # Function to send a message to ChatGPT4.0 and receive a response
    def chat_with_gpt4(message):
        response = openai.Completion.create(
            engine="text-davinci-002",
            prompt=f"{message}",
            max_tokens=150,
            n=1,
            stop=None,
            temperature=0.5,
        )
    
        return response.choices[0].text.strip()
    
    # Collect user messages and responses from ChatGPT4.0
    row_num = 2
    while True:
        user_message = input("You: ")
        if user_message.lower() == "exit":
            break
    
        gpt_response = chat_with_gpt4(user_message)
    
        # Print the GPT response to the screen 추가된 부분입니다.
        print("ChatGPT4.0:", gpt_response)
    
        ws.cell(row=row_num, column=1, value="User")
        ws.cell(row=row_num, column=2, value=user_message)
        ws.cell(row=row_num, column=3, value=gpt_response)
        row_num += 1
    
    # Save the conversation to an Excel file
    wb.save("ChatGPT4.0_Conversation.xlsx")
    
    print("Conversation saved as ChatGPT4.0_Conversation.xlsx")

    이제 사용자 메시지와 ChatGPT4.0의 대답이 화면에 출력되고 대화가 엑셀 파일에도 저장됩니다.

     

     

    세 번째 개선 사항 요청

    다음은 질문에 대한 답변이 이상하게 나오는 이유라고 하네요.

     

    ChatGPT가 엉뚱한 대답을 하는 이유는 몇 가지가 있을 수 있습니다.

    1. 모호한 질문: 질문이 명확하지 않거나 맥락이 부족할 경우, ChatGPT는 올바른 대답을 생성하는 데 어려움을 겪을 수 있습니다. 질문을 명확하게 하고 필요한 정보를 제공하면 도움이 될 수 있습니다.
    2. 모델의 한계: GPT-4 아키텍처를 기반으로 한 ChatGPT 모델도 완벽하지 않습니다. 때로는 잘못된 정보를 제공하거나 이해하지 못할 수 있습니다. 이러한 한계를 인지하고, 필요한 경우 추가적인 정보 소스를 활용하거나 전문가와 상담하는 것이 좋습니다.
    3. 매개변수 조정: openai.Completion.create() 함수에서 설정한 매개변수에 따라 결과가 달라집니다. temperature를 낮추면 일관성 있는 대답이 나올 확률이 높아지지만, 너무 낮은 값은 모델이 반복적으로 같은 답변을 생성할 수 있습니다. 적절한 값을 찾아서 조정해 보세요.
    4. 프롬프트 수정: GPT 모델은 프롬프트에 매우 민감하게 반응합니다. 프롬프트를 다르게 작성하거나 정보를 추가하면 더 정확한 답변을 얻을 수 있습니다.
    5. 최적의 엔진 선택: openai.Completion.create() 함수에서 사용하는 엔진의 종류에 따라 결과가 다를 수 있습니다. 예를 들어, "text-davinci-002" 엔진은 높은 품질의 결과를 생성할 가능성이 높지만, 다른 엔진은 다른 질문에 더 적합할 수 있습니다. 엔진 종류를 변경하면서 최적의 결과를 찾아보세요.

    그래서 좀 더 최적의 답변을 얻을 수 있는 방법을 요청했습니다.

     

    ChatGPT4.0의 엔진의 종류와 대화의 온도 값을 사용자로부터 입력을 받아 대화를 하라는 추가 코드 내용입니다.

    # ... (기존 코드)
    
    # Function to send a message to ChatGPT4.0 and receive a response
    def chat_with_gpt4(message, engine, temperature):
        response = openai.Completion.create(
            engine=engine,
            prompt=f"{message}",
            max_tokens=150,
            n=1,
            stop=None,
            temperature=temperature,
        )
    
        return response.choices[0].text.strip()
    
    # Get engine and temperature values from the user
    engine = input("Enter the engine (e.g., 'text-davinci-002'): ")
    temperature = float(input("Enter the temperature (e.g., 0.5): "))
    
    # Collect user messages and responses from ChatGPT4.0
    row_num = 2
    while True:
        user_message = input("You: ")
        if user_message.lower() == "exit":
            break
    
        gpt_response = chat_with_gpt4(user_message, engine, temperature)
    
        # Print the GPT response to the screen
        print("ChatGPT4.0:", gpt_response)
    
        ws.cell(row=row_num, column=1, value="User")
        ws.cell(row=row_num, column=2, value=user_message)
        ws.cell(row=row_num, column=3, value=gpt_response)
        row_num += 1
    
    # ... (기존 코드)

    이제 사용자는 엔진과 온도 값을 입력할 수 있으며, 해당 값들이 chat_with_gpt4() 함수에 전달되어 사용됩니다. 이를 통해 사용자가 원하는 설정으로 ChatGPT와 대화를 진행할 수 있습니다.

     

    1차 방식의 최종 완성된 코드입니다.

    import openai
    import openpyxl
    from openpyxl import Workbook
    
    # Set up the OpenAI API
    openai.api_key = "이 자리에 개인 API 키를 입력합니다."
    
    # Create a new Excel workbook and sheet
    wb = Workbook()
    ws = wb.active
    ws.title = "ChatGPT4.0 Conversation"
    
    # Define headers for the Excel sheet
    headers = ["User", "Message", "Response"]
    for col_num, header in enumerate(headers, 1):
        col_letter = openpyxl.utils.get_column_letter(col_num)
        ws[f"{col_letter}1"] = header
    
    # Function to send a message to ChatGPT4.0 and receive a response
    def chat_with_gpt4(message, engine, temperature):
        response = openai.Completion.create(
            engine=engine,
            prompt=f"{message}",
            max_tokens=150,
            n=1,
            stop=None,
            temperature=temperature,
        )
    
        return response.choices[0].text.strip()
    
    # Get engine and temperature values from the user
    engine = input("Enter the engine (e.g., 'text-davinci-002'): ")
    temperature = float(input("Enter the temperature (e.g., 0.5): "))
    
    # Collect user messages and responses from ChatGPT4.0
    row_num = 2
    while True:
        user_message = input("You: ")
        if user_message.lower() == "exit":
            break
    
        gpt_response = chat_with_gpt4(user_message)
    
        # Print the GPT response to the screen
        print("ChatGPT4.0:", gpt_response)
    
        ws.cell(row=row_num, column=1, value="User")
        ws.cell(row=row_num, column=2, value=user_message)
        ws.cell(row=row_num, column=3, value=gpt_response)
        row_num += 1
    
    # Save the conversation to an Excel file
    wb.save("ChatGPT4.0_Conversation.xlsx")
    
    print("Conversation saved as ChatGPT4.0_Conversation.xlsx")

     

    결론

    첫 오류부터 좌충우돌이었습니다. 오류에 관한 부분을 복사하여 붙여 넣기만 해도 설명을 자세히 해 준 것은 좋았으나 코딩에 대한 기본 지식이 없는 상태에선 너무나 힘든 벽처럼 느껴졌습니다. 거의 하루의 시간을 퍼즐을 맞추는 듯한 느낌으로 헤매고 다녔습니다. 뭔가 이루었다는 뿌듯함은 남지만 여전히 코드의 의미는 모르겠습니다. 코딩에 대해 조금만 공부한다면 아주 훌륭한 프로젝트에 도전도 가능할 것 같습니다.(너무 자만감인가요?) 이제 두 번째 방법을 진행해 보려 합니다. 주말이라 쉴까? 아니면 다음 주 월요일에 진행할까? 선택의 고민 중입니다. 이렇게 무작정 따라 해도 될 만큼 쉽게 접근이 가능하다는 것 자체가 재미있고 유용하게 느껴졌습니다. 머릿속에 두지 말고 손가락으로 키보드를 직접 타이핑해 보는 것이 좋다는 말이 있더군요. 여러분도 한번 도전해 보세요.

    반응형

    댓글


    top
    bottom