새소식

딥러닝, 머신러닝/프롬프트 엔지니어링

개발자를 위한 챗 GPT 프롬프트 엔지니어링 #5. Transforming (변형)

  • -

이전 글

 

이번 강의는 번역, 메일 쓰기, 오타/문법 수정 등 텍스트를 변형하는 작업들을 다루고 있습니다. Claude, Chat GPT 같은 LLM 기반 서비스들은 성능이 너무 좋아서 웬만한 기존 번역 서비스들 수준 이상이 되는 것 같습니다. 워낙 사용된 데이터가 많으니 오타 수정, 글쓰기 등 목적에 따라 다 쓸 수 있을 것 같습니다. 요즘은 multi-modal로 이미지나 오디오도 인식이 가능하니 다양한 서비스에 접목해보는 것도 좋을 것 같아요.

 

 

1. 메일쓰기

prompt = f"""
Translate the following from slang to a business letter: 
'Dude, This is Joe, check out this spec on this standing lamp.'
"""
response = get_completion(prompt)
print(response)

 

"친구야 이건 조다. 이 스탠딩 램프에 관한 스펙 확인해봐" 라는 대화 느낌의 가벼운 문장을 공식적인 이메일 형태로 변환하도록 요청했다.

 

[결과]

더보기

Dear Sir/Madam,

I am writing to bring to your attention the specifications of a standing lamp that I believe may be of interest to you. 

Sincerely,
Joe

 

 

2. 번역

user_messages = [
  "La performance du système est plus lente que d'habitude.",  # System performance is slower than normal         
  "Mi monitor tiene píxeles que no se iluminan.",              # My monitor has pixels that are not lighting
  "Il mio mouse non funziona",                                 # My mouse is not working
  "Mój klawisz Ctrl jest zepsuty",                             # My keyboard has a broken control key
  "我的屏幕在闪烁"                                               # My screen is flashing
] 

for issue in user_messages:
    prompt = f"Tell me what language this is in a word: ```{issue}```"
    lang = get_completion(prompt)
    print(f"Original message ({lang}): {issue}")

    prompt = f"""
    Translate the following  text to English \
    and Korean: ```{issue}```
    """
    response = get_completion(prompt)
    print(response, "\n")

문장 입력을 받으면 어느 나라 언어인지 자동 탐지를 하고, 특정 국가(영어 및 한국어) 언어로 번역하는 작업이다. 어느 나라 언어인지 설명하는 건 1개 단어로 하도록 해서 French, Spanish 처럼 나오게 했다. 물론 프롬프트를 날릴 때 간혹 This is Chinese 라고 이게 통하지 않는 경우도 있으니 실제 서비스에서는 별도 알고리즘 처리가 필요하다.

 

 

해외 컨퍼런스 영상에 대한 자막 자료가 있다면, 번역해서 중요한 부분을 꺼내주는 용도로 사용할 수도 있을 것 같다.

 

 

[결과]

더보기

Original message (French): La performance du système est plus lente que d'habitude.
English: "The system performance is slower than usual."
Korean: "시스템 성능이 평소보다 느립니다." 

Original message (Spanish): Mi monitor tiene píxeles que no se iluminan.
English: "My monitor has pixels that do not light up."

Korean: "내 모니터에는 빛나지 않는 픽셀이 있습니다." 

Original message (Italian): Il mio mouse non funziona
English: My mouse is not working
Korean: 내 마우스가 작동하지 않습니다 

Original message (Polish): Mój klawisz Ctrl jest zepsuty
English: My Ctrl key is broken
Korean: 제 Ctrl 키가 고장 났어요 

Original message (Chinese): 我的屏幕在闪烁
English: My screen is flickering
Korean: 내 화면이 깜박거립니다 

 

 

3. 오타 수정 및 문법 교정

text = "안녕하세요 저는 홍길동입니다. 1남 1녀의 장남으로 태어난 자로 잉생을 막연하게 살아보니"
prompt = f"proofread and correct this review: ```{text}```"
response = get_completion(prompt)
print(response)

 

문법 및 오타를 교정해서 교정된 문장을 출력한다.

 

[결과]

더보기

안녕하세요, 저는 홍길동입니다. 1남 1녀의 장남으로 태어난 자로 인생을 막연하게 살아왔습니다.

 

from redlines import Redlines
diff = Redlines(text,response)
display(Markdown(diff.output_markdown))

이런식으로 redlines 라이브러리를 이용해서 텍스트 차이난 부분을 시각화해서 볼 수도 있다.

 

 

4. 포맷 변경 (JSON > HTML 변경)

data_json = { "resturant employees" :[ 
    {"name":"Shyam", "email":"shyamjaiswal@gmail.com"},
    {"name":"Bob", "email":"bob32@gmail.com"},
    {"name":"Jai", "email":"jai87@gmail.com"}
]}

prompt = f"""
Translate the following python dictionary from JSON to an HTML \
table with column headers and title: {data_json}
"""
response = get_completion(prompt)
print(response)

이런 식으로 JSON 형태로 구성된 데이터도 HTML로 변환할 수 있다. 디자인을 참고할 만한 이미지를 주거나, 추가 설명을 주는 식으로 하면 좀 더 쓸만한 HTML을 만들 수도 있을 것 같다.

 

 

 

외국어로 메일을 쓸 때 초안을 빨리 만들고, 완성본의 문법, 철자 확인을 하는 용도로도 쓸 수 있을 것 같다. 문법 교정은 과제나 자소서 같은 중요 글들에도 사용할 수 있을 것 같다. 생각보다 블로그 같은 걸로 글쓰기에 뛰어드는 사람들이 많은데 글을 쉽게 쓰는 사람은 10%도 안된다. 많은 사람들이 이 툴을 쓰면 글을 좀 더 쉽게 이해하고, 잘 쓰는 데 도움이 될 것 같다. 나도 앞으로 텍스트 형식을 변경하거나, 글을 새로 쓸 일이 있을 때 GPT를 사용해봐야겠다. 생각보다 도움될만한 툴을 얻은 것 같다. 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.