๋ ์ํผ ์ถ์ฒ ์์คํ - ๋ฒกํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ LLM์ ํ์ฉํ RAG(Retrieval-Augmented Generation) ๊ธฐ๋ฐ ๋ ์ํผ ์ถ์ฒ ์๋น์ค
- FastAPI ๊ธฐ๋ฐ์ ์น ์๋ฒ
- RabbitMQ๋ฅผ ํ์ฉํ ๋น๋๊ธฐ ๋ฉ์์ง ํ ์์คํ
- Pinecone ๋ฒกํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์ฉํ ๋ ์ํผ ๊ฒ์
- HuggingFace ์๋ฒ ๋ฉ ๋ชจ๋ธ(multilingual-e5-large-instruct)์ ์ฌ์ฉํ ํ ์คํธ ์๋ฒ ๋ฉ
- OpenAI GPT ๋ชจ๋ธ์ ํ์ฉํ ๋ ์ํผ ์์ฑ
-
๋น๋๊ธฐ ๋ฉ์์ง ์ฒ๋ฆฌ
- RabbitMQ๋ฅผ ํตํ ๋ฉ์์ง ํ ์์คํ
- Publisher/Subscriber ํจํด์ผ๋ก ๊ตฌํ๋ ๋น๋๊ธฐ ์ฒ๋ฆฌ
- ์๋ต ํ๋ฅผ ํตํ ๊ฒฐ๊ณผ ์ ๋ฌ
-
์ฌ๋ฃ ๊ธฐ๋ฐ ๋ ์ํผ ๊ฒ์
- ๋ฒกํฐ ์ ์ฌ๋ ๊ธฐ๋ฐ ๊ฒ์ ๊ตฌํ
- ์ฌ๋ฃ๋ช ์ ์ฒ๋ฆฌ ๋ฐ ์ ๊ทํ
- ํจ์จ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ํ ๋์ ๋ชจ๋ธ ๋ก๋ฉ/์ธ๋ก๋ฉ
-
๋ง์ถคํ ๋ ์ํผ ์์ฑ
- ๊ฒ์๋ ๋ ์ํผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก LLM์ด ์ํฉ์ ๋ง๋ ์๋ก์ด ๋ ์ํผ ์์ฑ
- ๊ตฌ์กฐํ๋ ์๋ต ํฌ๋งท (Pydantic ๋ชจ๋ธ ํ์ฉ)
- ์์ธํ ์กฐ๋ฆฌ ๋ฐฉ๋ฒ๊ณผ ์ฌ๋ฃ ์ ๋ณด ์ ๊ณต
-
๋ฉ๋ชจ๋ฆฌ ์ต์ ํ
- ์๋ฒ ๋ฉ ๋ชจ๋ธ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ ํจ์จ์ ์ธ ๊ด๋ฆฌ
- ์๋ ๋ฆฌ์์ค ์ ๋ฆฌ ์์คํ
- GC๋ฅผ ํตํ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
-
๊ฒฌ๊ณ ํ ์๋ฌ ์ฒ๋ฆฌ
- ์ปค์คํ ์์ธ ํด๋์ค๋ฅผ ํตํ ์ฒด๊ณ์ ์ธ ์๋ฌ ๊ด๋ฆฌ
- ์์ธํ ๋ก๊น ์์คํ
- ์ฐ์ํ ์ข ๋ฃ ์ฒ๋ฆฌ
-
์ฑ๊ธํค ํจํด
- ๋ฆฌ์์ค ํจ์จ์ ์ฌ์ฉ์ ์ํ ์๋น์ค ์ธ์คํด์ค ๊ด๋ฆฌ
- ์ค๋ ๋ ์ธ์ดํํ ๊ตฌํ
- ํ์ํ ํ๊ฒฝ ๋ณ์ ์ค์ (.env ํ์ผ)
RECIPE_DB_API_KEY=your_recipe_db_api_key
PINECONE_API_KEY=your_pinecone_api_key
PINECONE_HOST_URL=your_pinecone_host_url
OPENAI_API_KEY=your_openai_api_key
RABBITMQ_HOST=your_rabbitmq_host
- ์์กด์ฑ ์ค์น
pip install -r requirements.txt- RabbitMQ ์๋ฒ ์คํ
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management- ์๋ฒ ์คํ
uvicorn app.main:app --reload- FastAPI
- RabbitMQ
- Pinecone
- LangChain
- HuggingFace Transformers
- OpenAI GPT
- Pydantic
- ์์ธํ ๋ก๊ทธ ๋ ๋ฒจ ๊ด๋ฆฌ
- ๊ตฌ์กฐํ๋ ๋ก๊ทธ ํฌ๋งท
- ๊ฐ ์๋น์ค ๋ณ ๋ ๋ฆฝ์ ์ธ ๋ก๊ฑฐ
app/
โโโ core/ # ํต์ฌ ์ค์ ๋ฐ ์ ํธ๋ฆฌํฐ
โโโ repositorie/ # ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ์ฝ๋
โโโ service/ # ๋น์ฆ๋์ค ๋ก์ง
โ โโโ listen/ # RabbitMQ ๋ฆฌ์ค๋
โ โโโ publish/ # RabbitMQ ํผ๋ธ๋ฆฌ์
โ โโโ search/ # ๊ฒ์ ์๋น์ค
โ โโโ llm/ # LLM ๊ด๋ จ ์๋น์ค
โ โโโ preprocess/ # ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ
โโโ main.py # ์ ํ๋ฆฌ์ผ์ด์
์ํธ๋ฆฌํฌ์ธํธ