본문 바로가기
AI 인사이트/최신 AI 트렌드 리뷰

AI로 유튜브 제목 및 스크립트 자동 생성하는 방법(feat. Langchain, OpenAI, Streamlit)

by AI 동키 2023. 8. 2.
반응형

안녕하세요! 오늘은 Langchain, Streamlit 그리고 OpenAI API를 활용하여 유튜브 제목과 스크립트를 자동으로 생성하는 웹 페이지를 만들어 볼 것입니다. 복잡해 보일 수 있지만, 한 단계씩 차근차근 해보면 생각보다 별게 아닙니다.

 

시작하기 전에

이 포스팅의 내용을 실제 적용해보시고 싶으시다면 아래의 사전 지식이 필요합니다. 

사전 필요 지식
- 파이썬 개발환경과 코딩 지식
- OpenAI API Key

 

AI로 유튜브 제목 및 스크립트 자동 생성 사이트에 쓰이게 될 라이브러리들에 대해 간략하게 소개드릴게요.  

  • Langchain : LangChain은 언어 모델을 활용한 애플리케이션 개발을 위한 도구인데요, 이 툴을 이용하면 언어 모델이 주변 환경과 소통하고, 다른 데이터 소스와도 연결할 수 있게 됩니다. LangChain의 가장 큰 장점은 바로 컴포넌트와 사전 제작된 체인(Off-the-shelf chains) 이에요. 컴포넌트란, 언어 모델을 편리하게 활용할 수 있게 도와주는 일종의 빌딩 블록입니다. 이 컴포넌트를 이용하면 LangChain 전체를 사용하지 않더라도, 복잡한 프로그래밍 없이 언어 모델과 쉽게 상호작용할 수 있어요. 사전 제작된 체인은 여러분이 특정 작업을 수행하고자 할 때 도움을 주는 미리 만들어진 툴킷 같은 것입니다. 이를 활용하면 복잡한 작업도 쉽게 시작할 수 있죠. 더 복잡한 작업이 필요하거나 기존의 체인을 맞춤화하고 싶다면, 여러분이 원하는 대로 컴포넌트를 조합하면 됩니다. 이처럼 LangChain은 언어 모델과의 상호작용을 보다 쉽고 효과적으로 만들어주는 훌륭한 도구입니다.

  • Streamlit : Streamlit은 데이터 사이언티스트와 엔지니어를 위한 오픈소스 라이브러리로, Python 코드로 웹 애플리케이션을 빠르게 만들 수 있게 도와줍니다. 코드 몇 줄만으로 웹 UI 컴포넌트를 뽑아내고, 간단한 명령어로 웹서버를 실행해서 웹페이지에 보기 좋은 UI로 띄울수가 있습니다.

  • OpenAI API : OpenAI에서 제공하는 자연어 처리 AI인 GPT 모델을 활용할 수 있게 해주는 API입니다.

 

구현 코드

아래에 제공된 코드는 위에서 언급한 도구들을 사용하여 웹 페이지를 구현하는 코드입니다.

  • 이 컨텐츠는 Nicholas Renotte 라는 유튜버의 영상의 내용을 참고하였습니다.
  • 코드는 그의 깃허브에서 확인하실 수 있습니다.
주의 : 아래 코드는 구글 Colab에서는 작동하지 않습니다.
import os
from apikey import API_KEY
import streamlit as st
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain, SequentialChain
from langchain.memory import ConversationBufferMemory
from langchain.utilities import WikipediaAPIWrapper

os.environ['OPENAI_API_KEY'] = API_KEY

# title and basic UI
st.title('YouTube Title & Script 생성기 :astronaut: ')
prompt = st.text_input('생성할 주제를 입력하세요.')

# Prompt templates
title_template = PromptTemplate(
    input_variables=['topic'],
    template='write me a youtube video title about {topic}'
)

script_template = PromptTemplate(
    input_variables=['title', 'wikipedia_research'],
    template='write me youtube video script based on this title TITLE : {title} while leveraging this wikipedia research:{wikipedia_research}'
)

# Memory
title_memory = ConversationBufferMemory(
    input_key='topic', memory_key='chat_history')
script_memory = ConversationBufferMemory(
    input_key='title', memory_key='chat_history')

# llms
llm = OpenAI(temperature=0.5)
title_chain = LLMChain(llm=llm, prompt=title_template,
                       verbose=True, output_key='title', memory=title_memory)
script_chain = LLMChain(llm=llm, prompt=script_template,
                        verbose=True, output_key='script', memory=script_memory)

wiki = WikipediaAPIWrapper()

# Show stuff to the screen if there's prompt
if prompt:
    title = title_chain.run(prompt)
    wiki_research = wiki.run(prompt)
    script = script_chain.run(title=title, wikipedia_research=wiki_research)

    st.write(title)
    st.write(script)

    with st.expander('Title History'):
        st.info(title_memory.buffer)

    with st.expander('Script History'):
        st.info(script_memory.buffer)

    with st.expander('Wikipedia Research'):
        st.info(wiki_research)

 

코드 설명

  1. 먼저, 필요한 모듈들을 불러옵니다. OpenAI의 API 키도 설정해줍니다.
  2. Streamlit을 활용해 웹페이지의 기본 UI를 구성합니다. 여기에서는 제목과 텍스트 입력창을 만듭니다.
  3. Langchain의 PromptTemplate을 이용하여 제목과 스크립트 생성에 사용할 템플릿을 설정합니다.
  4. ConversationBufferMemory를 사용해 대화 이력을 저장합니다.
  5. OpenAI API를 불러와 LLMChain을 구성합니다. 이를 통해 제목과 스크립트를 생성합니다.
  6. WikipediaAPIWrapper를 이용해 해당 주제에 대한 위키백과 정보를 가져옵니다.
  7. 사용자가 텍스트를 입력하면, 그에 따른 제목과 스크립트, 그리고 관련 위키백과 정보를 화면에 출력합니다.

 

결과 확인

이제 웹 페이지를 실행해 보겠습니다.

 원하는 주제를 입력하면, AI가 그에 맞는 유튜브 제목과 스크립트를 생성해 줍니다. 또한, 생성 과정에서 사용된 위키백과 정보와 대화 이력도 확인할 수 있습니다. AI를 활용한 컨텐츠 생성이 어떻게 이루어지는지 실시간으로 확인하실 수 있습니다.

이처럼  아주 간단한 코드로 openai api의 결과를 연결하고, 메모리를 사용해 결과를 저장하고, 내장된 프롬프트로 사용자의 간단한 요구를 충족 시킬 수 있는 서비스를 만들 수 있습니다.

아래에 있는 expander를 열어보면 내용이 나옵니다.

어떤가요?

이러한 방식을 통해 AI를 활용하여 다양한 주제의 유튜브 콘텐츠를 만드는 툴을 손쉽게 만들수가 있습니다. 이 포스팅이 여러분에게 도움이 되었으면 좋겠네요. 다양한 주제와 다른 방식으로 테스트해보며, 더욱 효과적인 방법을 찾아보세요!



좋은 아이디어가 있으시다면 댓글로 공유해주시고, 유용한 정보라고 생각되신다면 좋아요와 구독 부탁드립니다. 다음 포스트에서 만나요!

#LangChain활용법#AI스크립트작성#유튜브스크립트자동생성#인공지능코딩#AI어플리케이션개발#머신러닝프로그래밍#딥러닝텍스트분석#LangChain과OpenAI#자연어처리프레임워크#데이터사이언스활용#AI유튜브스크립트#LangChain프로그래밍#LangChain#언어모델#AI#OpenAI#데이터분석#컴퓨터과학#인공지능#프로그래밍#머신러닝#딥러닝#코딩#데터사이언스#프레임워크#애플리케이션개발#빅데이터#텍스트분석#자연어처리#개발도구#AI기술#LangChain활용

반응형

댓글