a Rld@srddlZddlZddlZddlZddlZddlmZddlmZm Z m Z m Z m Z ej ddZGdddeZdS)N) BaseLLMModel)STANDARD_ERROR_MSGGENERAL_ERROR_MSGTIMEOUT_STREAMING TIMEOUT_ALLi18nZMINIMAX_GROUP_IDcsDeZdZdZdfdd ZddZdd Zdd d Zd dZZ S)MiniMax_ClientuZ MiniMax Client 接口文档见 https://api.minimax.chat/document/guides/chat rNcsDtj||ddt|_g|_||_||_d|dd|_dS)N) model_nameuserz8https://api.minimax.chat/v1/text/chatcompletion?GroupId=Bearer application/json) Authorization Content-Type)super__init__group_idurlhistoryapi_key system_promptheaders)selfr r user_namer __class__?/Users/treediagram/dev/ChuanhuChatGPT/modules/models/minimax.pyrs zMiniMax_Client.__init__cCs|jdkr|jdnd|jdd}|jdd|dd|jdd d gd }|jr`|j|d <|jrp|j|d <|jr|j|d<|jr|j|d<tj |j |j |d}| }|d}|dd}||fS)N? minimax-rTUSERcontentZ sender_typetextmodel temperatureZskip_info_maskmessages beam_widthprompttokens_to_generatetop_p)rjsonreplyusage total_tokens) r)r replacer n_choicesrmax_generation_tokenr.requestspostrrr/)rr) request_bodyresponseresanswertotal_token_countrrrget_answer_at_onces&&      z!MiniMax_Client.get_answer_at_onceccsJ|jdd}|dur<||}d}|D]}||7}|Vq&n ttVdS)NT)streamr) _get_response_decode_chat_responserr)rr9iter partial_textirrrget_answer_stream_iter9s   z%MiniMax_Client.get_answer_stream_iterFc Cs|j}|j}ttjj|tjjdd|d}|jdkrL|jdnd|jdd}g}|jD]:}|ddkr| d |d d qh| d |d d qh|j d d|d|d}|j r|j |d<|j rD|j } | dddkr6t| ddkr6| ddd| dddd|d<| d| |d<|jrX|j|d<nd|d<|jrr|j|d<|rt} d|d<d|d<nt} ztj|j|||| d} WnYdS0| S) Nr r )rrrrr roler r"r$r%ZBOTr!rTr'r+r:r#)rZbot_nameZ role_meta r,r-ir.r>Zuse_standard_sse)rr/r>timeout)rrloggingdebugcoloramaForeYELLOWRESETr)appendr r3r4r splitlinesfindlensplitpopjoinr5r.rrr6r7r) rr>minimax_api_keyrrr)r*msgr8linesrIr9rrrr?Dsh &     &     zMiniMax_Client._get_responsec csd}|D]$}|r |}t|}t|zt|dd}Wn2tjyvttd|||7}Yq Yn0|dkr d|ddvr d|ddvr|ddddkr|j |d d t |jq4z|dddVWq t y0}z(t d |WYd}~q WYd}~q d}~00q |rzBt|}d |vrz|d d }|d d}t |d|WntjyYn0t |dS)Nru"JSON解析错误,收到的内容: deltachoicesr finish_reasonstopr1r2zError: Z base_resp status_code status_msgz - ) iter_linesdecoderSprintr/loadsJSONDecodeErrorrall_token_countsrPsum ExceptionrJerror)rr9 error_msgchunk chunk_lengther_r`rrrr@s> $$    z$MiniMax_Client._decode_chat_response)rN)F) __name__ __module__ __qualname____doc__rr=rDr?r@ __classcell__rrrrr s   >r )r/osrLr6rJZmodules.models.base_modelrmodules.presetsrrrrrenvirongetrr rrrrs