langchain-teddynote ๋ญ์ฒด์ธ ํ๊ตญ์ด ํํ ๋ฆฌ์ผ์ ์ฌ์ฉ๋๋ ๋ค์ํ ์ ํธ ํ์ด์ฌ ํจํค์ง.
LangChain ์ ์ฌ์ฉํ๋ฉด์ ๋ถํธํ ๊ธฐ๋ฅ์ด๋, ์ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ค์น
bash
Copy
pip install langchain-teddynote
์ฌ์ฉ๋ฒ ์คํธ๋ฆฌ๋ฐ ์ถ๋ ฅ ์คํธ๋ฆฌ๋ฐ ์ถ๋ ฅ์ ์ํ stream_response ํจ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
python
Copy
from langchain_teddynote.messages import stream_response
from langchain_openai import ChatOpenAI
# ๊ฐ์ฒด ์์ฑ
llm = ChatOpenAI(
temperature=0.1, # ์ฐฝ์์ฑ (0.0 ~ 2.0)
model_name="gpt-4o", # ๋ชจ๋ธ๋ช
)
answer = llm.stream("๋ํ๋ฏผ๊ตญ์ ์๋ฆ๋ค์ด ๊ด์ฅ์ง 10๊ณณ๊ณผ ์ฃผ์๋ฅผ ์๋ ค์ฃผ์ธ์!")
# ์คํธ๋ฆฌ๋ฐ ์ถ๋ ฅ๋ง ํ๋ ๊ฒฝ์ฐ
stream_response(answer)
# ์ถ๋ ฅ๋ ๋ต๋ณ์ ๋ฐํ ๊ฐ์ผ๋ก ๋ฐ๋ ๊ฒฝ์ฐ
# final_answer = stream_response(answer, return_output=True)
LangSmith ์ถ์
python
Copy
# LangSmith ์ถ์ ์ ์ค์ ํฉ๋๋ค. https://smith.langchain.com
# ํ๊ฒฝ๋ณ์ ์ค์ ์ ๋์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
from langchain_teddynote import logging
# ํ๋ก์ ํธ ์ด๋ฆ์ ์
๋ ฅํฉ๋๋ค.
logging.langsmith("ํ๋ก์ ํธ๋ช
๊ธฐ์
")
์ถ๋ ฅ
text
Copy
LangSmith ์ถ์ ์ ์์ํฉ๋๋ค.
[ํ๋ก์ ํธ๋ช
]
(๊ธฐ์
ํ ํ๋ก์ ํธ๋ช
)
๋ฉํฐ๋ชจ๋ฌ ๋ชจ๋ธ(์ด๋ฏธ์ง ์
๋ ฅ)
python
Copy
from langchain_teddynote.models import MultiModal
from langchain_teddynote.messages import stream_response
# ๊ฐ์ฒด ์์ฑ
llm = ChatOpenAI(
temperature=0.1, # ์ฐฝ์์ฑ (0.0 ~ 2.0)
model_name="gpt-4o", # ๋ชจ๋ธ๋ช
)
# ๋ฉํฐ๋ชจ๋ฌ ๊ฐ์ฒด ์์ฑ
system_prompt = """๋น์ ์ ํ(์ฌ๋ฌด์ ํ) ๋ฅผ ํด์ํ๋ ๊ธ์ต AI ์ด์์คํดํธ ์
๋๋ค.
๋น์ ์ ์๋ฌด๋ ์ฃผ์ด์ง ํ
์ด๋ธ ํ์์ ์ฌ๋ฌด์ ํ๋ฅผ ๋ฐํ์ผ๋ก ํฅ๋ฏธ๋ก์ด ์ฌ์ค์ ์ ๋ฆฌํ์ฌ ์น์ ํ๊ฒ ๋ต๋ณํ๋ ๊ฒ์
๋๋ค."""
user_prompt = """๋น์ ์๊ฒ ์ฃผ์ด์ง ํ๋ ํ์ฌ์ ์ฌ๋ฌด์ ํ ์
๋๋ค. ํฅ๋ฏธ๋ก์ด ์ฌ์ค์ ์ ๋ฆฌํ์ฌ ๋ต๋ณํ์ธ์."""
# ๋ฉํฐ๋ชจ๋ฌ ๊ฐ์ฒด ์์ฑ
multimodal_llm = MultiModal(
llm, system_prompt=system_prompt, user_prompt=user_prompt
)
# ์ํ ์ด๋ฏธ์ง ์ฃผ์(์น์ฌ์ดํธ๋ก ๋ถํฐ ๋ฐ๋ก ์ธ์)
IMAGE_URL = "https://storage.googleapis.com/static.fastcampus.co.kr/prod/uploads/202212/080345-661/kwon-01.png"
# ๋ก์ปฌ PC ์ ์ ์ฅ๋์ด ์๋ ์ด๋ฏธ์ง์ ๊ฒฝ๋ก ์
๋ ฅ
# IMAGE_URL = "./images/sample-image.png"
# ์ด๋ฏธ์ง ํ์ผ๋ก ๋ถํฐ ์ง์
answer = multimodal_llm.stream(IMAGE_URL)
# ์คํธ๋ฆฌ๋ฐ ๋ฐฉ์์ผ๋ก ๊ฐ ํ ํฐ์ ์ถ๋ ฅํฉ๋๋ค. (์ค์๊ฐ ์ถ๋ ฅ)
stream_response(answer)
DeepL ๋ฒ์ญ๊ธฐ
python
Copy
from langchain_teddynote.translate import Translator
# apiํค ์ค์
deepl_api_key = os.getenv("DEEPL_API_KEY")
# ๋ฒ์ญ ๊ฐ์ฒด ์์ฑ(source_lang, target_lang)
translator = Translator(deepl_api_key, "EN", "KO")
# ๋ฒ์ญ ์คํ
translated_