Spaces:
Sleeping
Sleeping
File size: 3,272 Bytes
eae04fe | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | # Data Collection Spec
## ๊ฐ์
์ด ํ๋ก์ ํธ๋ ๋ฉ๊ตฌ๋ฐ ์ฑ๋ด์ RAG ์์์ ๋ ๊ณ์ธต์ผ๋ก ๊ด๋ฆฌํ๋ค.
- ์คํ์ผ/ํ๋ฅด์๋์ฉ ๋ฐ์ดํฐ
- ์: `megumin_qa_dataset.json`
- ์ฌ์ค/์ค์ ์ฉ ๋ฐ์ดํฐ
- ์: `namuwiki_qa.json`
์ฌ์ค/์ค์ ์ฉ ๋ฐ์ดํฐ๋ ๋๋ฌด์ํค ๋ฌธ์๋ฅผ ์ ๋ณ ์์งํด QA JSON์ผ๋ก ๋ณํํ๊ณ , ์ดํ FAISS ์ธ๋ฑ์ค๋ก ๊ฒ์ํ๋ค.
## ์์ง ๋์
๋๋ฌด์ํค ๋ฌธ์๋ ๋ณ์นญ์ผ๋ก ์
๋ ฅํ ์ ์์ผ๋ฉฐ, ์ค์ ๊ฒ์ ์์๋ ์ ์ ๋ฌธ์๋ช
์ผ๋ก ๋ณํํ๋ค.
์:
- `์นด์ฆ๋ง` -> `์ฌํ ์นด์ฆ๋ง`
- `์์ฟ ์` -> `์์ฟ ์(์ด ๋ฉ์ง ์ธ๊ณ์ ์ถ๋ณต์!)`
- `๋คํฌ๋์ค` -> `๋คํฌ๋์ค(์ด ๋ฉ์ง ์ธ๊ณ์ ์ถ๋ณต์!)`
- `์ธ๊ณ๊ด` -> `์ด ๋ฉ์ง ์ธ๊ณ์ ์ถ๋ณต์!/์ค์ `
- `์ง์ญ` -> `์ด ๋ฉ์ง ์ธ๊ณ์ ์ถ๋ณต์!/์ง์ญ`
์ ์ฅ ์ `source.title`์ ์งง์ ํ์๋ช
์ผ๋ก ์ ๊ทํํ๋ค.
์:
- `์ฌํ ์นด์ฆ๋ง` -> `์นด์ฆ๋ง`
- `์์ฟ ์(์ด ๋ฉ์ง ์ธ๊ณ์ ์ถ๋ณต์!)` -> `์์ฟ ์`
- `์ด ๋ฉ์ง ์ธ๊ณ์ ์ถ๋ณต์!/์ค์ ` -> `์ธ๊ณ๊ด`
- `์ด ๋ฉ์ง ์ธ๊ณ์ ์ถ๋ณต์!/์ง์ญ` -> `์ธ๊ณ๊ด`
## ๋ณํ ๊ท์น
- ์ถ๋ ฅ ํฌ๋งท์ QA JSON ์ ์ง
- `question`์ ์ฌ์ฉ์ ์ง๋ฌธํ์ด ์๋๋ผ ๊ฒ์์ฉ ์์ ๋ชฉ ์์ฝ
- `answer`๋ ์ค๋ฆฝ ์์ฝํ ๋ณธ๋ฌธ
- ํ, ์ด๋ฏธ์ง, ๋ถํ์ํ ์ฅ์ ์์๋ ์ ์ธ
- chunk ๊ธธ์ด๋ ์ฝ 200์ ๋ด์ธ
- chunk overlap์ 1~2๋ฌธ์ฅ
## ์ ์ฅ ํ์ผ
- `data/processed/namuwiki_qa.json`
- ๋๋ฌด์ํค ๊ธฐ๋ฐ ํตํฉ QA ๋ฐ์ดํฐ
- `data/processed/megumin_qa_dataset.json`
- ๊ธฐ์กด ๋ฉ๊ตฌ๋ฐ ์คํ์ผ/ํ๋ฅด์๋ QA ๋ฐ์ดํฐ
- `data/processed/megumin_questions.faiss`
- ์คํ์ผ ๋ฐ์ดํฐ question ์ธ๋ฑ์ค
- `data/processed/megumin_question_answer.faiss`
- ์คํ์ผ ๋ฐ์ดํฐ question+answer ์ธ๋ฑ์ค
- `data/processed/megumin_questions_meta.json`
- ์คํ์ผ ๋ฐ์ดํฐ ์ธ๋ฑ์ค์ ์๋ฌธ ๋ ์ฝ๋ ๋งคํ
- `data/processed/namuwiki_questions.faiss`
- ๋๋ฌด์ํค ๋ฐ์ดํฐ question ์ธ๋ฑ์ค
- `data/processed/namuwiki_question_answer.faiss`
- ๋๋ฌด์ํค ๋ฐ์ดํฐ question+answer ์ธ๋ฑ์ค
- `data/processed/namuwiki_questions_meta.json`
- ๋๋ฌด์ํค ๋ฐ์ดํฐ ์ธ๋ฑ์ค์ ์๋ฌธ ๋ ์ฝ๋ ๋งคํ
## ๋ณํฉ ์ ์ฅ ๊ท์น
`crawl_namuwiki_to_qa.py`๋ ์ถ๋ ฅ ํ์ผ์ด ์ด๋ฏธ ์กด์ฌํ๋ฉด ๊ธฐ์กด `items`์ ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณํฉํ๋ค.
- ์ฐ์ ์ค๋ณต ๊ธฐ์ค: `chunk_id`
- ๋ณด์กฐ ๊ธฐ์ค: `source.url + chunk_index + question`
๋ณํฉ ํ ์๋ณ์๋ ๋ค์ ๊ท์น์ผ๋ก ์ ๊ทํํ๋ค.
- `chunk_id`
- title๋ณ ์ฐ์ ๋ฒํธ ์ ์ง
- ์: `๋ฉ๊ตฌ๋ฐ_0000`, `์นด์ฆ๋ง_0185`
- `chunk_index`
- ์ ์ฒด ํ์ผ ๊ธฐ์ค ์ฐ์ ๋ฒํธ
- ์: `0`, `135`, `320`
## ๊ด๋ จ ์คํฌ๋ฆฝํธ
- `scripts/crawl_namuwiki_to_qa.py`
- ๋๋ฌด์ํค ๋ฌธ์๋ฅผ QA JSON์ผ๋ก ๋ณํ
- `scripts/build_faiss_index.py`
- ์คํ์ผ/๋๋ฌด์ํค ๋ฐ์ดํฐ ๊ฐ๊ฐ์ ๋ํด question ์ธ๋ฑ์ค์ question+answer ์ธ๋ฑ์ค๋ฅผ ์์ฑ
- `scripts/expand_persona_from_namuwiki.py`
- ์ฌ์ค/์ค์ QA๋ฅผ ๋ฉ๊ตฌ๋ฐ ์คํ์ผ QA ์ด์์ผ๋ก ํ์ฅ
## ์ด์ ๋ฉ๋ชจ
- ๋๋ฌด์ํค ๊ธฐ๋ฐ ๋ฐ์ดํฐ๋ ์ฌ์ค/์ค์ ๋ณด๊ฐ์ฉ์ด๋ค.
- ๊ธฐ์กด `megumin_qa_dataset.json`์ ๋ฉ๊ตฌ๋ฐ ๋งํฌ์ ๊ฐ์ ์ ์ ์ง์ ๋ ์ค์ํ๋ค.
- ์ต์ข
Agent๋ ๋ ๋ฐ์ดํฐ์์ ํจ๊ป ๊ฒ์ํด ์ฌ์ฉํ๋ค.
|