[LLM] Langchain์ผ๋ก AI E2E ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐํด๋ณด๊ธฐ
ChatGPT๊ฐ ํ๋๊ฐ ๋์ง ์ด๋๋ง 3๊ฐ์์ด ์ง๋๊ฐ๊ณ ์์ต๋๋ค. GPT ๋ชจ๋ธ์ด 3 ๋ฒ์ ์ดํ๋ก ๊ต์ฅํ ๋ง์ ๋ณํ๋ฅผ ๋ณด์ด๋ฉด์ ChatGPT์ ๋ฑ์ฅ์ ์ฌ์ฉ์์๊ฒ ์์ฃผ ์ธ๊ธฐ๋ฅผ ์ป๊ฒ ๋๋ฉด์ ํ์์ธ ์ ๋ ๋ค์ ํ ๋ฒ ๋จธ์ ๋ฌ๋์ ๊ด์ฌ์ ๋ณด์ด๊ฒ ๋์์ต๋๋ค.
ํ์ง๋ง ์ฌ๋ฌ ๋ ผ๋ฌธ, ๊ธ์ ์ฝ์ด๋ณด๊ณ ๊ณต๋ถ๋ง ํด์๋ ์ ์ ๋ฆฌ๊ฐ ๋์ง ์๋ ๋ฏํ์ฌ ์ต๊ทผ์ ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ๋ค๋ณด๋ Langchain์ ๋ํด ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋ณด๋ฉด ๋จธ์ ๋ฌ๋์ ๋ชจ๋ฅด๋ ๊ฐ๋ฐ์๋ค๋ ์ฝ๊ฒ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ์ด์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ๊ฐ๋ฐํด ๋ณผ ์ ์๋ค๋ฉด ํฅ๋ฏธ๊ฐ ์์ ๊ฒ ๊ฐ์ ๊ธ์ ์ฐ๊ฒ ๋์์ต๋๋ค.
๊ทธ๋์ Langchain์ด ๋ฌด์์ธ๊ฐ์?
Langchain์ LLM์ ์ด์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ธฐ ์ํ ํ๋ ์์ํฌ์ ๋๋ค. ๊ฐ๋จํ ์๊ธฐํ์๋ฉด ๋ชจ๋ธ์ ์ด์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํด์ฃผ๊ธฐ ๋๋ฌธ์ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ๊ฐ๋ฐํด ๋ณธ ๊ฒฝํ์ด ์๋ ๊ฐ๋ฐ์๋ค๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ง ์๊ณ ์์ผ๋ฉด ์ฝ๊ฒ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
Langchain์ ๋ํด ๋ค์ด๊ฐ๋ณด๊ธฐ ์ ์, Langchain์ด ์ด๋ค์ง ๊ตฌ์ฑ์ ๋ณด๋ฉฐ ์ด๋ป๊ฒ ์ด ํ๋ ์์ํฌ๊ฐ ํ์๋์๋์ง ์์๋ณด๊ฒ ์ต๋๋ค.
- LLM(Model I/O): ์ฌ์ฉ์์ ์ ๋ ฅ์ ์์ธกํ๋ ๋ชจ๋ธ
- Prompt: ๋ชจ๋ธ์ ์ ๋ ฅ๊ฐ
- Chains: LLM๊ณผ Prompt์ ๊ฒฐํฉ์ฒด๋ก ํธ์ถ ์ํ์ค๋ฅผ ์์ฑ
- Agents: ์ฌ์ฉ์ ์ ๋ ฅ์ ๋ฐ๋ผ ๋ค์ด๋๋ฏนํ๊ฒ ํธ์ถ
- Memory: Chain๊ณผ Agents์ ์ํ๋ฅผ ์ ์ฅ (์ฌ์ฉ์์ ์ ๋ ฅ๊ณผ ๋ชจ๋ธ์ ์ถ๋ ฅ์ ๊ธฐ์ตํ๋ ์ฉ๋)
- Evaluation: ์ฌ์ฉ์์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ก ์๋ตํ ์์ธก ๋ฐ์ดํฐ๋ฅผ ํ๊ฐ (BETA)
Langchain์ ์์ ๋ชจ๋ ์ธ์๋ ์ฌ๋ฌ ๋ชจ๋๋ก ์ด๋ค์ ธ ์๋๋ฐ, ๊ทธ ์ค Chains, Agents, Memory๊ฐ ๋ฐ๋ก Langchain์ ์ฝ์ด ๊ธฐ๋ฅ์ ๋๋ค. LLM์ ๊ธฐ์กด์ ๊ฐ๋ฐ๋ OpenAI์ GPT๋ Meta์ LlaMA ๋ฑ์ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ๊ฒ์ด๊ณ , Prompt ์ญ์ ChatGPT์ฒ๋ผ ์ฌ์ฉ์๊ฐ AI์๊ฒ ๋ช ๋ น์ ์ฃผ๋ ๊ฒ์ ๋๋ค.
Langchain์ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ๊ฐ๋ฐํ๋ ํ๋ ์์ํฌ๊ฐ ์๋ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ์ด์ฉํ์ฌ E2E(End to End) ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ ํ๋ ์์ํฌ๋ก ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ฌ์ด์ ์ธํฐํ์ด์ค ์ญํ ์ ํด์ค๋๋ค. ๋ฐ๋ผ์ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ๊ฐ๋ฐํด ๋ณธ ๊ฒฝํ์ด ์๋ ๊ฐ๋ฐ์๋ ์ฝ๊ฒ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ์ ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์๋ ๊ฒ์ ๋๋ค.
์ด์ LangChain์์๋ LLM ์์ ์ ํ์ํ ๊ธฐ๋ฅ์ ์๋ 7๊ฐ์ ์ถ์ํ ๋ ์ปดํฌ๋ํธ๋ก ์ ๊ณตํฉ๋๋ค.
- Schema
LLM๊ณผ ์ํธ์์ฉํ๊ธฐ ์ํ ์ธํฐํ์ด์ค (ex: ๋ฉ์์ง, ๋ฌธ์) - Models
์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ๋ฅธ ์๋ต ์์ธก ๋ชจ๋ธ (ex: ์ธ์ด ๋ชจ๋ธ, ์ฑํ ๋ชจ๋ธ, ํ ์คํธ ์๋ฒ ๋ฉ ๋ชจ๋ธ) - Prompts
๋ชจ๋ธ ํ๋ก๊ทธ๋๋ฐ ๋ฉ์๋๋ก ํ ์คํธ, ์ด๋ฏธ์ง, ์ค๋์ค๋ฅผ ์ผ์ปซ์ผ๋ฉฐ ํ์ฌ๋ ํ ์คํธ๋ง์ ์ง์ํ๊ณ ์๋ค. LangChain์์๋ ์์ฑํ AI๋ฅผ ์ ๋ชจ๋ฅด๋ ๊ฐ๋ฐ์๋ฅผ ์ํด Prompt template์ ์ ๊ณตํ์ฌ ํ๋ก๊ทธ๋๋ฐ์์ ํ๋ ๋ฐฉ์๋๋ก ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ์ ธ์ ํ๋กฌํฌํธ๋ฅผ ์์ฑํ ์ ์๋๋ก ํด์ฃผ๋ฉฐ ์ด ์ธ์๋ ์์ ์ ํ๊ธฐ(Example Selector)๋ฅผ ์ด์ฉํ์ฌ ํ๋กฌํฌํธ์์ ์ํฉ์ ๋ง๋ ์ ๋ณด๋ฅผ ๋์ ์ผ๋ก ์ฌ์ฉ์์๊ฒ ๋ฐฐ์นํ์ฌ ๋ณด์ฌ์ฃผ์ด ์ฝ๊ฒ ์ ํํ ์ ์๋๋ก ์ ๋ํ ์ ์๋ ๋ฉ์๋๋ ์ ๊ณตํ๋ค. ์ด ์ธ์๋ ์ฌ์ฉ์๊ฐ ์ข ๋ ๋จ์ํ๊ณ ์ฝ๊ฒ ์ ์ ์๋๋ก ์๋ตํ ํ ์คํธ ๊ฒฐ๊ณผ๋ฌผ์ ์งง๊ฒ ๊ตฌ์กฐํ ์์ผ ๋ง๋ค์ด์ฃผ๋ ์ถ๋ ฅ ํ์(Output Parser)๊ฐ ์๋๋ฐ, ์๋ฆฌ๋ ๋ชจ๋ธ์ ๋ฏธ๋ฆฌ ์๋ต ํํ๋ฅผ ์ ๊ณตํด์ฃผ๋ ๋ฐฉ๋ฒ๊ณผ ์ด๋ฏธ ์๋ตํ ๊ฒฐ๊ณผ๋ฅผ JSON ๋ฑ์ ์ํ๋ ๊ตฌ์กฐ๋ฌผ๋ก ์ถ์ถํ๋๋ก ํ๋ ๋ฐฉ๋ฒ์ด ์๋ค. - Indexes
LLM์ด ๋ค๋ฅธ ๋ฐ์ดํฐ ์์ค์์ ๋ฌธ์๋ฅผ ์ฝ๊ฒ ๊ฐ์ ธ์ค๊ธฐ ์ํ ๋ฉ์๋๋ก ๋ฌธ์ ๋ก๋(Document Loaders), ํ ์คํธ ๋ถํ ๊ธฐ(Text Splitter) ๋ฑ์ด ์กด์ฌํ๋ฉฐ ๋ฌธ์ ๋ก๋์ ๊ฒฝ์ฐ CSV, Dataframe Loader, ํ ์คํธ ๋ถํ ๊ธฐ๋ ML ๋ชจ๋ธ ๊ฐ๋ฐ์ ํด๋ณธ ์ฌ๋์ด๋ผ๋ฉด ๋๋ถ๋ถ ์๋ tiktoken, Markdown ๋ฑ์ ์ฌ์ฉํ๋ฉฐ ์ด ์ธ์๋ ๋ฒกํฐ ์คํ ์ด(Vector store), ๊ฒ์๊ธฐ(Retriever)๊ฐ ์๋ค. - Memory
Chains์ Agents์ ์ํ ๊ฐ์ ์ ์ฅํ๋ ์ปดํฌ๋ํธ๋ก ํํ ChatGPT๋ฅผ ์ฌ์ฉํด๋ดค๋ค๋ฉด ์ง์์๋ต์ ํ ๋ ๊ทธ ์ง๋ฌธ์ ์ด์ด์ ๊ณ์ํ๋ฉด ๊ทธ ์ํ์ ๋ฐ๋ผ ์๋ต์ ๋ค๋ฅด๊ฒ ์ฃผ๋ ๊ฒ์ ๋ดค์ ๊ฒ์ด๋ค. ๊ทธ๋ค์ด Chain๊ณผ Agent์ธ๋ฐ, ํ์ง๋ง ์ด๋ค์ ์ด์ ์ ํ๋ ์ง์์๋ต ์ํ๋ฅผ ๊ธฐ์ตํ์ง ์์ผ๋ฉฐ ๊ทธ ์ํ๋ฅผ ๊ธฐ์ตํด์ฃผ๋ ๊ฒ์ด ๋ฐ๋ก Memory๋ค. ์ข ๋ฅ๋ก๋ BufferMemory, EntityMemory, Knowledge Graph Memory, Summary Memory ๋ฑ์ด ์๋ค. - Chains
๋ค์ํ LLM์ ํธ์ถํ๋๋ฐ ์ฌ์ฉํ๋ ์ปดํฌ๋ํธ - Agents
์ฌ์ฉ์ ์ ๋ ฅ์ ๋ฐ๋ผ ํด์ผํ ์ผ์ ๊ฒฐ์ ํ๋ AI ์ฝ์ด๋ก ์ค์ ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ์ผ๋ฉด Agent๊ฐ LLM์ ์ฌ์ฉํ์ฌ ์ํํ ์์ ๊ณผ ์์๋ฅผ ๊ฒฐ์ ํ๋๋ฐ, ์ด ๊ณผ์ ์์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๋ ฅ์ ๊ฐ์ํ๊ฑฐ๋, ์ฌ์ฉ์์๊ฒ ์ต์ข ์๋ตํด์ค๋ค. ์ฆ, Agent๊ฐ ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ณด๊ณ ํ์ํ๋ค๋ฉด Google ๊ฒ์์ด๋ ChatGPT ํ๋ฌ๊ทธ์ธ์ ํตํด ์๋ต์ ๋ณด์ถฉํ๋ค.
์ฐ๋ฆฌ๋ LLM์ ์ด์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ LLM์ ๋ํ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ์ ์์์ผ ํฉ๋๋ค. LLM์ ํ๋กฌํฌํธ(Prompt)๋ฅผ ์ด์ฉํ์ฌ ์ํธ์์ฉ์ ํ๋๋ฐ, ์ด ํ๋กฌํฌํธ๋ ChatGPT์ ๊ฐ์ด ์ฑํ ๋ฉ์์ง๊ฐ ์๊ณ , ๋ ๋ค๋ฅธ ๊ฒ์ผ๋ก๋ ๋ฌธ์๊ฐ ์์ต๋๋ค. ๋ํ์ ์ธ ์๋๋ฆฌ์ค์๋ ์ฌ์ฉ์๊ฐ ์ง๋ฌธํ๋ฉด ์๋ตํ๋ ์๋๋ฆฌ์ค์ ๋ฌธ์ ์ ์ฒด๋ฅผ ์ฃผ๋ฉด ์ด ๋ฌธ์๋ฅผ ์งง๊ณ ๊ฐ๋ตํ๊ฒ ์์ฝํ๋ ๊ฒ์ด ์์ต๋๋ค.
์ฑํ ๋ฉ์์ง์๋ ๋ชจ๋ธ์ ์ญํ ์ ์ง์ ํ๋ System ๋ฉ์์ง์ ์ฌ์ฉ์์ ์ ๋ ฅ๊ฐ์ธ Human ๋ฉ์์ง, ๊ทธ๋ฆฌ๊ณ ์ ๋ ฅ๊ฐ์ ๋ณด๊ณ AI๊ฐ ์๋ตํ ๋ฉ์์ง์ธ AI ๋ฉ์์ง๋ก ๊ตฌ๋ถ๋๋ฉฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ๋ ์ด ๋ฉ์์ง๋ฅผ ์กฐํฉํ์ฌ ์ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์์ต๋๋ค. (์์ธํ ์์ ๋ ์๋์์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.)
Chains๊ฐ ์กฐ๊ธ ์์ํ ์ ์๋๋ฐ, ๊ฐ๋จํ ๋งํ์๋ฉด ํ๋์ ํ๋กฌํฌํธ(Prompt)์ ๋๋ค. ์์์ ์๊ธฐํ๋ค์ํผ ํ๋กฌํฌํธ๋ LLM๊ณผ ์ํธ์์ฉํ๊ธฐ ์ํ ์ธํฐํ์ด์ค์ง๋ง Chains๋ ์ด ์ธํฐํ์ด์ค๋ฅผ ๋์ด ํ๋กฌํฌํธ์ LLM๊ฐ์ ์กฐํฉ์ ์ํฌํ๋ก์ฐ(Workflow)๋ก ๊ตฌ์ฑํ๊ฒ ๋ฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ๊ณ , Prompt Template์ ๋ง๋ค์ด LLM์ผ๋ก ํฌ๋งทํ ํ์ฌ ๋๊ธฐ๋ ์ด ํ๋์ ํ๋ก์ธ์ค๋ฅผ Chains๋ผ๊ณ ํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ฉด Langchain์ ์ด๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ป๊ฒ ๊ฐ๋ฐํ๋์?
๊ธฐ๋ณธ์ ์ธ LLM E2E ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์๋์ ์์๋ฅผ ๊ฑฐ์นฉ๋๋ค.
- ๋ฐ์ดํฐ ๋ก๋ฉ
- ํ๋กฌํฌํธ ์์ฑ
- LLM ๋ชจ๋ธ ์์ฑ
- ํ๋กฌํฌํธ์ LLM ์ฐ๊ฒฐ
- ์ํ ์ ์ฅ์ ์ํ Memory ์์ฑ
- ๊ตฌ๊ธ ๊ฒ์, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐํ, ChatGPT ํ๋ฌ๊ทธ์ธ ๋ฑ์ ๋ถ์ฌ Agent ์์ฑ
๋ฐ์ดํฐ ๋ก๋ฉ๊ณผ LLM ๋ชจ๋ธ ์์ฑ๊น์ง๋ ์ด๋ฏธ ๊ฐ๋ฐ๋ OpenAI ๋ด์ง Azure ๋ชจ๋ธ ๋ฑ์ ์ฌ์ฉํ๋ค๋ฉด ๊ฑฐ์น์ง ์์ผ๋ฉฐ ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๊ฐ ํด์ผํ ๊ฒ์ ํ๋กฌํฌํธ๋ฅผ ์์ฑํ๊ณ , ํ๋กฌํฌํธ์ LLM์ ์ฐ๊ฒฐํด์ฃผ๋ ๊ฒ๋ถํฐ ์์ํด์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์ ํ์ํ๋ค๋ฉด Memory๋ฅผ ์์ฑํ์ฌ ์ง์์ ์ผ๋ก ์งํํ ์ ์๋๋ก ํ๋ฉฐ ๋ ๋์ ํ์ง์ ์ํด Agent๋ฅผ ์์ฑํ๋ ๊ฒ๊น์ง ์งํํด ๋ณผ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ฉด ๊ฐ๋จํ๊ฒ OpenAI ๋ชจ๋ธ์ ์ด์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ํ๋๋ฅผ ๋ง๋ค์ด ๋ด ์๋ค.
์ฑํ ๋ฉ์์ง๋ฅผ ์ด์ฉํ ์ ํ๋ฆฌ์ผ์ด์
์์์ LLM์ ํ๋กฌํฌํธ๋ฅผ ์ธํฐํ์ด์ค๋ก ์ฌ์ฉํ๋ค๊ณ ํ์ต๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ํ๋กฌํฌํธ๋ก ๋ฌด์์ ์ฌ์ฉํด์ผ ํ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํด์ผ ํฉ๋๋ค. Langchain์์๋ ์ฑํ ๋ฉ์์ง์ ๋ฌธ์๋ฅผ ์ ๊ณตํ๋ฉฐ ์ฌ๊ธฐ์๋ ์ฑํ ๋ฉ์์ง๋ฅผ ํ๋กฌํฌํธ๋ก ์ฌ์ฉํด ๋ณด๊ฒ ์ต๋๋ค.
์ฑํ ๋ฉ์์ง๋ฅผ ์ธํฐํ์ด์ค๋ก ์ฌ์ฉํ๋ ChatOpenAI ํด๋์ค๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ง ์ฌ๋ฃ๋ก ๋จน๊ณ ์ถ์ ์์์ ์ด๋ป๊ฒ ๋ง๋ค ์ ์๋์ง์ ๋ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค์ด ๋ณผ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ ์ฌ์ฉํ ๋ฉ์์ง๋ SystemMessage, HumanMessage, AIMessage๋ก SystemMessage๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ญํ ์ ์ง์ ํ๊ณ , HumanMessage๋ก ์ฌ์ฉ์์ ์ ๋ ฅ๊ฐ์ ๋ฐ์ ์ ์์ต๋๋ค.
AIMessage(
content='๋น๊ทผ๊ณผ ์ํ๋ก ๋ง๋ค ์ ์๋ ํ์คํ ๋ ์ํผ ์ค ๋ช ๊ฐ์ง๋ฅผ ์๊ฐํด ๋๋ฆด๊ฒ์:\n\n1. ๋น๊ทผ๊ณผ ์ํ ํฌ๋ฆผ ํ์คํ: ์ํ์ ๋น๊ทผ์ ๋ณถ์ ์์ค๋ฅผ ๋ง๋ค๊ณ , ํฌ๋ฆผ๊ณผ ํ๋ง์ฐ ์น์ฆ๋ฅผ ๋ฃ์ด ํ๋ถํ๊ณ ๋ถ๋๋ฌ์ด ํฌ๋ฆผ ํ์คํ๋ฅผ ๋ง๋ค์ด๋ณด์ธ์.\n\n2. ๋น๊ทผ๊ณผ ์ํ ๋ก์ ํ์คํ: ์ํ์ ๋น๊ทผ์ ๋ณถ์ ๋ก์ ์์ค๋ฅผ ๋ง๋ค๊ณ , ํ ๋งํ ์์ค์ ํฌ๋ฆผ์ ์์ด ํ๋ฏธ ๋์น๋ ๋ก์ ํ์คํ๋ฅผ ๋ง๋ค์ด๋ณด์ธ์.\n\n3. ๋น๊ทผ๊ณผ ์ํ ์๋ฆฌ์ค ์ฌ๋ฆฌ์ค ํ์คํ: ์ํ์ ๋น๊ทผ์ ๊ณฑ๊ฒ ๋ค์ ธ์ ์ฌ๋ฆฌ๋ธ ์ค์ผ์ ๋ณถ์ ๊ณ ์ํ ์๋ฆฌ์ค ์ฌ๋ฆฌ์ค ์์ค๋ฅผ ๋ง๋ค๊ณ , ํ์ฌ๋ฆฌ์ ํ๋ง์ฐ ์น์ฆ๋ก ๋ง๋ฌด๋ฆฌํ์ฌ ๊ฐ๋จํ๋ฉด์๋ ๋ง์๋ ํ์คํ๋ฅผ ๋ง๋ค์ด๋ณด์ธ์.\n\n์ด ์ธ์๋ ๋ค์ํ ํ์คํ ๋ ์ํผ๊ฐ ์์ผ๋, ์์ ์ ์ทจํฅ์ ๋ง๊ฒ ๋ณํํด๋ณด์๋ฉด ์ข์ ๊ฒ ๊ฐ์์. ์ฆ๊ฑฐ์ด ์๋ฆฌ ์๊ฐ ๋์ธ์!',
additional_kwargs={},
example=False
)
๋ง์ฝ, ๋ต์ด ์กฐ๊ธ ๋ง์์ ๋ค์ง ์์๋ค๋ฉด ์ด์ด์ ์งํํ ์ ์์ด์ผ๊ฒ ์ฃ ? Memory๋ฅผ ์์ฑํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋์ํ๋ ๋์ค์ ํ๋กฌํฌํธ์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ์ฌ ์งํํ ์ ์๋๋ก ํ ์ ์์ง๋ง Memory ์์ฑ ์์ด๋ ์ฝ๋์ ์๋ต ๊ฐ์ ๋ฃ์ด ์ปจํ ์คํธ๋ฅผ ์ ์งํ ์๋ ์์ต๋๋ค.
์ด๋ ๊ฒ HumanMessage ๋ฐ๋ก ๋ค์์ ์๋ต AIMessage๋ฅผ ๋ฃ๊ณ , ๋ค์ HumanMessage ํ๋กฌํฌํธ๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋ค์ ์๋ต์ด ์์ฐ์ค๋ฝ๊ฒ ๋์ค๊ฒ ๋ฉ๋๋ค.
AIMessage(
content='๋ฌผ๋ก ์
๋๋ค! ์น์ฆ ์์ด๋ ๋ง์๋ ํ์คํ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ๋ค์์ ๋น๊ทผ๊ณผ ์ํ๋ก ๋ง๋๋ ์น์ฆ ์๋ ํ์คํ ๋ ์ํผ ๋ช ๊ฐ์ง๋ฅผ ์๊ฐํด ๋๋ฆด๊ฒ์:\n\n1. ๋น๊ทผ๊ณผ ์ํ ์๋ผ๋น์ํ ํ์คํ: ์ํ์ ๋น๊ทผ์ ๋ณถ์ ํ ๋งํ ์์ค๋ฅผ ๋ง๋ค๊ณ , ๊ณ ์ถ์ฅ์ด๋ ๊ณ ์ถ๊ฐ๋ฃจ๋ฅผ ๋ฃ์ด ๋งค์ฝคํ ์๋ผ๋น์ํ ์์ค๋ก ๋ง๋ฌด๋ฆฌํ์ธ์. ์๋ผ๋น์ํ ์์ค๋ ์น์ฆ ์์ด๋ ํ๋ถํ ๋ง์ ๋ผ ์ ์์ด์.\n\n2. ๋น๊ทผ๊ณผ ์ํ ์ค์ผ ํ์คํ: ์ํ์ ๋น๊ทผ์ ๋ณถ์ ํ, ์ฌ๋ฆฌ๋ธ ์ค์ผ, ๋ง๋, ํ๋ธ ๋ฑ์ ๋ฃ์ด ๊ฐ๋จํ ์ค์ผ ํ์คํ๋ฅผ ๋ง๋ค์ด๋ณด์ธ์. ์ด๋ ๊ฒ ๋ง๋ ํ์คํ๋ ๋น๊ทผ๊ณผ ์ํ์ ์ฑ๊ทธ๋ฌ์ด ๋ง์ ์ฆ๊ธธ ์ ์์ด์.\n\n3. ๋น๊ทผ๊ณผ ์ํ ๋ ๋ชฌ ํ์คํ: ์ํ์ ๋น๊ทผ์ ๋ณถ์ ์ ์ ํ ๋ ๋ชฌ ์ฃผ์ค์ ๊ป์ง์ ๋ฃ์ด ์ํผํ ๋ง์ ๋ด๊ณ , ์ฌ๋ฆฌ๋ธ ์ค์ผ๊ณผ ํ๋ธ๋ก ๋ง๋ฌด๋ฆฌํ์ธ์. ์ด๋ ๊ฒ ๋ง๋ ํ์คํ๋ ์น์ฆ ์์ด๋ ์ํผํ๊ณ ๋ง์๊ฒ ์ฆ๊ธธ ์ ์์ด์.\n\n์์ ๋ ์ํผ๋ค์ ์น์ฆ ์์ด๋ ๋ง์๋ ํ์คํ๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์์ด๋์ด์์. ๊ฐ์ธ์ ์ทจํฅ์ ๋ง๊ฒ ์ฌ๋ฃ์ ์์ ์กฐ์ ํ๊ณ , ๋ค์ํ ์๋
๊ณผ ํฅ์ ๋ฃ๋ฅผ ํ์ฉํด๋ณด์ธ์. ์ฆ๊ฑฐ์ด ์๋ฆฌ ์๊ฐ ๋์ธ์!',
additional_kwargs={},
example=False,
)
์ด๋ฅผ ์กฐ๊ธ ์์ฉํ๋ฉด ์๋์ ์ฝ๋๋ฅผ ํตํด ๋ํํ์ผ๋ก ๊ตฌํํด ๋ณผ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์ ์ข ๋ ChatGPT์ฒ๋ผ ๋ํํ ์ธํฐํ์ด์ค ํจ๊ณผ๋ฅผ ์ฃผ๊ณ ์ถ๋ค๋ฉด Streaming ์ต์ ์ ์ด์ฉํด ๋ณผ ์ ์์ต๋๋ค.
streaming ์ต์ ์ ์ฃผ๊ณ , callbacks์ Streaming Standard Output์ ์ ๊ณตํ๋ StreamingStdOutCallbackHandler ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ฉด ChatGPT์ฒ๋ผ ๋ํํ UI ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํด ๋ณผ ์ ์์ต๋๋ค.
๋ง์น๋ฉฐ...
์ฌ๊ธฐ๊น์ง Langchain์ ๊ธฐ๋ณธ์ ์์๋ณด๊ณ , ๊ฐ๋จํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํด๋ณด๋ ์๊ฐ์ ๊ฐ์ ธ๋ดค์ต๋๋ค. ์ข ๋ ์ฌ์ธต์ ์ผ๋ก Langchain์ ์ฌ์ฉํด๋ณด๋ ค๋ฉด ๋ ์ฌ๋ฐ๋ ๊ธฐํ๊ณผ ๊ณ ๋ฏผ์ ํด๋ด์ผ ํ๋ฉฐ ๊ทธ๋ฌ๋ค๋ณด๋ฉด Langchain์ ๋ชจ๋ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํด์ ์์ฑํ AI e2e ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํด ๋ณผ ์ ์์ต๋๋ค.
Langchain์ ํ์ฌ Python๊ณผ Javascript/Typescript ์ธ์ด๋ฅผ ์ ๊ณตํ๋ฉฐ ๋ง์ฝ, JS, TS๋ฅผ ์ด์ฉํ์ฌ ์น UI๋ฅผ ์ ํ๊ณ ์ ํ๋ค๋ฉด Javascript ๊ฐ์ด๋๋ฅผ ์ด์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํด๋ณด์ฌ์ ์ถ์ฒํฉ๋๋ค. ์ฝ์ ํ๋ฉด์ ์๋ฌด๋๋ ์ฌ์ฌํ๋ ๋ง์ด์ฃ .
'Data Analysis > Machine Learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Google Colaboratory๋ฅผ ์ด์ฉํ ๋จธ์ ๋ฌ๋ (0) | 2019.11.06 |
---|---|
Virtualenv๋ฅผ ์ฌ์ฉํ Tensorflow ์ค์น (2) | 2017.06.29 |