Task #59
KG Entity ์ค๋ช ์์ฑ โ ๋ฐฐ์น 3 ์คํ ๋ณด๊ณ ์
์์ ๋ช ๋ น์ด
[๐ก NORMAL] ## KG Entity ์ค๋ช
์์ฑ โ Task #57 ํ์ (๋ฐฐ์น 3, ๋๋จธ์ง 6๊ฐ)
### ๋ฐฐ๊ฒฝ
Task #57์์ 20๊ฐ ์๋ฃ, ์์ฐ ์์ง์ผ๋ก ๋ฐฐ์น 3 (6๊ฐ) ๋ฏธ์ฒ๋ฆฌ.
### ๋ฏธ์ฒ๋ฆฌ ์ํฐํฐ (๋ฐฐ์น 3, 21-26๋ฒ)
Task #57 ๋ณด๊ณ ์ ๊ธฐ์ค:
- 21. No Kings Protests
- 22. Quantum Computing
- 23. Saudi military base
- 24. Ultra-imperialism
- 25. household debt
- 26. labor environment
- (+) myocardial infarction ๋ ํฌํจ๋ ์ ์์ โ KG์์ summary ์๋ Entity ๋
ธ๋ ์ ์ ํ์ธ ํ ์ฒ๋ฆฌ
### ์คํ ์ง์นจ
**์ง๋จ ์์ด ๋ฐ๋ก ์คํ.**
1. Neo4j ์ฐ๊ฒฐ: bolt://localhost:7687, ์ธ์ฆ ์ ๋ณด๋ `/root/.env` ํ์ผ์์ load (NEO4J_PASSWORD)
2. Ollama: http://localhost:11434, ๋ชจ๋ธ `qwen3.5:4b`, options={"think": false}
3. summary๊ฐ ์๋ Entity ๋
ธ๋ ์ ์ ์กฐํ:
```cypher
MATCH (e:Entity) WHERE e.summary IS NULL OR e.summary = '' RETURN e.name, e.uuid
```
4. ๊ฐ ์ํฐํฐ์ ๋ํด Ollama๋ก ํ๊ตญ์ด 2-3๋ฌธ์ฅ ์ค๋ช
์์ฑ ํ Neo4j `summary` ํ๋ ์
๋ฐ์ดํธ
5. ๊ฒฐ๊ณผ ํ
์ด๋ธ ๋ณด๊ณ
### ์ฃผ์์ฌํญ
- `python-dotenv` import ๊ธ์ง โ `/root/.env` ํ์ผ ์ง์ ํ์ฑ:
```python
env = {}
with open('/root/.env') as f:
for line in f:
line = line.strip()
if line and not line.startswith('#') and '=' in line:
k, v = line.split('=', 1)
env[k.strip()] = v.strip()
```
- `neo4j` ํจํค์ง ์ฌ์ฉ (pip install neo4j if needed)
- Ollama API: POST http://localhost:11434/api/generate, payload: {"model":"qwen3.5:4b","prompt":"...","stream":false,"options":{"think":false}}