실습 프롬프트

전체 코드

import os
import re
from dotenv import load_dotenv
from openai import OpenAI

# .env 파일 로드
load_dotenv()

# 환경 변수에서 API 키 가져오기
api_key = os.getenv("OPENAI_API_KEY")

client = OpenAI()
def generate_python_code(prompt):
  response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
      {
        "role": "system",
        "content": [
          {
            "type": "text",
            "text": "당신은 Python 프로그래밍을 잘하는 AI입니다. 주어진 문제를 해결하는 간단한 Python 코드를 생성하세요."
          }
        ]
      },{"role":"user","content":prompt}
    ],
    response_format={
      "type": "text"
    },
    temperature=0.7,
    max_completion_tokens=4096,
    stop=["stop"],
    top_p=1,
    frequency_penalty=0,
    presence_penalty=0
  )
  return response["choices"][0]["message"]["content"]
  
def extract_code(text):
    """응답에서 Python 코드 부분만 추출"""
    code_block = re.search(r"```python(.*?)```", text, re.DOTALL)
    return code_block.group(1).strip() if code_block else None

def execute_python_code(code):
    """생성된 Python 코드를 실행하고 결과를 반환"""
    local_vars = {}
    try:
        exec(code, {}, local_vars)
        return local_vars.get("result")  # 'result' 변수를 코드에서 반환하도록 설정
    except Exception as e:
        return f"코드 실행 중 오류 발생: {str(e)}"
    
if __name__ == "__main__":
    # 예제 입력 (사용자가 질문하는 부분)
    user_question = "John이 하루에 3개의 사과를 먹으면, 10일 동안 몇 개의 사과를 먹을까?"

    # GPT를 사용하여 Python 코드 생성
    generated_code = generate_python_code(user_question)
    print(" 생성된 Python 코드:", generated_code)

    # 코드 부분만 추출
    extracted_code = extract_code(generated_code)
    if extracted_code:
        print(" 실행할 Python 코드:", extracted_code)
        
        # 코드 실행 후 결과 출력
        result = execute_python_code(extracted_code)
        print(" 실행 결과:", result)
    else:
        print(" 코드 추출 실패")
`

Last updated