openenv-customer-support / scripts /test_enhanced_env.py
vivekvish2004's picture
Upload folder using huggingface_hub
dc97fe1 verified
import json
import sys
import os
# Add parent directory to path to import backend
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from backend.env import CustomerSupportEnv
from backend.models import Action
def test_kb_and_sentiment():
env = CustomerSupportEnv()
print("--- Testing Reset ---")
obs = env.reset()
ticket_text = obs.state["ticket_text"]
print(f"Initial Ticket: {ticket_text}")
print(f"Initial Sentiment: {obs.state['sentiment']}")
print("\n--- Testing KB Search ---")
action = Action(action_type="search_kb", payload={"query": "refund policy"})
obs, reward, done, info = env.step(action)
print(f"Message: {info['message']}")
print(f"KB Context in Obs: {obs.state.get('kb_context')}")
print("\n--- Testing Sentiment Decay ---")
# Take 3 more steps to trigger sentiment change
for i in range(2):
action = Action(action_type="generate_response", payload={"response": "Wait..."})
obs, reward, done, info = env.step(action)
print(f"Step {i+2} Sentiment: {obs.state['sentiment']}")
# 4th step should trigger decay from initial (which was likely ANGRY/NEUTRAL etc)
action = Action(action_type="generate_response", payload={"response": "Almost there..."})
obs, reward, done, info = env.step(action)
print(f"Step 4 Sentiment: {obs.state['sentiment']}")
print(f"Message: {info['message']}")
print("\n--- Testing Clarification ---")
# Force a vague scenario for testing if needed, or just test the action
action = Action(action_type="ask_clarification", payload={"question": "What is wrong?"})
obs, reward, done, info = env.step(action)
print(f"Is Clarified in Obs: {obs.state.get('is_clarified')}")
print(f"Message: {info['message']}")
if __name__ == "__main__":
test_kb_and_sentiment()