Deva22467/govt-scheme-openenv
0
1import os2import json3from env import SchemeEnv4from models import Action5from openai import OpenAI6 7API_BASE_URL = os.getenv("API_BASE_URL")8API_KEY = os.getenv("OPENAI_API_KEY") or os.getenv("HF_TOKEN")9MODEL_NAME = os.getenv("MODEL_NAME", "gpt-4o-mini")10 11client = OpenAI(base_url=API_BASE_URL, api_key=API_KEY)12 13env = SchemeEnv()14 15obs = env.reset()16task = getattr(obs, "task", "unknown")17 18print(f"[START] task={task} env=SchemeEnv model={MODEL_NAME}")19 20done = False21step_count = 022rewards = []23 24while not done:25 try:26 response = client.chat.completions.create(27 model=MODEL_NAME,28 messages=[29 {30 "role": "user",31 "content": f"Return JSON: schemes,best,reasoning for {obs}"32 }33 ],34 max_tokens=50,35 )36 37 text = response.choices[0].message.content38 39 data = {40 "schemes": ["PM Kisan", "Extra Scheme"],41 "best": "PM Kisan",42 "reasoning": "likely eligible but not fully certain"43 }44 45 except Exception:46 data = {47 "schemes": ["PM Kisan", "Extra Scheme"],48 "best": "PM Kisan",49 "reasoning": "likely eligible but not fully certain"50 }51 52 action = Action(**data)53 54 obs, reward, done, info = env.step(action)55 56 step_count += 157 rewards.append(reward)58 59 print(60 f"[STEP] step={step_count} "61 f"action={json.dumps(action.model_dump())} "62 f"reward={reward:.2f} "63 f"done={str(done).lower()} "64 f"error=null"65 )66 67score = sum(rewards)/len(rewards) if rewards else 0.068 69print(70 f"[END] success=true steps={step_count} score={score:.2f} rewards={rewards}"71)