a .8d@s@ddlmZmZmZmZddlZddlZGdddZeZdS))COMPLETION_URLBALANCE_API_URL USAGE_API_URLAPI_HOSTNc@sXeZdZdZdZeZeZe Z ddZ ddZ ddZ dd Zd d Zd d ZddZdS)StateFcCs d|_dSNT interruptedselfr =/Users/treediagram/Downloads/ChuanhuChatGPT/modules/shared.py interrupt szState.interruptcCs d|_dSNFrr r r r recoversz State.recovercCs@d|d|_d|d|_d|d|_d|dtjd<dS)Nhttps://z/v1/chat/completionsz /dashboard/billing/credit_grantsz/dashboard/billing/usage/v1OPENAI_API_BASE)completion_urlbalance_api_url usage_api_urlosenviron)r api_hostr r r set_api_hostszState.set_api_hostcCs(t|_t|_t|_dtdtjd<tS)Nrrr) rrrrrrrrrr r r r reset_api_hosts zState.reset_api_hostcCsd|_t|_dSr)r rrr r r r reset_allszState.reset_allcCs*d|_t|_|D]}|j|qdSr) multi_api_keyqueueQueue api_key_queueput)r api_key_listapi_keyr r r set_api_key_queue#s zState.set_api_key_queuecs tdsSfdd}|S)Nr cs2j}||d_|i|}j||S)Nr)r getr#r!)argskwargsr#retfuncr r r wrapped-s    z(State.switching_api_key..wrapped)hasattr)r r*r+r r)r switching_api_key)s zState.switching_api_keyN)__name__ __module__ __qualname__r rrrrrrrrrrrrr$r-r r r r rsr) modules.presetsrrrrrrrstater r r r s2