Files changed (1) hide show
  1. 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, LOCAL_IMAGE_NAME
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://router.huggingface.co/v1")
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 as exc:
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
- # Connect to already-running server (validator provides ENV_URL),
213
- # fall back to starting a Docker container for local testing.
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 as exc:
278
- print(f"[DEBUG] Episode failed: {exc}", flush=True)
279
 
280
  finally:
281
  try:
282
  await env.close()
283
- except Exception as e:
284
- print(f"[DEBUG] env.close() error: {e}", flush=True)
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())