fix: resolve Gradio ValueError by explicitly binding server to 0.0.0.0 and port 7860 in Hugging Face Spaces
Browse files
AGENTS.md
CHANGED
|
@@ -109,7 +109,6 @@ def test_portfolio_showcase_aggregation_query():
|
|
| 109 |
- [x] **2. μ§μ κ·Έλν λ°λ ν₯μ**: ν보λ λ°μ΄ν°λ₯Ό `finGraph.py`λ₯Ό ν΅ν΄ Neo4jμ μ μ¬νμ¬ Company, Technology λ±μ λ
Έλμ κ΄κ³μ (Edge) λν νμ₯. (μ΄ 296κ°μ λ
Έλ λ° 346κ°μ κ΄κ³μ μΌλ‘ μ΄κ³ λ°λ μνμ μ€μΌμΌ κ·Έλν κ΅¬μΆ μλ£)
|
| 110 |
- [x] **3. νκ°(Hallucination) λ°©μ§ ν둬ννΈ κ°ν**: `finRetrieval.py`μ ν둬ννΈμ "λ°λμ μ 곡λ κ²μ κ²°κ³Ό κΈ°λ°μΌλ‘λ§ λ΅λ³νκ³ , μλ κΈ°μ
μ΄λ κ°μ§ URL(example.com λ±)μ μ λ μ§μ΄λ΄μ§ λ§ κ²"μ λͺ
μ. (μ² λ²½ ν둬ννΈ κ°λλ μΌ μ€κ³ μλ£)
|
| 111 |
- [x] **4. 3λ μλλ¦¬μ€ μ΅μ’
ν΅κ³Ό**: `tests/smoke_test_rag.py`λ₯Ό μ¬μ€ννμ¬ κ°μ§ λ§ν¬λ μΈλΆ μ§μ κ°μ
μμ΄, μμ§λ κ΅λ΄ λ΄μ€ κΈ°λ°μΌλ‘ μλ²½ν λ΅λ³νλμ§ κ²μ¦. (νμ΄λΈλ¦¬λ μλΉ κ²μκΈ° κ²°ν©μΌλ‘ 3λ 골λ μλλ¦¬μ€ 100% μμ PASS κ²μ¦ μ±κ³΅)
|
| 112 |
-
- [x] **5. Hugging Face λ°νμ μλ¬ ν΄κ²°**: Spaces 격리 νκ²½μμμ 루νλ°± λ°μΈλ© μ€λ₯(ValueError) λ° Jinja2 νΈνμ±(TypeError) λ¬Έμ μλ²½ μμ μλ£.
|
| 113 |
|
| 114 |
## λ°°ν¬ λ° μλν νμ΄νλΌμΈ (Pipeline Automation)
|
| 115 |
- [x] **λ§€μΌ μλ²½ 1μ(KST) μ΅μ ν νμ΄νλΌμΈ ꡬμΆ**: ν¬λ‘€λ§(`finScrapping.py`) β‘οΈ μ§μ κ·Έλν μ μ¬(`finGraph.py`)λ‘ μ΄μ΄μ§λ μλν¬μλ(End-to-End) μλν.
|
|
@@ -117,3 +116,10 @@ def test_portfolio_showcase_aggregation_query():
|
|
| 117 |
- **λΉνμ±ν μ¬μ **: λ¬΄μΈ μλ μ€μΌμ€ μ€ν μ λ°μνλ OpenAI API ν ν° λΉμ©μ μΈμ΄λΈνκ³ , ν₯ν μμ λ Neo4j ν΄λΌμ°λ μΈμ€ν΄μ€ λ³κ²½ λ° μ΄μ (Migration) μμ
μ μ μ°νκ² λμ²νκΈ° μν΄ μμ λΉνμ±ν μ²λ¦¬ν΄ λμμ΅λλ€.
|
| 118 |
- **ꡬν μλ£ λ΄μ**: `.github/workflows/daily_pipeline.yml` μν¬νλ‘μ° λͺ
μΈ λ° μ°μ λ°°ν¬(HF Spaces) λκΈ°ν 체κ³λ 100% μμ νκ² μ€κ³/ꡬνλμ΄ μ₯μ°©λμμ΅λλ€. νμ¬λ μ€μΌμ€ ν¬λ‘ (`schedule cron`) λΆλΆλ§ μ£ΌμμΌλ‘ λ§μλ μμ μνμ΄λ©°, ν₯ν μΈμ€ν΄μ€ μ΄μ μ΄ μλ£λλ©΄ μ£Όμλ§ νμ΄ μ¦μ κ°λν μ μμ΅λλ€.
|
| 119 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 109 |
- [x] **2. μ§μ κ·Έλν λ°λ ν₯μ**: ν보λ λ°μ΄ν°λ₯Ό `finGraph.py`λ₯Ό ν΅ν΄ Neo4jμ μ μ¬νμ¬ Company, Technology λ±μ λ
Έλμ κ΄κ³μ (Edge) λν νμ₯. (μ΄ 296κ°μ λ
Έλ λ° 346κ°μ κ΄κ³μ μΌλ‘ μ΄κ³ λ°λ μνμ μ€μΌμΌ κ·Έλν κ΅¬μΆ μλ£)
|
| 110 |
- [x] **3. νκ°(Hallucination) λ°©μ§ ν둬ννΈ κ°ν**: `finRetrieval.py`μ ν둬ννΈμ "λ°λμ μ 곡λ κ²μ κ²°κ³Ό κΈ°λ°μΌλ‘λ§ λ΅λ³νκ³ , μλ κΈ°μ
μ΄λ κ°μ§ URL(example.com λ±)μ μ λ μ§μ΄λ΄μ§ λ§ κ²"μ λͺ
μ. (μ² λ²½ ν둬ννΈ κ°λλ μΌ μ€κ³ μλ£)
|
| 111 |
- [x] **4. 3λ μλλ¦¬μ€ μ΅μ’
ν΅κ³Ό**: `tests/smoke_test_rag.py`λ₯Ό μ¬μ€ννμ¬ κ°μ§ λ§ν¬λ μΈλΆ μ§μ κ°μ
μμ΄, μμ§λ κ΅λ΄ λ΄μ€ κΈ°λ°μΌλ‘ μλ²½ν λ΅λ³νλμ§ κ²μ¦. (νμ΄λΈλ¦¬λ μλΉ κ²μκΈ° κ²°ν©μΌλ‘ 3λ 골λ μλλ¦¬μ€ 100% μμ PASS κ²μ¦ μ±κ³΅)
|
|
|
|
| 112 |
|
| 113 |
## λ°°ν¬ λ° μλν νμ΄νλΌμΈ (Pipeline Automation)
|
| 114 |
- [x] **λ§€μΌ μλ²½ 1μ(KST) μ΅μ ν νμ΄νλΌμΈ ꡬμΆ**: ν¬λ‘€λ§(`finScrapping.py`) β‘οΈ μ§μ κ·Έλν μ μ¬(`finGraph.py`)λ‘ μ΄μ΄μ§λ μλν¬μλ(End-to-End) μλν.
|
|
|
|
| 116 |
- **λΉνμ±ν μ¬μ **: λ¬΄μΈ μλ μ€μΌμ€ μ€ν μ λ°μνλ OpenAI API ν ν° λΉμ©μ μΈμ΄λΈνκ³ , ν₯ν μμ λ Neo4j ν΄λΌμ°λ μΈμ€ν΄μ€ λ³κ²½ λ° μ΄μ (Migration) μμ
μ μ μ°νκ² λμ²νκΈ° μν΄ μμ λΉνμ±ν μ²λ¦¬ν΄ λμμ΅λλ€.
|
| 117 |
- **ꡬν μλ£ λ΄μ**: `.github/workflows/daily_pipeline.yml` μν¬νλ‘μ° λͺ
μΈ λ° μ°μ λ°°ν¬(HF Spaces) λκΈ°ν 체κ³λ 100% μμ νκ² μ€κ³/ꡬνλμ΄ μ₯μ°©λμμ΅λλ€. νμ¬λ μ€μΌμ€ ν¬λ‘ (`schedule cron`) λΆλΆλ§ μ£ΌμμΌλ‘ λ§μλ μμ μνμ΄λ©°, ν₯ν μΈμ€ν΄μ€ μ΄μ μ΄ μλ£λλ©΄ μ£Όμλ§ νμ΄ μ¦μ κ°λν μ μμ΅λλ€.
|
| 118 |
|
| 119 |
+
## π οΈ μ΅κ·Ό μ΄μ ν΄κ²° λ΄μ (2026-05-19)
|
| 120 |
+
- [x] **Hugging Face Spaces λ°νμ μλ¬(ValueError λ° Internal Server Error) ν΄κ²°**:
|
| 121 |
+
- **νμ**: Hugging Face Spaces νκ²½μμ λΉλλ μ±κ³΅νμμΌλ ꡬλ μ νΉμ 첫 μ§μ μ λ°νμ μλ¬(ValueError) νΉμ 500 Internal Server Error λ°μ.
|
| 122 |
+
- **μμΈ**: `demo.launch()`μ νΈμ€νΈμ ν¬νΈ(`server_name="0.0.0.0"`, `server_port=7860`)λ₯Ό λͺ
μμ μΌλ‘ μ£Όμ§ μμ localhost λ°μΈλ© μ μΈλΆ μ κ·Όμ΄ μ°¨λ¨λλ©΄μ `ValueError: When localhost is not accessible, a shareable link must be created.` μλ¬ λ°μ.
|
| 123 |
+
- **μ‘°μΉ**: `app.py`μ `launch_kwargs`μ `server_name="0.0.0.0"`κ³Ό `server_port=7860`μ μμλ‘ μ£Όμ
νλλ‘ μ λ°νκ² κ΅¬μ‘°ννμ¬ λ‘컬 λ° μ격 κ°μ μλλ°μ€ νκ²½ λͺ¨λμμ ν¬λμ μμ΄ μλ²½νκ² κ΅¬λλλλ‘ μμ μλ£.
|
| 124 |
+
- **κ²μ¦**: `ruff`, `mypy` κ²μ¬λ₯Ό λ¨ 1κ°μ μ€λ₯λ μμ΄ ν΅κ³Όνκ³ `pytest tests/` λ° 3λ 골λ μλλ¦¬μ€ `smoke_test_rag.py`λ₯Ό 100% μμ ν΅κ³Όνμ¬ μλ²½μ±μ 보μ₯ν¨.
|
| 125 |
+
|
app.py
CHANGED
|
@@ -146,8 +146,7 @@ interface_kwargs = {
|
|
| 146 |
"cache_examples": False
|
| 147 |
}
|
| 148 |
|
| 149 |
-
# HF Spaces 컨ν
μ΄λ λ΄ λ£¨νλ°± κ²μ¦ μ€ν¨(ValueError)
|
| 150 |
-
# server_nameκ³Ό server_portλ₯Ό λ°μΈλ©νκ³ themeμ λΆκΈ°νμ¬ μ£Όμ
ν©λλ€.
|
| 151 |
launch_kwargs = {
|
| 152 |
"server_name": "0.0.0.0",
|
| 153 |
"server_port": 7860,
|
|
|
|
| 146 |
"cache_examples": False
|
| 147 |
}
|
| 148 |
|
| 149 |
+
# HF Spaces 컨ν
μ΄λ λ΄ λ£¨νλ°± κ²μ¦ μ€ν¨(ValueError) μ°ν λ° λ‘컬/μ격 νΈν ꡬλμ μν΄ launch μΈμ μ λ° μ€κ³
|
|
|
|
| 150 |
launch_kwargs = {
|
| 151 |
"server_name": "0.0.0.0",
|
| 152 |
"server_port": 7860,
|