U
    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 zt| j}|dd }|sLt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rtdd|j
 dddW S | }d|krt|d d	kr|d d	 d d }td|dW S tdddddW S W n tjk
r<   tddddd Y S  |jk
r }	 z$tddt|	 ddd W Y S d
}	~	X Y nD tk
r }	 z$tdd t|	 ddd W Y S d
}	~	X Y nX d
S )!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systemzYou 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(   =/var/www/BmcWebsite/BMC-WEBSITE-DONE/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   