29 lines
977 B
Python
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]
|
|
}
|