#langchain
Vloลพit
- ฤas pลidรกn 6. 02. 2024
- ๐ LangChain ํ๊ตญ์ด ํํ ๋ฆฌ์ผ
github.com/teddylee777/langch...
๐ ์ค์ตํ์ผ
github.com/teddylee777/langch...
๐ ๋ธ๋ก๊ทธ ๊ธ
1. ๊ธฐ๋ณธํธ: teddylee777.github.io/langcha...
2. ์ฌํํธ: teddylee777.github.io/langcha...
๐ ๋ญ์ฒด์ธ ํํ ๋ฆฌ์ผ ๋ฌด๋ฃ ์ ์์ฑ (wikidocs)
wikidocs.net/book/14314
โ ๋ญ์ฒด์ธ ํ๊ตญ์ด ํํ ๋ฆฌ์ผ ์ฝ๋์ ์ฅ์(GitHub)
github.com/teddylee777/langch...
โญ๏ธ ๊ฐ์ ํ๋ณด โญ๏ธ
LangChain + ChatGPT + Streamlit ๊ฐ์(VOD ๊ฐ์)
์๋์ ์ฌ์ ๋ฑ๋ก์ ํ์๋ฉด ๊ฐ์ ์คํ ํ ์๋ฆผ์ ๋ฐ์กํด ๋๋ฆด ์์ ์ด๋ฉฐ, ํ ์ธ ์ฟ ํฐ๋ ๊ฐ์ด ์ ๊ณตํด ๋๋ฆฝ๋๋ค.
๐ LangChain + ChatGPT + Streamlit ๊ฐ์ ์ฌ์ ์๋ฆผ ์ ์ฒญ ๐๐
๋งํฌ: forms.gle/buoXoiey7YHrVXVq9
---
ํ ๋๋ ธํธ(๊นํ ๋ธ๋ก๊ทธ) : teddylee777.github.io
๋จธ์ ๋ฌ๋ ํผ์์ ์คํฐ๋ : github.com/teddylee777/machin...
LLM ํ๋ก์ ํธ: llm.teddynote.com
์๋ ์ด๋ถ ๊ฐ์ ์ง๋ฃจํ์ง๊ฐ ์์
๐ฅน๐ซถ
์ด๋ฐ ํ๋ฆฌํฐ์ ๊ฐ์๊ฐ ์ ํ๋ธ๋ก ์ฌ๋ผ์จ๋ค..? ์ด๊ฑด ์ง์ง ๋๋ผ์ ๊ณตํํ๋ ์์ค์ธ๋ฐ์... ์ ๋ง ๊ฐ์ฌํฉ๋๋ค. ๋๋ฌด ์ดํด๊ฐ ์ฝ๊ฒ ์ค๋ช ํด์ฃผ์๋ค์. ์์ผ๋ก๋ ์ ๋ถํ๋๋ฆฝ๋๋ค bb
๊ทน์ฐฌํด ์ฃผ์ ์ ๋๋ฌด ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋๋๋์ฑ ์ข์ ํ๋ฆฌํฐ์ ์์์ผ๋ก ๋ณด๋ตํ๊ฒ ์ต๋๋ค!!๐ซก
๊ฐ์ฌํฉ๋๋ค!!
ํญ์ ์ข์ ๊ฐ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ์ ๋ณด๊ณ ์์ต๋๋ค
ํญ์ ๋ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!๐
๊ฐ์ฌํฉ๋๋ค. ๋์์ด ๋ง์ด๋์์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค๐
์ ๋ฏธ์ณค๋ค.. ์ข์ ๊ฐ์ ๊ฐ์ฌํฉ๋๋ค.๐
๊ฐ์ฌํฉ๋๋ค๐๐
์กฑ์ง๊ฒ... ํญ์ ๊ฐ์ฌ ๋๋ฆฝ๋๋ค.^^
๊ฐ์ฌํฉ๋๋ค ์์ผ๋ก๋ ์ข์ ์ฝํ ์ธ ๋ง๋ค๊ฒ ์ต๋๋ค
๋๋ฌด ์ฌ๋ฐ๋ค โฆ
์... ๋๋ฌด ์ข์ ๊ฐ์๋ ๊นํ๋ธ ์ ๋ฆฌ ๊ฐ์ฌํฉ๋๋ค...ใ ใ
๋๋ฌด๋๋ฌด ๊ฐ์ฌํฉ๋๋ค. ์์ผ๋ก ๋๋๋ ์ข์ ์ฝํ ์ธ ๋ง๋ค๊ฒ ์ต๋๋ค ๐
๊ฐ์ ๋๋ฐ์ ๋๋ค^^ ๊ฐ๋ฐ์๋ ์๋๊ณ ๊ทธ๋ฅ ๊ด์ฌ๋ง ์์ด์ ๊ฒ์ํ๋ค ์ฌ๊ธฐ๊น์ง ์๋๋ฐ์. 1๋ ์ง๋ฃจํ์ง ์๊ฒ ์ค๋ช ์ ์ฌ๋ฏธ๋๊ฒ ํด์ฃผ์๋ค์~ ๊ฐ์ฌํฉ๋๋ค!
๊ทน์ฐฌ์ ๋๋ค๐๐ ๊ฐ์ฌํฉ๋๋ค๐ซฐ
๊ฐ์๋ ฅ ๋ฏธ์ณค๋ค ๋์ฅ..
์ ์๋ ๊ฐ์๋ ๋ ์ฌ๋ฐ์ต๋๋ค. ์ ๊ท์ ์์ ๋ค์ด์์ ๊ฐ์ฌํฉ๋๋ค. ^^
๊ฐ์ฌํฉ๋๋ค~ ๋์์ด ๋์ จ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค~^^
2๋ฒ์งธ ์ฒญ๊ฐ ์ ๋๋ค.. ๋ค์ ๋๋ง๋ค ๋๋ผ์ง๋ง.. ๊ท์ ์์ ์ ๋ค์ด์ค๋ค์. ํ ๋๋ ธํธ๋ ๋๋ถ์ ์ ์ ์ดํด๋๊ฐ ๋์์ง๊ณ ์์ต๋๋ค~ ๊ฐ์ฌํด์!!๐
์ข์ ๋ง์ ๊ฐ์ฌํฉ๋๋ค๐๐๐
์ง๋ฌธ์ด ์์ต๋๋ค. ์นํ์ด์ง์์ ์ ๋ชฉ๊ณผ ๋ณธ๋ฌธ์ ๊ธ์ด์ฌ๋ ๊ผญ ํ๊ทธ๋ฅผ ์ดํด๋ณด๊ณ class๋ id๋ฅผ ์ง์ ํด์ ๋ฝ์๋ด๋ ๋ฐฉ๋ฒ ๋ฐ์ ์๋์? ์น์ธ์ดํธ๋ง๋ค ๊ทธ ํ์์ด ๋ค ๋ค๋ฅผํ ๋ฐ.. ๋ญ๊ฐ ํ๋๋ก ๋ค ๋๋ ํ์ ์ ์๋์?
๋ค ๊ธ์ด์ฌ ์ ์์ด์. ์ ์ฒด ํ์ด์ง๋ฅผ ๋ค ๋ฐ์์ฌ ์๋ ์์ผ๋, ํ์ ์๋ ์ ๋ณด๋ค์ด ๋ง์ด ํฌํจ๋์ด ์์ด์์. ์ง์ด ์ข์ง ๋ชปํฉ๋๋ค. ๊ทธ๋์ ํํฌ์ธํธ๋ก ๊ฐ์ ธ์ค์๋ ๊ฒ์ ์ถ์ฒ ๋๋ ค์. ๊ตฌ์กฐ๋ ํ๋์ ์น ์์์๋ ๋ณดํต ํต์ผ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ด๋ฒ ๋ด์ค ํ๋ซํผ์์์๋ ๊ตฌ์กฐ๋ ๋์ผํ๊ณ ์ฝํ ์ธ ๋ง ๋ฐ๋๊ธฐ ๋๋ฌธ์์. ํ ๋ฒ์ ๊ท์ฐฎ์์ผ๋ก ์ฐจ๋ผ๋ฆฌ ๋ ์ง์ข์ ์ ๋ณด๋ ์์ฑํ๋ ๊ฒ์ด ๋์ ๊ฒ ๊ฐ์ต๋๋ค!
์ดํดํ๊ธฐ ์ฝ๊ณ ํต์ฌ๋ง ์ค๋ช ํด์ฃผ์ ์ ํ๋ณตํ ๊ฐ์์์ต๋๋ค!!
์ค์ต ํ์ ํ ์ดํ๋ก์ ํธ๋ก ์ผํ๋ชฐ์ ๋งํฌ๋ฅผ ๋ฃ์ผ๋ฉด ๋ฆฌ๋ทฐ๋ฅผ ํฌ๋กค๋งํ๊ณ
๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก qa๋ด์ ๋ง๋ค์ด๋ณผ๊น ํ๋๋ฐ ํน์ ์ด๊ฐ์์์ ๋ณ๊ฒฝํ ๋งํ ์ ์ด ์์๊น์?
๊ฐ์ธ์ ์ผ๋ก๋ ๋ฆฌ๋ทฐ์ ๊ฐ์๊ฐ ๋ง์์ง ์๋ ์๊ธฐ์ chunk๋ฅผ ๋๋๋ ๋ถ๋ถ๋ถํฐ ์ข ๋ค๋ฅผ ๊ฒ ๊ฐ์๋ฐ
์ง๋ฌธ๋๋ ค๋ ๊ด์ฐฎ์๊น์?
์ ์ตํ ๊ฐ์ ๊ฐ์ฌํฉ๋๋ค. ํญ์ ์ ๋ณด๊ณ ์์ด์!!
QA ๋ชฉ์ ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ ๊ฒ ๊ฐ์์. ๋ฆฌ๋ทฐ๋ฅผ ์ข ํฉํ์ฌ ๋ฆฌ๋ทฐ ๋ถ์์ ํ๋๋์ ๋ฆฌ๋ทฐ ํ๋ํ๋์ ๋ํ ๊ฐ์ ๋ถ์์ ํ๋๋ ๋ฑ๋ฑ์ผ๋ก์. ์ข ํฉํ์ฌ ๋ถ์์ ํ ๋๋ ์์ง๋ ๋ฆฌ๋ทฐ๋ฅผ ํ๋๋ก ํฉ์ณ์ ์ ์ ํ ํ ์คํธ ์ ์ฒ๋ฆฌ ํ์ Chunk ์ฌ์ด์ฆ๋ฅผ ์ ๋๋ ์ ๊ฒฐ๊ณผ๋ฌผ๋ก ๋ฝ์๋ด๋ ๊ฒ์ด ์ค์ํ ๊ฒ ๊ฐ๊ตฌ์. ๋ฆฌ๋ทฐ ํ๋์ฉ ๊ฐ๋ณ ์ฒ๋ฆฌ๋ฅผ ํ ๋๋ ๋ฆฌ๋ทฐ ํ๋์ ๊ธธ์ด๊ฐ ๊ทธ๋ ๊ฒ ๊ธธ์ง ์๋ค๋ ๊ฐ์ ํ์ Chunk๋ ๋ฆฌ๋ทฐ์ ์ต๋ ๊ธธ์ด๋ฅผ ์ก์์ค๋ ๋ ๊ฒ ๊ฐ์์!
ํ๋ฆฌํฐ๋ญ์ผ,..! ์ด๊ฑธ์ด์ ๋ณด๋ค๋ ๊ฐ์ฌํฉ๋๋ค
Retriever ๋ ํ์ต๋ ๋ชจ๋ธ์ธ๊ฐ์? ์๋๋ฉด ์๊ณ ๋ฆฌ์ฆ์ ์ํ ๊ฑด๊ฐ์?
์ ์ด์ ์์ผ ์ค์ จ์ด์~ ใ ใ
retriever๋ ์ ์ฌ๋ ๊ธฐ๋ฐ ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ ์ ๋๋ค
โ@@teddynote ํด๋น ์์์ ์ด์ด์ "RAG, LangChain, Document Embedding" ์ ๊ด๋ จ๋ ํด๋ด์งํ ํ๋ก์ ํธ๊ฐ ์ด๋ค๊ฒ ์์๊น์!! ์ถ์ฒํด์ฃผ์ค ์ ์๋์?!
์ข์ ๊ฐ์ ์ฌ๋ ค์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์ ์๋ ๊นํ ์๋ฃ๋ก ๊ณต๋ถ ์ค์ ์ง๋ฌธ๋๋ฆด๊ฒ ํ๋ ์๋๋ฐ์,
pdf๋ฅผ ๋ก๋ํด์ ์ฌ์ฉํ ๋๋ง๊ณ
ํ๋ ๋ณ๋ก ์ ๋ฆฌ๋ผ์๋ csv ํ์ผ(๋ด์ฉ, ์์ฝ๋ฌธ, ์ฃผ์ํค์๋)๋ฅผ ๋ก๋ํด์ ์ฌ์ฉํ ๋ ๊ณ ๋ คํด์ผํ ์ ์ด ์์๊น์?
๋ด์ฉ์ ๋ํด ์ฟผ๋ฆฌ๋ฅผ ํ๋ฉด ์์ฝ๋ฌธ์ด๋ ํค์๋๋ฅผ ์ฐธ์กฐํ๊ธฐ ์ํฉ๋๋ค.
CSV Loader ๋ฅผ ์ฌ์ฉํ์๋ฉด ํธํ๊ฒ ๊ฐ์ ธ์ค์ค ์ ์์ ๊ฒ ๊ฐ์์ ๊ทธ๋ฆฌ๊ณ ์กฐํํ ๋ฐ์ดํฐ๋ฅผ LLM ์ ์ ๋ฌํด์ผ ํ๋๋ฐ ์ด๋ ๋ฐฉ์์ด ์ฌ๋ฌ๊ฐ์ง์ผ ์ ์์ด์. pandas dataframe ์ ๋ง๋ค์ด ๋ฐ์ด์ ํ๋ ์ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆด ์๋ ์๊ณ ์(๋ณดํต์ ํต๊ณ๋ ๋ค๋ฃฐ๋)
๋จ์ ํ ์คํธ ์ฒ๋ฆฌ๋ฅผ ํ๊ณ ์ถ์ผ๋ฉด ํ ์คํธํ ํ ๋ถ๋ถ์ ํ ์คํธ๋ก ์ผ๊ด ๋ณํฉํ์ฌ llm์ ๋ฃ๊ณ ์์ฝ์ ํ๊ฑฐ๋ ์์ ์ ๋ฆฌ๋ฅผ ํ๊ฑฐ๋ ํ ์๋ ์์ ๊ฒ ๊ฐ์์~
์ข์ ๊ฐ์ ๋๋ฌด๋ ๊ฐ์ฌํฉ๋๋ค. ๋ค๋ฅธ ๊ฐ์๋ค๋ ๋ค ์์ฒญํด์ผ๊ฒ ์ด์ ใ ใ
ํน์ ํ๋กฌํํธ๋ฅผ hub์์ ๊ฐ์ ธ์ค์ง ์๊ณ , ์ง์ ์์ฑํ๋ ๊ฒฝ์ฐ์๋
input_variables=['context', 'question'] messages=[HumanMessagePromptTemplate(prompt=PromptTemplate(input_variables=['context', 'question'], template="You are an assistant for question-answering tasks. Use the following pieces of retrieved context to answer the question. If you don't know the answer, just say that you don't know. Use three sentences maximum and keep the answer concise.
Question: {question}
Context: {context}
Answer:"))]
์ด๊ฑธ ์ด๋ค ํ์์ผ๋ก prompt = ์ ๋ฃ์ด์ผ ํ๋์?
์ง๊ธ ๊ฐ์ ธ์ค์ ๋ถ๋ถ์์ prompt=PromptTemplate... ๋๊น์ง ๊ฐ์ ธ์ค์ ์์. prompt ๋ฅผ hub์์ ๊ฐ์ ธ์จ ํ๋กฌํํธ ๋์ ๋ฃ์ผ์๋ฉด ๋ฉ๋๋ค!
์ข์ ๊ฐ์ ๊ฐ์ฌํฉ๋๋ค! โค ๋ง์ฝ์ ๋ด์ค๊ธฐ์ฌ์ ๊ด๋ จ์๋ ์ง๋ฌธ(์๋ฅผ ๋ค๋ฉด, ์์นจ์ ์ฌ๊ณผ๋ฅผ ๋จน๋ ๊ฒ์ ํจ๋ฅ์ ๋ฌด์์ธ๊ฐ?)์ ํ๋ฉด, ์ด๋ ํ ์์ค์ ๋๋ต์ด ๋์ค๋์? ์ง์ ๊ฒ์์ ๊ฑธ๋ฆฌ๋ ๋ฌธ์๋ค์ ์๋ฒ ๋ฉ๋ ๊ธฐ์ฌ ๋ด์ฉ์ ์ ํ๋๋ค๊ณ ๋ณด๋ฉด๋๋์? (๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ธฐ์ฌ๋ค์ ํ์ต๋ฐ์ดํฐ๋ผ๊ณ ๋ถ๋ฅผ ์ ์์๊น์?) ๋ง์ฝ RAG๋ฅผ ํตํด ์์ ์ฃผ์ ์ ๊ด๋ จ์๋ (์ฌ๊ณผ ํจ๋ฅ) ์ง๋ฌธ์ ๋ํด ๋ต๋ณ์ ๋ฐ์ ์ ์๋ค๋ฉด, OpenAI ์๋ฒ ๋ฉ์ ์ํฅ์ ๋ฐ์์ ์ผ ์ ์๋์? ๋ค์๋งํด RAG๊ฐ ๊ธฐ์กด LLM ์ ํ์ต๋ฐ์ดํฐ๋ ๊ณ ๋ คํ์ฌ ๋ต๋ณ์ ๋ด๋๋ ๊ฒ์ธ์ง ๊ถ๊ธํฉ๋๋ค.
1. ๋ด์ค๊ธฐ์ฌ์ ๊ด๋ จ์๋ ์ง๋ฌธ์ ๋ชจ๋ฅธ๋ค ํน์ ๊ด๋ จ์ฑ ์๋ค๋ก ๋์์ผ ํฉ๋๋ค
2. ์ฃผ์ด์ง ๊ธฐ์ฌ์ ๊ตญํ ๋ฉ๋๋ค(์ถ๊ฐ ๊ฒ์๋ ๊ฐ๋ฅํ๊ฒ ๊ตฌํํ ์ ์์ต๋๋ค)
3. ํ์ต ๋ฐ์ดํฐ ๋ณด๋ค๋ ์ฃผ์ด์ง ๋ฌธ๋งฅ(context) ๋ผ๋ ํํ์ ์๋๋ค. ํ์ต๋ฐ์ดํฐ์๋ ๊ตฌ๋ถ๋ฉ๋๋ค.
4. ์ฃผ์ด์ง ๋ฌธ๋งฅ์ ๊ธฐ๋ฐ์ผ๋ก ๋ตํ๋ผ๊ณ ์ง์ํ์๊ธฐ ๋๋ฌธ์ ์ธ์ ์ธ ๋ด์ฉ์ ๋ฐฐ์ ํ์ฑ ๋ตํฉ๋๋ค.
๊ฐ์ฌํฉ๋๋ค!! ๐
์ข์ ๊ฐ์ ๊ฐ์ฌํฉ๋๋ค! ์ค์ต ํ์ผ ๋ฐ๋ผํด๋ณด๋ ค๋๋ฐ ๋งจ ์ฒ์์ load_dotenv() ์คํ ๊ฒฐ๊ณผ๊ฐ False๋ก ๋์ค๋ ๊ฑด ์ด๋ค ๋ฌธ์ ์ผ๊น์..? ์ด ๋ถ๋ถ์ ๋ํ ์ค๋ช ์ด ๋ ๊ฐ๋ตํ ๋์ด์์ด์ ์ด๋ ต๋ค์^^;
๋จผ์ .env ๋ผ๋ ํ์ผ์ ํ๋ ๋ง๋ค์ด์ ๊ฑฐ๊ธฐ์ OPENAI_API_KEY๋ฅผ ์ค์ ํด์ผํฉ๋๋ค~
๋์์ด ๋ ๋งํ ๋งํฌ ๋๋ฆฌ๊ณ ์: learn.griptape.ai/latest/setup/02_openai/#installing-python-dotenv
์ ๊ฐ ์์์ผ๋ก๋ ํ ๋ฒ ๋ค๋ฃจ๊ฒ ์ต๋๋ค~~
RAG๊ฐ ์๋ก์ด ๋ฐ์ดํฐ๋ก ํ์ตํ๋ ๊ฒ ๋ง๊ณ ๋ "์ ๋ต์ด ์๋ ์ฐฝ์์ ์ธ ๋ฌธ์ ์ ๋ํด์ ์ ๋ ๋ต๋ณ๋ค์ ํ์ตํ๋" ๋ฐฉ์์ผ๋ก GPT ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์๊น์?
RAG์ ์ฃผ๋ ๋ชฉ์ ์ Retrieval ์ ์๋ค๊ณ ๋ณผ ์ ์๋๋ฐ์ ํ๋ง๋๋ก ์คํ๋ถ ํ ์คํธ๋ฅผ ์๊ฐํ์๋ฉด ์ฝ์ต๋๋ค.
์ ๋ต์ด ์๋ค๋ ๋ฌธ์ ์์ ๋ต๋ณ์ ๋์ถํด ๋์๋ (์๋ฅผ ๋ค๋ฉด ๊ด๊ณ ์นดํผ๋ผ์ดํ ) RAG ์ ๊ณผ๊ฑฐ ๋ต๋ณ ์ด๋ ฅ์ด๋ ์ ๋ต์ด ์๋ ๋ฌธ์ ์ ๋ํ์ฌ ๋ต๋ณ์ ๋์ถํ ๊ณผ์ ๋ค์ด ๋ค์ด๊ฐ ์๋ค๋ฉด ์ด๋ฅผ ์ฐธ๊ณ ํ์ฌ ๋ต๋ณํ๋ ๊ฒ์ ๊ฐ๋ฅํด ๋ณด์ ๋๋ค.
ํ๋ง๋๋ก ๋ต๋ณ์ ์ ๋ต์ง์์ ์ฐพ์์ ๋ต๋ณํ๊ธฐ ๋ณด๋ค ๋ต๋ณ์ ๋์ถํด๋ธ ๊ณผ์ ์ ๋ชจ์ฌํ์ฌ ๋ต๋ณํ๋๋ก ์ ๋ํด๋ณด์๋ฉด ์ข์ ๋ฏ ํฉ๋๋ค!
๊ฐ์ฌํฉ๋๋ค!!! ๋์์ด ๋ง์ด ๋์ต๋๋ค!
๋๋ฌด ์ข์ ๊ฐ์๋ค์. ์ง๋ฌธ์ด ์์ต๋๋ค. gpt-4-turbo-preview ๊ฐ์ ๋ชจ๋ธ์ ์ต๋ 128k ํ ํฐ์ ์ ์ถ๋ ฅ์ ๋ค๋ฃฐ ์ ์๋๋ฐ, ์ด ๊ฒฝ์ฐ์๋ ๊ตณ์ด 1000ํ ํฐ์ฉ ์ฒญํฌ๋ฅผ ๋๋์ง ์๊ณ ์ ์ฒด ๊ธ์ ํต์ฑ๋ก ๋ฃ์ด๋ ๋์ง ์๋์?
๋ค, ๊ธฐ์ ์ ์ผ๋ก๋ ์ ์ฒด ์ปจํ ์คํธ๋ฅผ ๋ชจ๋ธ์ ์ง์ ์ ๋ ฅํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ฌ๋, ์ด ๋ฐฉ๋ฒ์ ์ด๋ก ์ ์ผ๋ก ๊ฐ๋ฅํ ๊ฒ์ด์ง, ์ค์ ๋ก๋ ์ต์ ์ ๊ฒฐ๊ณผ๋ฅผ ์ป๋ ๋ฐ ์์ด์๋ ๊ถ์ฅ๋์ง ์์ต๋๋ค. ์ด์ ๋ํ ์์ธํ ์ค๋ช ์ ๋ค๋ฅธ ์์(RAPTOR)์์๋ ๋ค๋ฃจ์ด์ง๋๋ค. ๊ฐ๋จํ ๋งํ์๋ฉด, ๋ชจ๋ธ์ ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ๋ ์ง๋ฌธ๊ณผ ๋ฐ์ ํ ๊ด๋ จ์ด ์๋ ์์ถ๋ ์ ๋ณด์ฌ์ผ ํฉ๋๋ค. ์ด๋ฅผ ๋น์ ํ์๋ฉด, ์คํ๋ถ ์ํ์์ 1000ํ์ด์ง ๋ถ๋์ ์ฑ ์ ์ฒด๋ฅผ ์ ๊ณตํ๋ ๊ฒ๊ณผ, ์ ์ ๋ฆฌ๋ ์์ฝ ๋ ธํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ์ฌ์ด์ ์ฐจ์ด์ ์ ์ฌํฉ๋๋ค. ์์ถ๋ ์ ๋ณด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ณด๋ค ํจ์จ์ ์ด๋ฉฐ ๋ฐ๋์งํ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค.
@@teddynote ์ ์ข์ ๋ต๋ณ ๊ฐ์ฌํฉ๋๋คใ ๋ ๊ถ๊ธํ์๊ฑฐ๋ ์. ์ฑ๋ด ๋ง๋๋๋ฐ ๊ด์ฌ์ด ๋ง์์ ์ ๋ง ๋ง์ ์์๋ค์ ๋ณด์๋๋ฐ.. ๊ทธ ์ค ๋จ์ฐ ์ต๊ณ ์ ๋๋ค. ํ์ค๊ธฐ ๋น์ด์ญ๋๋ค.
@@Dr.Ahn. ๊ณผ์ฐฌ์ด์ญ๋๋ค๐ฅน ์์ผ๋ก๋ ์ข์ ์์ ๋ง์ด ๊ณต์ ๋๋ฆฌ๊ฒ ์ต๋๋ค๐๐
์๋ ํ์ธ์~ ์ด์ ๋ถํฐ ์ค์ตํด๋ณด๊ณ ์๋๋ฐ faiss์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํด ์ง๋ฌธ๋๋ฆฝ๋๋ค.
from_documents๊ฐ ์กด์ฌํ์ง ์๋๋ค๊ณ ๋น๋๋คใ ใ
faiss๋ ์๋ฌธ์๋ก ์ธ์์ด ๋๊ณ ..
ํ์ด์ฌ ๋ฒ์ ์ 3.12์์ 3.11, 3.10์ผ๋ก ๋ค์ดํ๊ณ faiss-cpu๋ ์ค์นํด๋ดค๋๋ฐ ๊ทธ๋๋ก๋ค์.
๋ฐฉ๋ฒ์ด ์์๊น์?
ํด๊ฒฐํ์ต๋๋คใ ใ from langchain_community.vectorstores.faiss import FAISS ๋ผ๊ณ ๋ถ๋ฌ์ค๋ฉด ๋ฉ๋๋ค. ์ ์ด๋ ๊ฒ ๋๋๊ฑด์ง๋ ๋ชจ๋ฅด๊ฒ ์ผ๋..์ ์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๊ฒช๋ ๋ถ๋ค ์ฐธ๊ณ ํ์ธ์.
ํจํค์ง๋ ์๋ฌธ์ faiss ์ด๊ณ ์ ๋ชจ๋๋ช ์ FAISS ๋๋ฌธ์์ ๋๋ค~! ๋์๋ฌธ์ ๊ตฌ๋ถํ๊ธฐ ๋๋ฌธ์ ์ง์ผ์ฃผ์ ์ผ ์ค๋ฅ๊ฐ ์์ต๋๋ค~๐
๋ก์ปฌ์ ํ์ฌ๋ฌธ์๋ค์ ๊ธฐ๋ฐ์ผ๋ก chatGPT๋ฑ ์จ๋ผ์ธ ๊ธฐ๋ฐ LLM์ ํตํด ๋ต๋ณ์ ํฉ๋๋ค. ์ด๋ ๋ก์ปฌ ์๋ฃ๋ค์ ๊ด๋ จ ์ ๋ณด๋ค์ LLM์ ๊ณต์ ๊ฐ ์ ๋๋์ง ๋ฌธ์ํฉ๋๋ค. ๋ค์ด์ด๊ทธ๋จ์ ๋ณด๋ฉด, LLM์ ๋ก์ปฌ ์๋ฃ๋ค์ ๊ธฐ๋ฐํ์ฌ ์ธ๊ฐ์ ์ธ์ด๋ก ๋ณํํด์ฃผ๋ ์์ ๋ง ํ๋ ๋ก์ปฌ ์๋ฃ๋ค์ด ์จ๋ผ์ธ์ ๋ฟ๋ ค์ง์ง๋ ์์ ๊ฒ ๊ฐ์ง๋ง ์ ๊ฐ ์ดํดํ ๊ฒ์ด ๋ง๋์ง ๊ถ๊ธํฉ๋๋ค.
ChatGPT๋ฅผ ์ฌ์ฉํ๋ฉด ๊ณต์ ๋ ์ ์์ด์. ๋ฌผ๋ก ๊ณต์ ๋์ง ์๋ ์ํฐํ๋ผ์ด์ฆ ํ์ ์ฌ์ฉํ์๋ฉด ๋๊ธด ํ์ง๋ง ๊ฐ์ธ์ด ์ฌ์ฉํ๊ธฐ์ ์ด๋ ต์ฃ .
๊ทธ๋์ chatgpt ๋ชจ๋ธ ๋์ ์คํ ๋ชจ๋ธ๊ณผ DB๋ ๋ด๋ถ์ ๊ตฌ์ถํ์ฌ ๋ฐ์ดํฐ ์ ์ถ ๋ฐฉ์ง ํ๊ธฐ ์ํ ์ค๊ณ๋ฅผ ํ์ค ์๋ ์์ด์
@@teddynote LLM์ llama3๋ก ์ธํ ํ์ฌ์ผ ๊ฒ ์ด์. ํญ์ ์ข์ ์์ ๊ฐ์ฌํฉ๋๋ค.
ํน์ ์์์ ์ด๋ค ์์๋ก ๋ณด๋ฉด ๋ ๊น์? ํน์ ๊ฐ์ ์๋ด์๋์ ใ ใ ํ์ฌ์์ ํ๋ํฐ์ด๋ฅผ ์ฐ๋๋ฐ ๊ฒฐ๊ตญ ๊ธฐ๋ณธ๊ฐ๋ ์ด ๋๋ฌด ์ค์ํ๋ค์ ใ ใ
LangChain ํํ ๋ฆฌ์ผ ์ฌ์๋ชฉ๋ก ์์๋๋ก ๋ณด์ ๋ ์ข์ ๊ฒ ๊ฐ์์. 5์๋ง์ ๊ฐ์ ์ฌ์ ์ ์ฒญ ํ์ด์ง ์คํ ์์ ์ ๋๋ค~
ํน์ ํ์ฌ์์ ํ๋๊ฒ ์๋๋ผ ํผ์ ai ์๋น์ค๋ฅผ ๋ง๋ ๋ค๊ณ ํ์ ๋, ๋ด๋ถ ๋ฐ์ดํฐ ์๋ฃ๊ฐ ์๋ ์ํ์์ RAG๊ฐ ์๋ฏธ๊ฐ ์์๊น์? ์ค์ง ๊ฒ์ ๋ฐ์ดํฐ๋ง์ ์ํด์ ์ฌ์ฉํด์ผํ๋์ ?
์๋ฃ๊ฐ ๋ง์ฝ raw ๋ฐ์ดํฐ๋ก ์กด์ฌํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ด๋ ฅ์ ํด๋์ ์ด๋ ฅ์์ ์ฐธ๊ณ ํ ์ ์๋ ์๋ฃ๋ค์ด ๋ค๋ ๋ค์ด๊ฐ ์๋ค๊ณ ๊ฐ์ ํด ๋ณผ๊ป์.
๊ทธ๋ผ ํ์ฌ์ ์ง์ํ ์๊ธฐ์๊ฐ์๋ฅผ ์์ฑํด์ผ ํ๋๋ฐ ์ด๋๋ RAG๋ฅผ ์ฌ์ฉํ๋ฉด ๋ด ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก GPT๊ฐ ์๊ธฐ์๊ฐ์๋ฅผ ์์ฑํด ์ค๋๋ค.
์ด์ ๋น์ทํ๊ฒ RAW data ํํ๋ก ์กด์ฌํ๋ ๋ฐ์ดํฐ๋ฅผ โํ์ฉโ ํ์ฌ ์๋ก์ด ํํ์ ๋ฌธ์๋ฅผ ์์ฑํ ๋ ์ ์ฉํ ์ ์์ด์
โ@@teddynote ๋ต๋ณ ๋๋ฌด๋ ๊ฐ์ฌํฉ๋๋ค. ๊ฐ์๋ ฅ์ ๊ฐํํ๋ฉด์ ํจ์คํธ์บ ํผ์ค RAG๊ฐ์๋ฅผ ์๊ฐํ ์ง ๊ณ ๋ฏผํ๊ณ ์์ด์.
์ ๋ 1~3์ธ์ผ๋ก ํ์ ๊ตฌ์ฑํ์ฌ ์์ฑํ ai ์๋น์ค๋ฅผ ๋ง๋ค๋ ค๊ณ ํ๋๋ฐ์. ์ด์ชฝ ๋ถ์ผ๊ฐ ์ฌ์ค ์ฒ์์ด๋ค ๋ณด๋๊น ๋ก๋๋งต์ด ์ ์์กํ๋๊ฑฐ ๊ฐ์์ ใ ใ ์๋ฒ๋ฆฌ์ค ๊ธฐ๋ฐ์ผ๋ก ๋ฐฑ์๋๋ฅผ ๊ตฌ์ฑํ๊ณ ๋ญ์ฒด์ธ + RAG๋ฅผ ํ์ฉํ๋ ค๊ณ ํ๋๋ฐ ์ด๋ฐ ์๊ฐ์ด ์ฌ๋ฐ๋ฅธ์ง ์ฌ์ค ์๋ฌธ์ด๋ค์... ๋๋ถ์ด ํจ์คํธ์บ ํผ์ค ๊ฐ์๊ฐ ์ ์๊ฒ ๋ง์์ง๋ ๊ฑฑ์ ์ด ๋๋ค์. (๋์์๋ฅผ ๋ณด๋ ai๊ฐ๋ฐ์ ํน์ ๋จธ์ ๋ฌ๋, ๋ฐ์ดํฐ ๋ถ์๊ฐ๋ผ๊ณ ๋ช ์๋์ด ์์ด์์ !)์๋๊ฒ ์๋ค๋ณด๋ ๊ฑฑ์ ์ด ๋ง์์ง๋ ๊ธฐ๋ถ์ด๋ผ ๋ต๋ตํด์ ๊ธด๊ธ๋ก ๋์์์ด ์ง๋ฌธ๋๋ฆฌ๋ค์. ํน์ ์๊ฐ์ด ๋์ ๋ค๋ฉด ์กฐ์ธํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
@@user-wu2gi6sb5i ์๋ ํ์ธ์? ์์ฑํ ai ์๋น์ค๋ฅผ ๋ง๋์๋ ค๊ณ ํ์๋๋ณด๊ตฐ์! ์ฐ์ ์์ฑํ AIํ๋ฉด RAG๊ฐ ์ ๋ ๋น ์ง ์ ์๋ ํค์๋์ด์ฃ . ์๋ฒ ๊ตฌ์ฑ๋ ์ข์ง๋ง ๊ทธ ์ ์ RAG๊ฐ ์ด๋ค ํ๋ฆ์ผ๋ก ์งํ๋๋์ง ๋จผ์ ์ดํด๋์ด์ผ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ฒ๋ ์ ํ ํ์ค ์ ์์ด์. ๊ทธ๋์ ๋จผ์ RAG๋ฅผ ์ฌ์ฉํ ํ๋ก์ ํธ๋ถํฐ ํ์๋ผ๊ณ ๊ถํด ๋๋ฆฌ๊ณ ์ถ์ต๋๋ค^^
ํจ์คํธ์บ ํผ์ค์ ๋ฐ์นญํ ๊ฐ์๋ ์ ๋ฌธ์ ๋ถ๋ค์๊ฒ ์ด์ ์ ๋ง์ถฐ์ ธ ์์ด์ ์ค๋ช ๋ ์ ๋ฌธ์ ๋๋์ด์ ๋ง์ถฐ ์งํํ๊ณ ์์ด์. ๋ฐ๋ผ์ ํ์ด์ฌ ์ด์ ๋ง ์ ๋ฌธํ์๋ ๋ถ๋ค ๋ง์ผ์ธ์!
ํ์ง๋ง ๋ฌด๋ฃ ๊ฐ์๋ ๋ง์์. ์ ํ๋ธ๋ deeplearning.ai ์ ๋ฌด๋ฃ๋ก ๋ ๊ฐ์๋ ์์ผ๋ ์ฐธ๊ณ ํด ๋ณด์ญ์ผ^^
์ด๋ค ๊ฐ์๋ ํ์ต๋ฐฉ๋ฒ์ ์ ํํ๋ ๋ค ์ข์ต๋๋ค. ์์์ ๊ผญ RAG ํ๋ก์ ํธ ๋จ์ํ ๊ฒ์ด๋ผ๋ ๋ง๋ค์ด ๋ณด์๋ ๊ฒ์ผ๋ก ์์ํด ๋ณด์ธ์!
@@teddynote ๊ธด ๋ต๋ณํด์ฃผ์ ์ ๋๋ฌด๋ ๊ฐ์ฌํฉ๋๋ค ! ์์งํ ๋ญ์ฒด์ธ ๊ธฐ๋ฐ์ RAG ๊ฐ์๋ ํ ๋๋ ธํธ๋ ๊ฐ์ ๊ณ ํ๋ฆฌํฐ ๊ฐ์๊ฐ ์์ง ์๋๋ผ๊ตฌ์.
๊ฐ์์์ ๋ต๊ฒ ์ต๋๋ค :)
@@user-wu2gi6sb5i ๊ทน์ฐฌ ๊ฐ์ฌํฉ๋๋ค~๐๐
์๋ ํ์ธ์, ์ด๋ฐ ์ฑ๋ด์ ๋ง๋ค์ด์ ๋ฌด๋ฃ๋ก ์๋น์คํ ํ๋ค๋ฉด, ๋น์ฉ์ด ๋ง์ด ๋ฐ์๋ ๊น์?
์ฌ์ฉ์๊ฐ ๋ง๋ค๋ฉด ๊ทธ๋งํผ ๋น๋กํด์ ๊ณผ๊ธ์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ผ๋ง๋ ๋ง์ ์ฌ์ฉ์๊ฐ ์ด์ฉํ๋๊ฐ๊ฐ ๊ด๊ฑด์ผ๊ฒ ๊ฐ์์!
vectorstore ์์ฑํ๋ ๊ณผ์ ์์ Error Code 429 ๋ผ๊ณ ๋จ๋๋ฐ ์ ๋ฃ ๊ฒฐ์ ๋ก ๋ฐ๊ฟ๋,, ๋๊ฐ์ ์ฆ์์ด ๋จ๋ค์ฉ,, ์ด๋ป๊ฒ ํด๊ฒฐํ๋ฉด ์ข์๊น์?
vectorestore ๋ ๊ณผ๊ธ์ด ๋ฐ์ํ์ง ์์ต๋๋ค~ ์๋ง Embedding ์ด๋ ๋ชจ๋ธ ์ฌ์ฉํ์ค๋ ์ ๋ฃ ๋ชจ๋ธ ์ฌ์ฉํ์ค ๊ฒ ๊ฐ๊ณ ์. API ํค๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์ด ์๋์ง ํ ๋ฒ ํ์ธํด ๋ณด์ธ์!
ํ ๋๋ ๋ฐ๋ผํด๋ณด๊ณ ์ถ์๋ฐ ์ค์ตํ์ผ ๋ณต๊ตฌ์ข ํด์ฃผ์ค์์์ผ์ค๊น์
๋งํฌ ์์ ํ์ต๋๋ค~^^
@@teddynote ๊ฐ์ฌํฉ๋๋ค ~