o
    EÁæiÀ  ã                   @   s^   d dl Z d dlZd dlmZ d dlmZ d dlmZ e  dd¡Z	dZ
eedgƒd	d
„ ƒƒZdS )é    N)ÚJsonResponse)Úrequire_http_methods)Úcsrf_exemptÚOPENAI_API_KEYÚ z*https://api.openai.com/v1/chat/completionsÚPOSTc           
   
   C   s´  t stdddœdd�S z|t | j¡}| dd¡ ¡ }|s&tdddœdd�W S d	d
l}dt › �ddœ}ddddœd|dœgdddœ}|jt	||d�}|j
dkr\tdd|j
› �dœdd�W S | ¡ }d|v r~t|d ƒd	kr~|d d	 d d }td|dœƒW S tdddœdd�W S  tjyš   tdddœdd� Y S  |jyº }	 ztddt|	ƒ› �dœdd�W  Y d
}	~	S d
}	~	w tyÙ }	 ztdd t|	ƒ› �dœdd�W  Y d
}	~	S d
}	~	ww )!a  
    Chatbot API endpoint for ChatGPT integration

    Request format:
    {
        "message": "User message here"
    }

    Response format:
    {
        "success": true/false,
        "reply": "ChatGPT response",
        "error": "Error message (if any)"
    }
    FzSChatGPT API key not configured. Please set OPENAI_API_KEY in environment variables.)ÚsuccessÚerrori�  )ÚstatusÚmessager   zMessage cannot be emptyr   NzBearer zapplication/json)ÚAuthorizationzContent-Typezgpt-3.5-turboÚsystemz©You are a helpful assistant for BMC Vietnam - a plant protection product company. Answer questions about our products and services in a friendly and professional manner.)ÚroleÚcontentÚusergffffffæ?iô  )ÚmodelÚmessagesZtemperatureZ
max_tokens)ÚheadersÚjsonéÈ   zChatGPT API error: Úchoicesr   T)r   ZreplyzNo response from ChatGPTzInvalid JSON formatzNetwork error: zServer error: )r   r   r   ÚloadsÚbodyÚgetÚstripÚrequestsÚpostÚOPENAI_API_ENDPOINTÚstatus_codeÚlenÚJSONDecodeErrorZRequestExceptionÚstrÚ	Exception)
ÚrequestÚdataZuser_messager   r   ÚpayloadÚresponseZresponse_dataZassistant_messageÚe© r(   ú>D:\Huy\Project\programing\website-bmc\BmcBase\views_chatbot.pyÚchatbot_api   sš   þýþýþþþû
ó

þý
þþýþ
ýþý€þý€ÿr*   )Úosr   Údjango.httpr   Zdjango.views.decorators.httpr   Údjango.views.decorators.csrfr   Úgetenvr   r   r*   r(   r(   r(   r)   Ú<module>   s   