Spaces:
Sleeping
Sleeping
Update inference.py
#14
by rsaibhargav - opened
- inference.py +13 -18
inference.py
CHANGED
|
@@ -2,10 +2,11 @@
|
|
| 2 |
Inference Script — AI Response Evaluation Environment
|
| 3 |
=====================================================
|
| 4 |
MANDATORY
|
| 5 |
-
- Variables: API_BASE_URL, MODEL_NAME, HF_TOKEN
|
| 6 |
- Defaults set only for API_BASE_URL and MODEL_NAME (not HF_TOKEN)
|
| 7 |
- Must be named inference.py at repo root
|
| 8 |
- Must use OpenAI client for all LLM calls
|
|
|
|
| 9 |
|
| 10 |
STDOUT FORMAT
|
| 11 |
[START] task=<task_name> env=<benchmark> model=<model_name>
|
|
@@ -25,10 +26,11 @@ load_dotenv()
|
|
| 25 |
|
| 26 |
from code_assessment_env import CodeAssessmentAction, CodeAssessmentEnv
|
| 27 |
|
| 28 |
-
LOCAL_IMAGE_NAME = os.getenv("LOCAL_IMAGE_NAME", "code_assessment_env:latest")
|
| 29 |
HF_TOKEN = os.getenv("HF_TOKEN")
|
|
|
|
|
|
|
| 30 |
|
| 31 |
-
API_BASE_URL = os.getenv("API_BASE_URL", "https://
|
| 32 |
MODEL_NAME = os.getenv("MODEL_NAME", "Qwen/Qwen2.5-72B-Instruct")
|
| 33 |
TASK_NAME = os.getenv("TASK_NAME", "ai_response_evaluation")
|
| 34 |
BENCHMARK = os.getenv("BENCHMARK", "code_assessment_env")
|
|
@@ -197,8 +199,7 @@ def get_model_answer(
|
|
| 197 |
)
|
| 198 |
text = (completion.choices[0].message.content or "").strip()
|
| 199 |
answer = text if text else "unknown"
|
| 200 |
-
except Exception
|
| 201 |
-
print(f"[DEBUG] Model request failed: {exc}", flush=True)
|
| 202 |
answer = "unknown"
|
| 203 |
|
| 204 |
history.append({"role": "assistant", "content": answer})
|
|
@@ -209,13 +210,8 @@ def get_model_answer(
|
|
| 209 |
async def main() -> None:
|
| 210 |
client = OpenAI(base_url=API_BASE_URL, api_key=HF_TOKEN)
|
| 211 |
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
env_url = os.getenv("ENV_URL")
|
| 215 |
-
if env_url:
|
| 216 |
-
env = CodeAssessmentEnv(base_url=env_url)
|
| 217 |
-
else:
|
| 218 |
-
env = await CodeAssessmentEnv.from_docker_image(LOCAL_IMAGE_NAME)
|
| 219 |
|
| 220 |
rewards: List[float] = []
|
| 221 |
history: List[dict] = []
|
|
@@ -253,7 +249,6 @@ async def main() -> None:
|
|
| 253 |
result = await env.step(CodeAssessmentAction(answer=answer))
|
| 254 |
obs = result.observation
|
| 255 |
except Exception as exc:
|
| 256 |
-
print(f"[DEBUG] env.step() failed: {exc}", flush=True)
|
| 257 |
log_step(step=step, action=answer[:60], reward=0.0, done=True, error=str(exc))
|
| 258 |
steps_taken = step
|
| 259 |
break
|
|
@@ -274,16 +269,16 @@ async def main() -> None:
|
|
| 274 |
score = min(max(score, 0.0), 1.0)
|
| 275 |
success = score >= SUCCESS_SCORE_THRESHOLD
|
| 276 |
|
| 277 |
-
except Exception
|
| 278 |
-
|
| 279 |
|
| 280 |
finally:
|
| 281 |
try:
|
| 282 |
await env.close()
|
| 283 |
-
except Exception
|
| 284 |
-
|
| 285 |
log_end(success=success, steps=steps_taken, rewards=rewards)
|
| 286 |
|
| 287 |
|
| 288 |
if __name__ == "__main__":
|
| 289 |
-
asyncio.run(main())
|
|
|
|
| 2 |
Inference Script — AI Response Evaluation Environment
|
| 3 |
=====================================================
|
| 4 |
MANDATORY
|
| 5 |
+
- Variables: API_BASE_URL, MODEL_NAME, HF_TOKEN
|
| 6 |
- Defaults set only for API_BASE_URL and MODEL_NAME (not HF_TOKEN)
|
| 7 |
- Must be named inference.py at repo root
|
| 8 |
- Must use OpenAI client for all LLM calls
|
| 9 |
+
- Connects to the environment server at localhost:8000 (started by container)
|
| 10 |
|
| 11 |
STDOUT FORMAT
|
| 12 |
[START] task=<task_name> env=<benchmark> model=<model_name>
|
|
|
|
| 26 |
|
| 27 |
from code_assessment_env import CodeAssessmentAction, CodeAssessmentEnv
|
| 28 |
|
|
|
|
| 29 |
HF_TOKEN = os.getenv("HF_TOKEN")
|
| 30 |
+
if not HF_TOKEN:
|
| 31 |
+
raise ValueError("HF_TOKEN environment variable is required but not set.")
|
| 32 |
|
| 33 |
+
API_BASE_URL = os.getenv("API_BASE_URL", "https://api.openai.com/v1")
|
| 34 |
MODEL_NAME = os.getenv("MODEL_NAME", "Qwen/Qwen2.5-72B-Instruct")
|
| 35 |
TASK_NAME = os.getenv("TASK_NAME", "ai_response_evaluation")
|
| 36 |
BENCHMARK = os.getenv("BENCHMARK", "code_assessment_env")
|
|
|
|
| 199 |
)
|
| 200 |
text = (completion.choices[0].message.content or "").strip()
|
| 201 |
answer = text if text else "unknown"
|
| 202 |
+
except Exception:
|
|
|
|
| 203 |
answer = "unknown"
|
| 204 |
|
| 205 |
history.append({"role": "assistant", "content": answer})
|
|
|
|
| 210 |
async def main() -> None:
|
| 211 |
client = OpenAI(base_url=API_BASE_URL, api_key=HF_TOKEN)
|
| 212 |
|
| 213 |
+
env_url = os.getenv("ENV_URL", "http://localhost:8000")
|
| 214 |
+
env = CodeAssessmentEnv(base_url=env_url)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 215 |
|
| 216 |
rewards: List[float] = []
|
| 217 |
history: List[dict] = []
|
|
|
|
| 249 |
result = await env.step(CodeAssessmentAction(answer=answer))
|
| 250 |
obs = result.observation
|
| 251 |
except Exception as exc:
|
|
|
|
| 252 |
log_step(step=step, action=answer[:60], reward=0.0, done=True, error=str(exc))
|
| 253 |
steps_taken = step
|
| 254 |
break
|
|
|
|
| 269 |
score = min(max(score, 0.0), 1.0)
|
| 270 |
success = score >= SUCCESS_SCORE_THRESHOLD
|
| 271 |
|
| 272 |
+
except Exception:
|
| 273 |
+
pass
|
| 274 |
|
| 275 |
finally:
|
| 276 |
try:
|
| 277 |
await env.close()
|
| 278 |
+
except Exception:
|
| 279 |
+
pass
|
| 280 |
log_end(success=success, steps=steps_taken, rewards=rewards)
|
| 281 |
|
| 282 |
|
| 283 |
if __name__ == "__main__":
|
| 284 |
+
asyncio.run(main())
|