CoolFace
Apppublic

sylkkj/pppp

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
utils.cpython-39.pyc27 linesDownload Raw Back to root
1a

2l��g�@s�ddlmZddlmZddlmZmZddlZddl	m3Z4ddlmZmZm
Z
mZeed�dd�Zeed	�d5d�ZiZe6�Zdeeed�dd�ZdS)�N)�GoogleAPIError)�
HTTPException�Request)�Lock)�ResourceExhausted�InternalServerError�ServiceUnavailable�InvalidArgument)�e�returncCs�t|t�rdSt|ttf�r dSt|t�r6d|j��St|t�r�dt|�vr\dt|�vr\dSdt|�vr|dt|���vr|dSd	|j��St|�SdS)7NuAPI 密钥配额已用尽u)Gemini API 内部错误或服务不可用u无效参数错误: Z429zQuota exceeded�400�invalidu无效参数uGemini API 错误: )	�8isinstancerrrr	�messager�str�lower)r9�r�D:\gemini\app\utils.py�handle_gemini_error	s101112r)�api_keyrc13�s�zDtj|d�t��}|s WdS|D]}d|j��vr$WdSq$WdStyx}ztd|���WYd}~dSd}~0ty�}ztd|���WYd}~dSd}~00dS)u*14    测试 API 密钥是否有效。15    )rF�errorTzGoogleAPIError: NzOther Exception: )�genai�	configure�list_models�namerr�print�	Exception)r�models�modelr16rrr�test_api_keys17r��X)�request�max_requests_per_minute�max_requests_per_day_per_ipcCstt���}|d}|d}|jj�d|��}|jj�d|��}t��t�|d|f�\}}	||	dkrnd}|}	|d7}||	ft|<t�|d|f�\}18}||dkr�d}19|}|20d7}21|22|ft|<Wd�n1s�0Y||kr�t	dd|d�d	��|23|k�rt	dd24|d�d	��dS)N�<i�Q�:r�i�zToo many requests per minute)r�limit)�status_code�detailz&Too many requests per day from this IP)25�int�time�url�path�client�host�rate_limit_lock�rate_limit_data�getr)r"r#r$�now�minute�dayZ26minute_keyZday_keyZminute_countZminute_timestampZ	day_countZ
day_timestamprrr�protect_from_abuse3s,*27r7)r r!)�google.generativeai�generativeairZgoogle.api_core.exceptionsr�fastapirrr,�	threadingrrrrr	rrr�boolrr2r1r+r7rrrr�<module>s