Embedchain์ RAG(Retrieval-Augmented Generation) ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ๊ตฌ์ถํ ์ ์๋๋ก ์ค๊ณ๋ ์คํ์์ค Python ํ๋ ์์ํฌ๋ค.
๊ฐ์
Embedchain์ โConventional but Configurableโ(๊ด๋ก์ ์ด์ง๋ง ์ค์ ๊ฐ๋ฅํ) ์ค๊ณ ์์น์ ๋ฐ๋ฅด๋ฉฐ, ๋น๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ฅผ LLM๊ณผ ์ฐ๊ฒฐํ๋ ๊ณผ์ ์ ๊ฐ์ํํ๋ค1. ๋ฐ์ดํฐ ๋ก๋ฉ, ์ฒญํน(chunking), ์๋ฒ ๋ฉ ์์ฑ, ๋ฒกํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฅ๊น์ง์ ์ ์ฒด ํ์ดํ๋ผ์ธ์ ์๋์ผ๋ก ์ฒ๋ฆฌํ๋ค.
์ฃผ์ ํน์ง
๊ฐ๋จํ API
๋จ 4์ค์ ์ฝ๋๋ก AI ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๋ค:
from embedchain import App
app = App()
app.add("https://en.wikipedia.org/wiki/Elon_Musk")
app.query("How many companies does Elon Musk run?")
๋ค์ํ ๋ฐ์ดํฐ ์์ค ์ง์
- ์น ํ์ด์ง (URL)
- YouTube ๋์์
- PDF ๋ฌธ์
- CSV, JSON ํ์ผ
- Notion ํ์ด์ง
- Markdown, DOCX ํ์ผ
- ์ปค์คํ ํ ์คํธ
๊ด๋ฒ์ํ ํตํฉ ์ง์
LLM (Large Language Model)2:
- OpenAI (GPT-3.5, GPT-4 ๋ฑ)
- Azure OpenAI
- Anthropic Claude
- Hugging Face ๋ชจ๋ธ
- Llama2
- Cohere
๋ฒกํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค2:
- ChromaDB
- Elasticsearch
- OpenSearch
- Pinecone
- Weaviate
- Qdrant
- Zilliz
- LanceDB
์๋ฒ ๋ฉ ๋ชจ๋ธ:
- OpenAI ์๋ฒ ๋ฉ (text-embedding-3-small, text-embedding-3-large)
- Google AI
- AWS Bedrock
- Hugging Face Sentence Transformers
- GPT4All (CPU ์ต์ ํ)
- Google VertexAI
- NVIDIA AI Foundation
์๋ ์๋ฆฌ
Embedchain์ RAG ํ์ดํ๋ผ์ธ์ ๋ค์ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋๋ค:
- ๋ฐ์ดํฐ ๋ก๋ฉ: ๋ค์ํ ์์ค์์ ์๋์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ธ์ํ๊ณ ๋ก๋
- ์ฒญํน: ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ ํฌ๊ธฐ์ ์ฒญํฌ๋ก ๋ถํ
- ์๋ฒ ๋ฉ ์์ฑ: ๊ฐ ์ฒญํฌ๋ฅผ ๋ฒกํฐ ์๋ฒ ๋ฉ์ผ๋ก ๋ณํ
- ๋ฒกํฐ ์ ์ฅ: ์์ฑ๋ ์๋ฒ ๋ฉ์ ๋ฒกํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ
- ์ฟผ๋ฆฌ ์ฒ๋ฆฌ:
- ์ฌ์ฉ์ ์ง๋ฌธ์ ์๋ฒ ๋ฉ์ผ๋ก ๋ณํ
- ๊ด๋ จ ๋ฌธ์ ๊ฒ์
- LLM์ ์ฌ์ฉํ์ฌ ๋ต๋ณ ์์ฑ
์ค์น ๋ฐ ์ฌ์ฉ
์ค์น
pip install embedchain
Python 3.9 ์ด์ 3.13 ์ดํ ๋ฒ์ ์ ์ง์ํ๋ค.
๊ธฐ๋ณธ ์ฌ์ฉ ์์
from embedchain import App
# ์ฑ ์ด๊ธฐํ
app = App()
# ๋ฐ์ดํฐ ์ถ๊ฐ
app.add("https://en.wikipedia.org/wiki/Elon_Musk")
app.add("https://www.forbes.com/profile/elon-musk")
# ์ง๋ฌธํ๊ธฐ
response = app.query("How many companies does Elon Musk run and name those?")
print(response)
LangChain๊ณผ์ ํตํฉ
Embedchain์ LangChain์ retriever๋ก ์ฌ์ฉํ ์ ์๋ค:
from embedchain import create
# Retriever ์์ฑ
retriever = create()
# ๋ฐ์ดํฐ ์ถ๊ฐ
retriever.add_texts([
"https://en.wikipedia.org/wiki/Elon_Musk",
"https://www.youtube.com/watch?v=RcYjXbSJBN8"
])
# ์ ๋ณด ๊ฒ์
result = retriever.invoke("How many companies does Elon Musk run?")
์ฅ์
- ์ถ์ํ: ๋ณต์กํ RAG ํ์ดํ๋ผ์ธ์ ๊ฐ๋จํ API๋ก ์ถ์ํ
- ์๋ํ: ๋ฐ์ดํฐ ํ์ ์๋ ๊ฐ์ง ๋ฐ ์ฒ๋ฆฌ
- ์ ์ฐ์ฑ: ๋ค์ํ LLM, ๋ฒกํฐ DB, ์๋ฒ ๋ฉ ๋ชจ๋ธ ์ง์
- ํ์ฅ์ฑ: YAML ์ค์ ์ ํตํ ์ปค์คํฐ๋ง์ด์ง ๊ฐ๋ฅ
- ์์ฐ์ฑ: ๋น ๋ฅธ ํ๋กํ ํ์ดํ๊ณผ ๊ฐ๋ฐ
LangChain๊ณผ์ ๋น๊ต
Embedchain์ LangChain ์์ ๊ตฌ์ถ๋ ๋ํผ(wrapper)๋ก, ๋ ๋์ ์์ค์ ์ถ์ํ๋ฅผ ์ ๊ณตํ๋ค3. ์ด๋ ์ฌ์ฉ์ด ๋ ๊ฐ๋จํ์ง๋ง, ์ธ๋ฐํ ์ ์ด๋ LangChain์ ๋นํด ์ ํ์ ์ผ ์ ์๋ค.
๋์ ์ฌ์ฉ์
- ๋ฐ์ดํฐ ๊ณผํ์
- ๋จธ์ ๋ฌ๋ ์์ง๋์ด
- ์ํํธ์จ์ด ์์ง๋์ด
- AI ๊ฐ๋ฐ์
- ๋ ๋ฆฝ ๊ฐ๋ฐ์ ๋ฐ ์ทจ๋ฏธ ๊ฐ๋ฐ์
์ฐธ๊ณ ์๋ฃ
- Embedchain ๊ณต์ ์น์ฌ์ดํธ
- Embedchain GitHub ์ ์ฅ์
- Embedchain PyPI ํจํค์ง
- LangChain Embedchain ํตํฉ ๋ฌธ์