o
    gY                     @   s`   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 e  ZG dd deZdS )	    N)BaseNamespace)ConversationalRAG)mysql_db)MySQLChatMessageHistory)OPENAI_MODEL_MINIc                       s*   e Zd Zd fdd	ZefddZ  ZS )ChatNamespaceNc                    s   t  || d S )N)super__init__)self	namespaceredis_client	__class__ //var/www/html/XCapMarket/namespaces/doc_chat.pyr	      s   zChatNamespace.__init__c              
      s  zt t|||d}t||||d}	d}
|	jjd|idd|iid2 z 3 d H W }d|v rB|
|d 7 }
| jd	||d d
|dI d H  q"6 | I d H }|rr|jd u rr|	|
}|rr| jd||j	d|dI d H  |
|j	|I d H  |j||
|ddI d H  | jdd|i|dI d H  W d S  ty } z't| | jd	|dd
|dI d H  | jdd|i|dI d H  W Y d }~d S d }~ww )N)db
session_id	socket_id
created_by)selected_files
project_idhistory_providerai_model inputconfigurabler   )configanswerresponse_chat_message)sidmessage)roomsession_name_updated)r   namer   )questionresponsemodeltokens_usedmessage_completer   zUnable to process your request)r   r   r   conversational_rag_chainastreamemitget_chat_session_namer#   get_summary_of_combined_answercontentupdate_chat_session_nameadd_interaction	Exception
XCM_loggererror)r
   r   queryuser_idr   
file_namesr   r   chat_historychat_instancecombined_answerchunkr%   summaryer   r   r   on_chat_message   s   




zChatNamespace.on_chat_message)NN)__name__
__module____qualname__r	   r   r=   __classcell__r   r   r   r   r      s    r   )loggingnamespaces.baser   services.docchat.chatr   utils.mysql_dbr   #services.docchat.chat_history_mysqlr   configs.configr   	getLoggerr2   r   r   r   r   r   <module>   s    