
     @gn	                        d dl Z d dlmZ d dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
mZ d dlmZ d dlmZ d dlmZ  ej        d          Ze                     ej                                ej        d	          Z ej        d
          Z ej        d          Z e j        d          Ze                    deddd           e                    deddd           e                    deedd           e                    deedd           e                    deedd           e                    deddd           e                                Z  e
e j!                  Z"ed efd!            Z# ee#ddd"          Z$ ee j%        e"j&        #          Z'e'(                    e$            ee j)        e"j&        #          Z*e*(                    e$            ee j+        e"j&        #          Z,e,(                    e$           e-                    d$e             ej.        e$e j/        e j0        %           dS )&    N)asynccontextmanager)FastAPI)AccessLogWorker__version__)ChatGPTProxy)ClaudeProxy)GeminiProxyaiproxyOPENAI_API_KEYANTHROPIC_API_KEYGOOGLE_API_KEYzAIProxy usage)descriptionz--hostz	127.0.0.1Fzhostname or ipaddress)typedefaultrequiredhelpz--port8000zport numberz--openai_api_keyzOpenAI API Keyz--anthropic_api_keyzAnthropic API Keyz--google_api_keyzGoogle API Keyz--connection_strzsqlite:///aiproxy.dbzDatabase connection string)connection_strappc                   K   t          j        t          j        d                                           d W V  t          j                            d            d S )NT)targetdaemon)	threadingThreadworkerrunstartqueue_clientput)r   s    D/var/www/piapp/venv/lib/python3.11/site-packages/aiproxy/__main__.pylifespanr!   $   sT       FJt444::<<<	EEEE
D!!!!!    )r!   docs_url	redoc_urlopenapi_url)api_keyaccess_logger_queuezStart AI Proxy version )hostport)1argparse
contextlibr   loggingosr   uvicornfastapir   r
   r   r   aiproxy.chatgptr   aiproxy.anthropic_clauder   aiproxy.geminir	   	getLoggerlogger
addHandlerNullHandlergetenvenv_openai_api_keyenv_anthropic_api_keyenv_google_api_keyArgumentParserparseradd_argumentstrint
parse_argsargsr   r   r!   r   openai_api_keyr   chatgpt_proxy	add_routeanthropic_api_keyclaude_proxygoogle_api_keygemini_proxyinfor   r(   r)    r"   r    <module>rK      sY    * * * * * *  				            0 0 0 0 0 0 0 0 ( ( ( ( ( ( 0 0 0 0 0 0 & & & & & &		9	%	%   %'%'' ( ( ( RY/00 !	"566 RY/00  
!	 _	=	=	=   H3eRi  j j j   H3]  [ [ [   &S:LW\cs  t t t   )=R]bi|  } } }   &S:LW\cs  t t t   &S:P[`  hD   E  E  E 
(;	<	<	< " " " " " gx$$DQQQ +         {"+     s    {+     s    3k33 4 4 4 Cdidi 0 0 0 0 0 0r"   