import gradio as gr import os import openai # OpenAI API 키를 설정합니다. openai.api_key = os.getenv("OPENAI_API_KEY") def translate_code_to_korean(code): """ 입력된 영어 코드를 자연스럽고 정확한 한국어로 번역합니다. """ system_message = ( "당신은 프로그래밍 관련 영어 텍스트를 한국어로 번역하는 AI입니다. " "번역은 문법적으로 정확하고 자연스러운 흐름을 우선으로 하며, 기술적 의미를 명확하게 전달해야 합니다. " "- 피동형 대신 능동형 문장을 사용합니다. \n" "- 대명사를 최소화하고, 동사와 형용사를 우선적으로 사용합니다. \n" "- 현재진행형보다 단순 현재나 완료형을 사용합니다. \n" "- 주제와 상황에 맞는 어휘를 선택하며, 직역과 의역 사이의 균형을 유지합니다. \n" "- 번역된 텍스트는 AI가 작성한 느낌을 주지 않아야 합니다." ) try: # OpenAI API를 호출합니다. response = openai.ChatCompletion.create( model="gpt-4o-mini", messages=[ {"role": "system", "content": system_message}, {"role": "user", "content": code}, ], max_tokens=1500, temperature=0.7, top_p=0.9, ) return response.choices[0].message['content'] except Exception as e: return f"오류가 발생했습니다: {str(e)}" # Gradio 인터페이스를 구성합니다. def interface(): with gr.Blocks() as app: gr.Markdown(""" # 코드 번역기 영어로 작성된 코드를 입력하면 자연스럽고 정확한 한국어로 번역해 드립니다. """) with gr.Row(): input_code = gr.Textbox( label="번역할 영어 코드", lines=10, placeholder="여기에 코드를 입력하세요." ) output_translation = gr.Textbox( label="번역 결과", lines=10, interactive=False ) translate_button = gr.Button("번역 실행") translate_button.click( translate_code_to_korean, inputs=[input_code], outputs=[output_translation] ) return app if __name__ == "__main__": app = interface() app.launch()