KT_Q_Table/usecases/get_state_info_usecase.py

29 lines
977 B
Python

from negotiation_agent.environment import NegotiationEnv
import numpy as np
def get_state_info_usecase(env: NegotiationEnv) -> dict:
"""
현재 환경의 상태 정보를 상세하게 반환하는 유스케이스
Args:
env (NegotiationEnv): 협상 환경 인스턴스
Returns:
dict: 현재 상태에 대한 상세 정보
- current_price: 현재 가격
- initial_price: 초기 가격
- price_zone: 가격 구간 (0: 목표가격 이하, 1: 목표~임계 사이, 2: 임계가격 초과)
- acceptance_rate: 수락률
- scenario: 현재 시나리오
"""
state = env._get_state()
acceptance_rate = (env.initial_price - env.current_price) / env.initial_price
return {
"current_price": env.current_price,
"initial_price": env.initial_price,
"price_zone": state[1],
"acceptance_rate": acceptance_rate,
"scenario": state[0]
}