---
title: RFPilot # κ΄νΈ μ κ±°
emoji: π
colorFrom: blue
colorTo: green
sdk: docker # Docker μ¬μ©
app_port: 7860 # Streamlit ν¬νΈ
pinned: false
license: mit
---
# Codeit-AI-1team-LLM-project
---
## μ±λ΄ μλΉμ€ μμ°

## λ²‘ν° DB λμ보λ μμ(λ³λ μλΉμ€ν μ§νμ€)
[μ μ λ§ν¬](https://vectordb-dashboard-dong.streamlit.app/)

# 1. νλ‘μ νΈ κ°μ
- **B2G μ
μ°°μ§μ μ λ¬Έ 컨μ€ν
μ€ννΈμ
β 'RFPilot'**
- RFP λ¬Έμλ₯Ό μμ½νκ³ , μ¬μ©μ μ§λ¬Έμ μ€μκ°μΌλ‘ μλ΅νλ μ±λ΄ μμ€ν
> **λ°°κ²½**: λ§€μΌ μλ°± 건μ κΈ°μ
λ° μ λΆ μ μμμ²μ(RFP)κ° κ²μλλλ°, κ° μμ²μ λΉ μμ νμ΄μ§κ° λλ 문건μ λͺ¨λ κ²ν νλ κ²μ λΆκ°λ₯ν©λλ€. μ΄λ¬ν κ³Όμ μ λΉν¨μ¨μ μ΄λ©°, μ€μν μ 보λ₯Ό λΉ λ₯΄κ² νμ
νκΈ° μ΄λ ΅μ΅λλ€.
>
> **λͺ©ν**: μ¬μ©μμ μ§λ¬Έμ μ€μκ°μΌλ‘ μλ΅νκ³ , κ΄λ ¨ μ μμλ₯Ό νμνμ¬ μμ½ μ 보λ₯Ό μ 곡νλ μ±λ΄μ κ°λ°νμ¬ μ»¨μ€ν΄νΈμ μ
무 ν¨μ¨μ ν₯μμν€κ³ μ ν©λλ€.
>
> **κΈ°λ ν¨κ³Ό**: RAG μμ€ν
μ ν΅ν΄ μ€μν μ 보λ₯Ό μ μνκ² μ 곡ν¨μΌλ‘μ¨, μ μμ κ²ν μκ°μ λ¨μΆνκ³ μ»¨μ€ν
μ
무μ λ³΄λ€ μ§μ€ν μ μλ νκ²½μ μ‘°μ±ν©λλ€.
---
# 2. νλ‘μ νΈ μ¬μ© λ°©λ²
## π μΉ μλΉμ€ μ¬μ© (μΌλ° μ¬μ©μ)
**μ
μ°°λ©μ΄νΈ μ±λ΄μ λ°λ‘ μ¬μ©νμΈμ!**
- π€ **λ°λͺ¨ μλΉμ€**: [HuggingFace Space](https://huggingface.co/spaces/Dongjin1203/RFP_summary_chatbot)
- π‘ **μ¬μ©λ²**:
1. μ λ§ν¬ μ μ
2. μ§λ¬Έ μ
λ ₯ (μ: "μ¬μ
κΈ°κ°μ΄ 12κ°μ μ΄νμΈ μ¬μ
μ°Ύμμ€")
3. AIκ° RFP λ¬Έμλ₯Ό λΆμνμ¬ λ΅λ³ μμ±
- β‘ **μ±λ₯**: νκ· μλ΅ μκ° 1λΆ μ΄λ΄
- π§ **μ¬μ© λͺ¨λΈ**: Llama-3-Open-Ko-8B (Q4_K_M, T4 GPU)
---
## π» λ‘컬 κ°λ° νκ²½ κ΅¬μΆ (κ°λ°μμ©)
### Prerequisites
- Python 3.12.3 μ€μΉ
- Poetry μ€μΉ
- μ μ₯μ ν΄λ‘ μλ£
- λ°μ΄ν°μ
λ‘컬 μ μ₯ ([λ€μ΄λ‘λ λ§ν¬](https://drive.google.com/file/d/187QnN2VeCfa-nyFMcv8ZtBJP0JxTaY4U/view?usp=drive_link))
- (μ ν) μμν λͺ¨λΈ νμΌ(.gguf) μ μ₯ (GPT APIλ§ μ¬μ© μ λΆνμ)
### νκ²½ μ€μ
**1. .env νμΌ μμ±**
```env
# νμ: OpenAI API (GPT λͺ¨λΈ μ¬μ©)
OPENAI_API_KEY="sk-..."
# μ ν: μ€ν μΆμ (LangSmith, WandB)
WANDB_API_KEY="..."
LANGCHAIN_TRACING_V2=true
LANGSMITH_API_KEY="..."
LANGCHAIN_PROJECT="μ
μ°°λ©μ΄νΈ"
# μ ν: GGUF λ‘컬 λͺ¨λΈ μ¬μ© μ
USE_MODEL_HUB=false
GGUF_MODEL_PATH="./models/Llama-3-Open-Ko-8B.Q4_K_M.gguf"
GGUF_N_CTX=4096
GGUF_N_GPU_LAYERS=35
```
**2. κ°μνκ²½ μ€μ λ° μμ‘΄μ± μ€μΉ**
```powershell
# νλ‘μ νΈ ν΄λλ‘ μ΄λ
cd Codeit-AI-1team-LLM-project
# Poetry κ°μνκ²½ μ€μ
python -m poetry config virtualenvs.in-project true
python -m poetry env use 3.12.3
python -m poetry install
# κ°μνκ²½ νμ±ν
python -m poetry shell
```
### μ€ν λ°©λ²
**1. λ°μ΄ν° μ μ²λ¦¬ λ° λ²‘ν° DB ꡬμΆ**
```powershell
# μ 체 νμ΄νλΌμΈ μ€ν (μ μ²λ¦¬ β μλ² λ© β 벑ν°DB)
python main.py --step all
# λλ λ¨κ³λ³ μ€ν
python main.py --step preprocess # μ μ²λ¦¬λ§
python main.py --step embed # μλ² λ©λ§
python main.py --step vectordb # 벑ν°DBλ§
```
**2. λ²‘ν° DB λμ보λ (λ³λ μλΉμ€λ‘ μ ν)**
> π **Note**: λ²‘ν° DB λμ보λλ λ³λ μ μ₯μλ‘ λΆλ¦¬
> μ μ λ§ν¬: [μ
μ°°λ©μ΄νΈ-VectorDB-Dashboard](https://vectordb-dashboard-dong.streamlit.app/) (Chroma DBλ§ κ°λ₯)
**3. μ±λ΄ λ‘컬 ν
μ€νΈ**
```powershell
# Streamlit κΈ°λ° λ‘컬 μ±λ΄ UI
streamlit run src/visualization/chatbot_app.py
```
> β οΈ **μ£Όμ**: λ‘컬 μ€ν μ GGUF λͺ¨λΈμ CPU νκ²½μμ λ릴 μ μμ΅λλ€.
> λΉ λ₯Έ ν
μ€νΈλ₯Ό μνμλ©΄ GPT API μ¬μ©μ κΆμ₯ν©λλ€.
**4. μ€ν λ° νκ°**
```powershell
# λνν λ©λ΄
python src/evaluation/run_experiment.py
# μ€ν μ€ν
python src/evaluation/run_experiment.py --run
# μ€ν κ²°κ³Ό λΉκ΅
python src/evaluation/run_experiment.py --compare
```
# 3. νλ‘μ νΈ κ΅¬μ‘°
---
```
CODEIT-AI-1TEAM-LLM-PROJECT/
β
βββ main.py # μ€ν μ§μ
μ
βββ models/ # GGUF λͺ¨λΈ (μ ν)
βββ chroma_db/ # λ²‘ν° λ°μ΄ν°λ² μ΄μ€
βββ data/ # λ¬Έμ λ° λ²‘ν°DB μ μ₯ ν΄λ(RAGμ© λ°μ΄ν°λ§ 곡κ°)
β βββ files/ # μλ³Έ RFP λ¬Έμ
β βββ rag_chunks_final.csv # μ μ²λ¦¬ μλ£λ RAG μ© λ°μ΄ν° csv
βββ notebooks/ # Hugging Face λͺ¨λΈ νμ΅ μ½λ
βββ src/
β βββ loader/ # λ¬Έμ λ‘λ© λ° μ μ²λ¦¬
β βββ router/ # 쿼리 λΌμ°ν
β βββ prompt/ # λμ ν둬ννΈ
β βββ evaluation/ # LangSmith νκ°
β βββ embedding/ # μλ² λ©, 벑ν°DB μμ±
β βββ retriever/ # λ¬Έμ κ²μκΈ°
β βββ generator/ # μλ΅ μμ±κΈ°
β βββ visualization/ # UI ꡬμ±
β βββ utils/ # κ³΅ν΅ ν¨μ λͺ¨λ
βββ README.md
```
- `main.py`: μ 체 RAG νμ΄νλΌμΈ μ€νμ μ§μ
μ μ
λλ€.
- `data/`: μλ¬Έ λ¬Έμ, μμ±λ 벑ν°DB λ±μ΄ μ μ₯λ©λλ€.
- `models/`: λ‘컬 λͺ¨λΈ λ‘λμ© μμν λͺ¨λΈ νμΌμ μ μ₯νλ κ³³μ
λλ€.
- `src/loader`: PDF, HWP λ¬Έμλ₯Ό ν
μ€νΈλ‘ μΆμΆνκ³ μλ―Έ λ¨μλ‘ λΆν ν©λλ€.
- `src/router`: 쿼리 λΌμ°ν°κ° μ§λ¬Έμ λΆλ₯νμ¬ μλΉμ€λ₯Ό λμ μν΅λλ€.
- `src/prompt`: λͺ¨λΈ, μ§λ¬Έμ μ’
λ₯μ λ°λΌ κ°κΈ° λ€λ₯Έ ν둬ννΈλ₯Ό μ 곡ν©λλ€.
- `src/evaluation`: LangSmith νκ° νκ²½μ κ΄λ¦¬νκ³ μ€νμ μ§νν©λλ€.
- `src/embedding`: ν
μ€νΈ μλ² λ© λ²‘ν°λ₯Ό μμ±νκ³ Chroma DBλ₯Ό ꡬμΆν©λλ€.
- `src/retriever`: μ¬μ©μ μ§λ¬Έμ λν κ΄λ ¨ λ¬Έμλ₯Ό 벑ν°DBμμ κ²μν©λλ€.
- `src/generator`: κ²μλ λ¬Έμ κΈ°λ°μΌλ‘ LLMμ΄ μλ΅μ μμ±ν©λλ€.
- `src/visualization`: Streamlit κΈ°λ° μ¬μ©μ μΈν°νμ΄μ€λ₯Ό ꡬμ±ν©λλ€.
- `src/notebooks`: λ‘컬 λͺ¨λΈμ Fine-Tuningνμ¬ μμν νμΌμ μμ±ν©λλ€.
- `src/utils`: μ€μ νμΈ, κ²½λ‘ μ€μ λ± κ³΅ν΅ μ νΈλ¦¬ν° ν¨μλ€μ ν¬ν¨ν©λλ€.
# 4. ν μκ°
> κΈ°λ³Έμ μΆ©μ€μ€νλ©° μ€μ μ¬μ© κ°λ₯ν λͺ¨λΈμ λ§λ€κΈ° μν΄ λμμμ΄ λ
Έλ ₯νλ νμ
λλ€.
## π¨πΌβπ» λ©€λ² κ΅¬μ±
|μ§λμ§|κΉμ§μ±|μ΄μ λ
Έ|λ°μ§μ€|
|-----|------|------|-------|
|
|
|
|
|
|||||
|||||
## π¨πΌβπ» μν λΆλ΄
|μ§λμ§|κΉμ§μ±|μ΄μ λ
Έ|λ°μ§μ€|
|------|--------------|---------------|---------------|
|PM/AI RAG Lead|Data Scientist|AI Engineer(API, Prompt)|AI Engineer(HuggingFace, Prompt)|
|νλ‘μ νΈ μ 체 κΈ°ν λ° μΌμ κ΄λ¦¬. Retrieval System μ€κ³ λ° κ΅¬ν (Retriever, Query Router). λ‘컬 μλ² λ© λͺ¨λΈ κ°λ° λ° μ΅μ ν. λμ ν둬ννΈ μμ§λμ΄λ§ λ° μ μ©. Streamlit κΈ°λ° λμ보λ κ°λ°. λ°°ν¬ νκ²½ κ΅¬μΆ λ° μμ€ν
ν΅ν©|λ°μ΄ν° νμ΄νλΌμΈ κ΄λ¦¬. λ¬Έμ μ²νΉ μ λ΅ κ³ν μ립. λͺ¨λΈ Baseline μ 곡. λͺ¨λΈ μμν|- OpenAI λͺ¨λΈ κ°λ°. Prompt Engineering λ΄λΉ|- λ‘컬 μλ² λ© λͺ¨λΈ κ°λ°. Prompt Engineering λ΄λΉ|
---
# 5. νλ‘μ νΈ νμλΌμΈ
---
# 6. μλΉμ€ μ€λͺ
## μλΉμ€ μν€ν
μ³
---
# Further Information
## κ°λ° μ€ν λ° κ°λ°νκ²½
- **μΈμ΄**:
- **νλ μμν¬**:
- **λΌμ΄λΈλ¬λ¦¬**:
- **ν΄λΌμ°λ μλΉμ€**:
- **λꡬ**:


## νμ
Tools
## κΈ°ν λ§ν¬
### νλ‘μ νΈ λ³΄κ³ μ
[νλ‘μ νΈ λ³΄κ³ μ λ€μ΄](https://drive.google.com/file/d/1p3HHeugJmaiJP4AQpxZZEzAiAngtaHr8/view?usp=sharing)
### νλ‘μ νΈ ppt
[νλ‘μ νΈ ppt λ€μ΄](https://drive.google.com/file/d/1QM88Ayztv5TNaxTXi0z1Xhy6ngHLLKUm/view?usp=sharing)
### κ°μΈ νμ
μΌμ§
- μ§λμ§([κ°μΈ νμ
μΌμ§](https://www.notion.so/2a2e8d29749a80fca2c7cdae7dfbf883?source=copy_link))
- κΉμ§μ±([κ°μΈ νμ
μΌμ§](https://www.notion.so/2a2e8d29749a807d8f7cf0afd33d3045?source=copy_link))
- μ΄μ λ
Έ([κ°μΈ νμ
μΌμ§](https://www.notion.so/2a2e8d29749a807abb25fbdb616f8b40?source=copy_link))
- λ°μ§μ€([κ°μΈ νμ
μΌμ§](https://www.notion.so/2a2e8d29749a806cac38f19f2357dad0?source=copy_link))