๐ ๐ฆ Langchain ์ ํ๋ธ๋ก ์์ด์๋ฃ๋ง๋ค๊ธฐ
Huhsame
from langchain.document_loaders import YoutubeLoader
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
# ssl ์ฝ๋ ๋ถ๋ถ์ ์ถ๊ฐํด์ฃผ์ด์ผ ์๋ฌ๊ฐ ๋์ง ์์ต๋๋ค
loader = YoutubeLoader.from_youtube_url(ytURL)
yt = loader.load()
transcript = yt[0].page_contentfrom langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.schema import StrOutputParser
model = ChatOpenAI(
model="gpt-4",
temperature=0.7,
max_tokens=7000,
)
def generate_sentence_and_dict(transcript):
prompt1 = ChatPromptTemplate.from_template(
"๋น์ ์ IELTS๋ TOEFL ์ํ์ ์ค๋นํ๋ ํ๊ตญ์ธ์ ์ํ ํ์ํ ์์ด ๊ต์ฌ์
๋๋ค. ์ด์ ๋ค์ ์คํฌ๋ฆฝํธ ์ค์์ ์์ด ์คํผํน ๊ณต๋ถ์ ์ ์ฉํ ์์ด๋ฌธ์ฅ 10๊ฐ๋ฅผ ๋ฝ์ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์. \n\n {transcript}"
)
prompt2 = ChatPromptTemplate.from_template(
"์ฃผ์ด์ง ๊ฐ 10๋ฌธ์ฅ์์ ๊ตฌ๋์ฌ๋ ์์ด์ ๊ดํ ์ฌ์ ์ ๋ง๋ค์ด์ฃผ์ธ์. ์ฌ์ ์ ํ์ ์ด(๊ตฌ๋์ฌ๋ ์์ด), ํ๊ธ ๋ป, ์๋ ์์ด ๋ฌธ์ฅ, ๊ทธ๋ฆฌ๊ณ ํ๋ ์ฆ ์ํธ์ฝค์์์ ์์ด ์๋ฌธ์ ํฌํจํ ์ฌ์ ๋ฆฌ์คํธ๋ฅผ ์ ์ํด์ฃผ์ธ์. ์๋ ์์ด ๋ฌธ์ฅ๊ณผ ํ๋ ์ฆ ์์ด ์๋ฌธ์์ ํ์ ์ด์ ํด๋นํ๋ ๋ถ๋ถ์ ๋ณผ๋ ์ฒ๋ฆฌํด์ฃผ์ธ์. ```1. **[ํ์ ์ด]**\n - ๋ป: [ํ์ ์ด์ ํ๊ธ ๋ป]\n - ์๋ ๋ฌธ์ฅ ์์: [์๋ ์์ด ๋ฌธ์ฅ]\n - ํ๋ ์ฆ ์๋ฌธ: [ํ๋ ์ฆ ์ํธ์ฝค์์์ ์์ด ์๋ฌธ]```\n\n {sentence_list} "
)
chain1 = prompt1 | model | StrOutputParser()
chain2 = {"sentence_list": chain1} | prompt2 | model | StrOutputParser()
response = chain2.invoke({"transcript": transcript})
return responseprompt2 = ChatPromptTemplate.from_template(
"์ฃผ์ด์ง ๊ฐ 10๋ฌธ์ฅ์์ ๊ตฌ๋์ฌ๋ ์์ด์ ๊ดํ ์ฌ์ ์ ๋ง๋ค์ด์ฃผ์ธ์. ์ฌ์ ์ ํ์ ์ด(๊ตฌ๋์ฌ๋ ์์ด), ํ๊ธ ๋ป, ์๋ ์์ด ๋ฌธ์ฅ, ๊ทธ๋ฆฌ๊ณ ํ๋ ์ฆ ์ํธ์ฝค์์์ ์์ด ์๋ฌธ์ ํฌํจํ ์ฌ์ ๋ฆฌ์คํธ๋ฅผ ์ ์ํด์ฃผ์ธ์. ์๋ ์์ด ๋ฌธ์ฅ๊ณผ ํ๋ ์ฆ ์์ด ์๋ฌธ์์ ํ์ ์ด์ ํด๋นํ๋ ๋ถ๋ถ์ ๋ณผ๋ ์ฒ๋ฆฌํด์ฃผ์ธ์. ```1. **[ํ์ ์ด]**\n - ๋ป: [ํ์ ์ด์ ํ๊ธ ๋ป]\n - ์๋ ๋ฌธ์ฅ ์์: [์๋ ์์ด ๋ฌธ์ฅ]\n - ํ๋ ์ฆ ์๋ฌธ: [ํ๋ ์ฆ ์ํธ์ฝค์์์ ์์ด ์๋ฌธ]```\n\n {sentence_list} "
)