codex resume 01999fc7-4004-7500-8186-bb3ccf0a5390.
- Natural language โ QueryGoal ๋ณํ์
querygoal/pipeline/๋ชจ๋์ด ๋ด๋นํฉ๋๋ค.orchestrator.py๊ฐ ์ํธ๋ฆฌํฌ์ธํธ์ด๋ฉฐ, ํ์ ์ปดํฌ๋ํธ๋pattern_matcher.py,template_loader.py,parameter_filler.py,model_selector.py,validator.py์์ผ๋ก ๋์ํฉ๋๋ค.- Goal3 ๋ชจ๋ธ ์ ํ ์
config/model_registry.json๊ณผconfig/NSGA2Model_sources.yaml์ ์ฌ์ฉํฉ๋๋ค.
- ๋ฐํ์ ์คํ์
querygoal/runtime/์ดํ Stage-Gate ๊ตฌ์กฐ๋ก ๊ตฌํ๋์ด ์์ต๋๋ค.executor.pyโhandlers/swrl_selection_handler.pyโhandlers/yaml_binding_handler.pyโhandlers/simulation_handler.py์์ผ๋ก ํธ์ถ๋ฉ๋๋ค.config/NSGA2Model_sources.yaml์ ๋ฐํ์ ์ ์ฉdata_sources+ ๋ ๊ฑฐ์sources๋ฅผ ํจ๊ป ๊ฐ์ง ํ์ด๋ธ๋ฆฌ๋ manifest์ ๋๋ค.- AAS ์ฐ๋์
clients/aas_client.py(httpx ๊ธฐ๋ฐ), ์๋ฎฌ๋ ์ด์ ์clients/container_client.py(docker run)์์ ์ฒ๋ฆฌํฉ๋๋ค.
- ์ค์ ์คํ ์ฐ์ถ๋ฌผ์
temp/runtime_executions/<goalId_timestamp>/์๋์ ์์ฑ๋ฉ๋๋ค.- ์)
goal3_test_024717_20251001_174717๋ด๋ถ: yamlBinding JSON,my_case/์๋๋ฆฌ์ค,results/simulator_optimization_result.json, ์ปจํ ์ด๋ ๋ก๊ทธ ๋ฑ.
- ์)
api/โ FastAPI ๋ฉ์ธ ์๋น์ค (main.py,schemas.py).config/โ manifest, ๋ชจ๋ธ ๋ ์ง์คํธ๋ฆฌ, ์จํจ๋ก์ง, SPARQL ๊ท์น.execution_engine/โ SWRL SelectionEngine ๋ฐ ์์ด์ ํธ ๋ก์ง.querygoal/โ Pipeline + Runtime (ํ์ฌ ํต์ฌ ์์ ์์ญ).tests/โ ๊ณต์ฉ pytest ์์ฐ. ๋ฃจํธ์ ์๋ ๋ค์์ ํ ์คํธ ์คํฌ๋ฆฝํธ๋ ๋๋ฒ๊ทธ/์คํ์ฉ์ ๋๋ค (๊ณต์ ์๋๋ฆฌ์ค:test_goal1.py,test_goal3.py,test_goal4.py).temp/runtime_executions/โ ์ต๊ทผ ์คํ ๊ฒฐ๊ณผ(์ฑ๊ณต/์คํจ ๋ชจ๋) ๋ก๊ทธ ์ ์ฅ์.
pip install -r requirements.txt
export USE_STANDARD_SERVER=true # AAS ํ์ค ์๋ฒ ์ฌ์ฉ ์
export AAS_SERVER_IP=127.0.0.1
export AAS_SERVER_PORT=5001
# FastAPI ์๋ฒ
uvicorn api.main:app --reload --port 8000
# Goal3 ํ์ดํ๋ผ์ธ+๋ฐํ์ ์คํ ์์
python - <<'PY'
import asyncio
from querygoal.pipeline.orchestrator import PipelineOrchestrator
from querygoal.runtime.executor import QueryGoalExecutor
async def main():
orch = PipelineOrchestrator()
qg = orch.process_natural_language(
"Predict production time for product TEST quantity 5"
)
executor = QueryGoalExecutor()
result = await executor.execute_querygoal(qg)
print(result["executionLog"]["status"], result["workDirectory"])
asyncio.run(main())
PYhttp://<AAS_SERVER_IP>:<PORT>/shells์์ฒญ์ด 200์ ๋ฐํํ๋์ง ํ์ธ.config/NSGA2Model_sources.yaml์ URN/idShort๊ฐ AAS ๋ฐ์ดํฐ์ ์ผ์นํ๋์ง ๊ฒ์ฆ.- Docker ์ด๋ฏธ์ง
factory-nsga2:latest๊ฐ ๋ก์ปฌ์ ์กด์ฌํ๋์ง ํ์ธ (docker images). - ์คํ ํ
temp/runtime_executions/<goal>/results/์simulator_optimization_result.json,job_info.csv,operation_info.csv๊ฐ ์์ฑ๋๋์ง ํ์ธ. - ์คํจ ์
failure.log์container_logs_*.txt์์ StageGate ์ด์ ๋ฐ ์ปจํ ์ด๋ ๋ก๊ทธ ํ์ธ.
- PEP 8, ํ์ ํํธ ๊ถ์ฅ. ๋ณต์กํ Stage ๋ก์ง์ ๊ฐ๊ฒฐํ ์ฃผ์์ผ๋ก ๋ฌธ์ํ.
- Manifest/JSON/YAML ํฌ๋งท์ ์๋ํ ์์กด๋๊ฐ ๋์ผ๋ฏ๋ก ์๋ ์์ ์
data_sources์sources๊ฐ ๋๊ธฐํ๋์๋์ง ๋ ๋ฒ ํ์ธ. - ์ ํ
์คํธ๋
tests/๊ตฌ์กฐ๋ฅผ ์ฌ์ฌ์ฉํ๊ฑฐ๋, ๋ฃจํธ ํ ์คํธ ์คํฌ๋ฆฝํธ๋ฅผ ์ต์ํํฉ๋๋ค. - ์ปค๋ฐ ๋ฉ์์ง๋
[์์ญ] ๋์ฌํํ์์ ์ ์งํ๊ณ , PR์๋ ๋ฌธ์ /ํด๊ฒฐ/ํ ์คํธ ์์ฝ์ ํฌํจํฉ๋๋ค.
docs/Goal3_E2E_Complete_Flow.mdโ Goal3 ์๋ํฌ์๋ ํ๋ก์ฐ(์คํ ๊ฒฐ๊ณผ ๊ธฐ๋ฐ).docs/Runtime_Executor_Flow.mdโ ๋ฐํ์ Stage-Gate ์ค๊ณ ๊ฐ์.docs/QueryGoal_Runtime_Executor_Implementation_Plan.mdโ ๊ตฌํ ๊ณํ ๋ฐ ์ธ๋ถ ๋ด์ญ.
์ถ๊ฐ ์ง๋ฌธ์ด๋ ํ๊ฒฝ ์ด์๋ ์ด ํ์ผ์ ์ต์ ์ผ๋ก ์ ์งํ๋ฉด์ ์ฃผ์/์ด์์ ๊ณต์ ํด ์ฃผ์ธ์.