o bV f @shdZddlZddlZddlZddlmZddlmZeddZ  dddZ d d Z d d Z d dZ dS)zCall API providers.N) build_logger)WORKER_API_TIMEOUTgradio_web_serverzgradio_web_server.logc csddl}|pd|_|ptjd|_|dkrd}|||||d}td||jj||||dd } d } | D]} | | d dd  d d 7} | dd} | Vq7dS)Nrzhttps://api.openai.com/v1OPENAI_API_KEYz gpt-4-turbozgpt-4-1106-previewmodelprompt temperaturetop_pmax_new_tokens==== request ==== T)rmessagesr max_tokensstreamchoicesdeltacontenttext error_code) openaiapi_baseosenvironapi_keyloggerinfoZChatCompletioncreateget) model_namer r r r rrr gen_paramsresrchunkdatar%O/mnt/public/algm/yuantao_home/workspace/fastchat/fastchat/serve/api_provider.pyopenai_api_stream_iters8 r'c csddl}|jtjdd}|||||d}td||jj||jg||||dd}d} |D]} | | j 7} | dd } | Vq1dS) NrZANTHROPIC_API_KEY)rrr T)rstop_sequencesZmax_tokens_to_sampler r rrrr) anthropicZ Anthropicrrrr completionsrZ HUMAN_PROMPT completion) r rr r r r)cr!r"rr#r$r%r%r&anthropic_api_stream_iter9s6  r-cCsJddl}ddlm}tjd}d}|j||d||}|jgd}|S)Nr) ChatModelZGCP_PROJECT_IDz us-central1)projectlocation)examples)vertexaiZ vertexai.preview.language_modelsr.rrinitfrom_pretrainedZ start_chat)r r2r.Z project_idr0Z chat_modelchatr%r%r&init_palm_chat[s    r6c cs|||d}d|d}||td||j|fi|}|j}d} | t|krQ| tdd7} t t d|d| dd } | V| t|ks-dSdS) N)r r max_output_tokenszpalm-2)rrr r 2r) updaterr send_messagerlenrandomrandinttimesleep expovariate) r5messager r r parametersr!responserposr$r%r%r&palm_api_stream_iterhs*   rG)NN) __doc__rr>r@fastchat.utilsrfastchat.constantsrrr'r-r6rGr%r%r%r&s     +"