파이썬 프로젝트 및 응용/chatGPT3.5로 자동으로 책 요약 후 아바타 숏츠만들기

[프로젝트]chatGPT3.5로 자동으로 책 요약 후 아바타 숏츠만들기 - 3.영상 한국어 스크립트 만들기

파기차차 2023. 4. 21. 07:55
728x90
반응형
SMALL

ㅁ 개요

 

O 프로그램 소개

 

이번글은 이전글([프로젝트]chatGPT3.5로 자동으로 책 요약 후 아바타 숏츠만들기 - 2.요약한 내용에 해당하는 이미지 만들기)에 이은 5번재 글로 이전 글([프로젝트]chatGPT3.5로 자동으로 책 요약 후 아바타 숏츠만들기 - 1.책 요약하기 > 책 요약하기)의 내용을 다시 60초 분량으로 요약하고, 영어로 요약된 문장을 한글로 번역하는 방법에 대하여 살펴봅니다.

 

 

 

**본 포스팅 글은 아래 유튜브 사이트(국내 파이썬 최고 실력자 중 한 분)의 내용을 참고하여 작성하였으며, 초보자들이 좀 더 쉽고, 잘 따라할 수 있도록 해당 내용을 세부적으로 잘게 쪼개서 설명한 글입니다. 자세한 내용은 아래 사이트를 참고하여 주시기 바랍니다.

[GPT-4] 책 요약해서 유튜브 쇼츠 영상으로 돈버는 인공지능 만들기|빵형의 개발도상국

https://www.youtube.com/watch?v=_TVyF_4JJgk&t=814shttps://www.youtube.com/watch?v=sLgYJIpqUJg

 

 

 

 

 

O 완성된 프로그램 실행 화면

 

 

 - 본 포스팅의 최종 완성된 프로그램의 결과화면은 아래와 같습니다.

 

1.프로그램 실행 시 아래와 같이 요약 내용이 (1)처음 영어로 출력되고, (2) 그 다음 한글로 출력되는 것을 볼 수 있습니다.

 

 


 

 

ㅁ 세부 내용

 

O 완성된 소스

 

 

소스 : 4.py

 

import openai
from config import *
openai.api_key = OPENAI_API_KEY


# summary_list = [{'role': 'system', 'content': 'You are a helpful assistant for summarizing books.'}, {'role': 'user', 'content': "The Indian village has often been portrayed as a closed and isolated system, but recent studies show that this is not true. Contrary to the depiction of the Indian village as a self-sufficient republic, it has always had links with the wider society, such as migration, trade, administrative connections, inter-village economic and caste links, and religious pilgrimage. The concept of a village in India for government purposes is defined in terms of revenue, and the determinants of rural social formation include geographic, social, and cultural environments. India's rural social structure is shaped by its ancient civilization, and while there have been periods of urbanization, the Indian village has always been connected to the wider society."}, {'role': 'user', 'content': 'This passage discusses the economic, social, religious, and political structures of Indian villages. The economic structure has shifted from being self-sufficient to being part of a wider economic network due to industrialisation and urbanisation. The social structure is based on caste and kinship, with vertical interdependence among castes and horizontal ties of caste and kinship. The religious structure shows a double process of interaction between local and all-India Hinduism, with the spread of Sanskritic elements through technology such as railways and media. The political structure was described by British administrators in the 19th century.'}]
summary_list = [{'role': 'system', 'content': 'You are a helpful assistant for summarizing books.'}, {'role': 'user', 'content': 'The Indian village was once portrayed as a "closed" and "isolated" system by British administrator Charles Metcalf. However, recent studies suggest that Indian villages were never self-sufficient and had connections with wider society, including migration, trade, and religious pilgrimages. For government purposes, a village is defined as a revenue village with surveyed boundaries, and rural social life is determined by factors such as geographic and cultural environments, as well as social stratification and mobility. India has an ancient civilization that dates back to the Indus valley civilization and has a complex rural social structure influenced by various factors.'}, {'role': 'user', 'content': 'The article discusses the economic, social, and religious aspects of Indian villages. The villages were not economically self-sufficient even in British times and have been affected by industrialization and urbanization. Villagers have horizontal ties of caste and kinship that extend beyond the village to other villages and even towns. Intra-caste relations and caste matters are regulated by a caste panchayat whose members belong to different villages. The spread of Sanskritic theological ideas increased during British rule and after, due to the development of communications and spread of literacy. Western technology has helped the spread of Sanskritization. The article also discusses the political system of Indian villages.'}]

def generateScript():
    global script_ko

    summary_list.append({
        'role': 'user',
        'content': '위 문장들을 60초 발표 분량으로 요약해줘'
    })


    res = openai.ChatCompletion.create(
        # model='gpt-4',
        model='gpt-3.5-turbo',
        messages=summary_list
    )

    script = res['choices'][0]['message']['content']

    print(script)


    messages = [{
        'role': 'system',
        'content': 'You are a helpful assistant for summarizing and translating books.'
    }, {
        'role': 'user',
        'content': f'한국어로 번역해줘: {script}'
    }]

    res = openai.ChatCompletion.create(
        # model='gpt-4',
        model='gpt-3.5-turbo',
        messages=messages
    )

    script_ko = res['choices'][0]['message']['content']

    print(script_ko)

    # script_ko = "이 문장은 영국의 식민지 시절에 인도 농촌 주변의 신화와 편견에 대한 도전으로, 인도 농촌은 항상 넓은 사회와 연결되어 있었으며 지리적, 사회적, 문화적 환경 에 의해 형성되어, 계급 간 상호의존성과 다른 마을 및 도시와의 친족 관계에 반영되는 지방 사회 생활이 형성되고 있습니다. 농촌은 경제적으로 자급자족하지 않 으며, 넓은 경제적 네트워크의 일부가 되었습니다. 인도 농촌의 정치 체제는 19세기 초 영국 행정 관리자들에 의해 설명되었으며, 사상 기술과 커뮤니케이션의 발 전으로 인해 생상교의 확산이 증가하였습니다. 궁극적으로, 이 글은 식민지 시대의 고정관념에 도전하며, 인도 농촌 생활에 대한 세부적인 이해를 제공합니다."

    return script_ko

script_ko = generateScript()
print(script_ko)

# script_ko = "이 글은 인도 마을의 경제, 사회, 종교 및 정치 구조를 포함한 다양한 측면을 탐구한다. 이전에는 인도 마을이 자급자족이라는 믿음이 있었지만 최근 연구는 이들이 이주, 무역, 종교적 순례를 비롯한 보다 광범위한 사회와의 관계를 갖는다는 점을 강조한다. 마을 주민들은 소계와 계급에 기반한 수평적인 관계와 마을을 넘어 확장되는 친족관계를 가지며, 계급 판차야트에 의해 규제되며, 사회 계층화와 이동성과 같은 요인의 영향을 받는다. 사스크리트 신학 아이디어도 의사소통과 문맹율의 발전 때문에 전파되고 있다. 전반적으로, 인도 마을은 지리적 및 문화적 환경을 비롯한 다양한 요인에 영향을 받은 복잡한 농촌 사회 구조를 가지고 있다."

 

 

 

 

 - 소스파일을 cmd, 파워쉘 또는 vscode 등에서 아래와 같이 실행하시기 바랍니다.
 

 

 > python 4.py

 

 


 

O 주요 내용

 

1.아래 소스코드의 주요 부분에 대해 간략히 설명 드리겠습니다.

 

 

이전글에서 얻은 summary_list 리스트를 활용하여 스크립트를 만들 것이므로 summary_list가 있어야 합니다.

 

1) chatGPT에게 이전 내용을 60초 분량으로 요약해 달라고 user의 역할을 정의 후 summary_list에 추가합니다.(line 12~15)

 

2) 그리고 나서 chatGPT에게 API요청 후 응답값을 res변수로 받고, 여기서 요약내용만 script변수에 담습니다. (line 18~24)

 

script변수에 담긴 요약 내용은 영어 입니다.(위 그림에서 (1)번 결과 참고)

 

따라서 한글로 바꾸기 위해서 chatGPT에게 요청해야 하는데 아래 코드와 같이

 

1) 다시 역할 정의를 해줍니다. (line 29~35)

chatGPT(system) : 넌 책요약 및 번역 도우미야!!

요청자(user) : script변수의 내용을 한글로 번역해줘..

 

2) 그리고 나서 chatGPT에게 API요청 후 응답값을 res변수로 받고, 여기서 한글 요약내용만 script_ko변수에 담습니다.(위 그림에서 (2)번 결과 참조, line 37~43)

 

 

 

 


 

ㅁ 정리

 

O 우리가 배운 내용

 

 

 - 오늘은 이전 글([프로젝트]chatGPT3.5로 자동으로 책 요약 후 아바타 숏츠만들기 - 1.책 요약하기 > 책 요약하기)의 내용을 다시 60초 분량으로 요약하고, 영어로 요약된 문장을 한글로 번역하는 방법에 대하여 살펴보았습니다.

 

 - 오늘 우리가 배운 내용을 간략히 정리해 보면 아래와 같습니다.
 > 1.아래에서와 같이 이전 내용을 60초 분량으로 요약하도록 역할의 정의 후 API 요청
 > 2.그리고 나서 1에서 요약된 내용을 한글로 번역하도록 역할 정의 후 API 요청


 

 

 

오늘은 여기까지이며,  댓글하트는 제가 이글을 지속할 수 있게 해주는 힘이 됩니다.

위의 내용이 유익하셨다면, 댓글과 하트 부탁드립니다.

 

 

 

 

감사합니다.

 

 

※ 추가적인 정보는 아래 유튜브 영상에서 해당 내용을 더욱 자세히 보실 수 있습니다.

 

 

728x90
반응형
LIST