
    ?+h[               	          S SK r S SKrS SKrS SKrS SKJr  S SKJr  S SK	J
r
  SSKJrJr  SSKJr  SSKJrJrJrJrJrJrJrJr  S	rS
r\ R6                  " \R8                  S9r\
" / SQ/ SQ/ SQ/ SQ/ SQ/ SQS.5      r\\\\\\\S.r\ " \5       r!\RD                  " \!5      r#SSS5        \ " \5       r!\RD                  " \!5      r$SSS5        S SK%J&r&  S r'S r(S r)S r*\S 5       r+g! , (       d  f       NL= f! , (       d  f       N:= f)    N)settings)login_required)OrderedDict   )respostas_prontasresposta_treinamento_aplicativo)resposta_coeficiente_parede) system_educacional_carga_termicasystem_cadastro_projetosystem_cadastro_ambientesystem_lista_ambientesystem_bibliotecasystem_relatoriossystem_termo_referenciasystem_geralz1/var/www/html/cag/projeto/fabiano_embeddings.jsonz;/var/www/html/cag/projeto/respostas_prontas_embeddings.json)api_key)
zcadastrar ambientezquero cadastrar um ambientezcomo cadastrar um ambienteznovo ambientezcriar ambienteu   formulário de ambientezadicionar ambientezinserir ambientezambiente novozpreencher ambiente)zcadastrar projetozquero cadastrar um projetozcomo cadastrar um projetoznovo projetozcriar projetozinserir projetoznome do projetozcidade do projetozcoordenadas do projetozabrir projetozadicionar projeto)	u   termo de referênciaztermo de referenciau   licitaçãoz	lei 8.666u   compras públicaszdocumento para comprazdocumento oficialu   justificativa técnicazprojeto para edital)u
   relatório
relatoriosu   gráficou	   gráficoszresultado finalzexportar docxu   documentaçãoztabela de dadosu   resultados do cálculou   relatório técnicozarquivo docx)zlista de ambienteszvisualizar ambienteszver ambienteszresultados do ambientezmostrar ambientesu   relatório do ambientezambientes cadastradoszdados do ambiente)coeficientecoeficientes
biblioteca   valores térmicos   resistência térmicau   material de construçãoztabela de valores
isolamento   potência térmica   dissipação de calorztabela coeficientezqual coeficientezcoeficiente uzu-valueu   valor térmicou   coeficiente térmicor   r   r   r   r   )r   r   r   r   r   r   )r
   r   r   r   r   r   r   )SequenceMatcherc                    U R                  5       R                  5       nSU;   a  SU;   a  [        $ S nSn[        R                  " 5        H(  n[        S X5      R                  5       nXS:  d  M$  UnUnM*     US:  a	  [        U   $ g )Ntreinamento
aplicativog        g      ?)lowerstripr   r   keysr   ratio)textotexto_normalizadomelhor_chavemaior_similaridadechavesims         "/var/www/html/cag/projeto/agent.pyresposta_fixa_se_houverr+   [   s    ++- ))l>O.O.. L"'')d$5=CCE# L!$	 * D  ..    c                     [         R                  R                  U SS9n[        R                  " UR
                  S   R                  5      $ )Nztext-embedding-ada-002)inputmodelr   )client
embeddingscreatenparraydata	embedding)r$   responses     r*   gerar_embeddingr8   t   sC      ''& ( H 88HMM!$..//r,   c                    [        U 5      n0 n[        R                  5        Hu  u  p4[        R                  " U5      n[        R
                  " X5      [        R                  R                  U5      [        R                  R                  U5      -  -  nXbU'   Mw     [        X"R                  S9nX'   S:  a  [        R                  " U5      $ g )Nkeyg333333?)r8   respostas_rapidas_embeddingsitemsr3   r4   dotlinalgnormmaxgetr   )r$   pergunta_vecsimilaridadesperguntaembemb_vecr)   melhors           r*   buscar_resposta_rapidarI   }   s    "5)LM5;;=((3-ff\+ryy~~l/Kbiinn]dNe/ef"%h >
 $5$56Ft# $$V,,r,   c                    [        U 5      S:  a  U S   S   S-   U S   S   -   nOU S   S   n[        U5      n0 n[        R                  5        Hu  u  pE[        R
                  " U5      n[        R                  " X&5      [        R                  R                  U5      [        R                  R                  U5      -  -  nXsU'   Mw     [        X3R                  S9n[        R                  U[        5      $ )N   content r:   )lenr8   system_embeddingsr=   r3   r4   r>   r?   r@   rA   rB   prompts_dictr   )	historico_mensagenspergunta_compostarC   rD   nomerF   rG   r)   rH   s	            r*   detectar_contextorV      s    
1$/3I>DGZ[]G^_hGii/3I>"#45LM&,,.	((3-ff\+ryy~~l/Kbiinn]dNe/ef!d /
 $5$56FFL11r,   c                     US   S   n[        U5      nU(       a  U$ [        U5      nXAS   /n[        R                  R                  R                  SUSS9nUR                  S   R                  R                  $ )NrO   rM   zgpt-3.5-turbog333333?)r/   messagestemperaturer   )	rI   rV   r0   chatcompletionsr2   choicesmessagerM   )requestrS   user_mensagemresposta_prontasystem_prompt	mensagensr7   s          r*   responder_pergunta_termo_iarc      s    '+I6M,];O%&9:MB 78I{{&&-- . H A&&...r,   ),openaijsonnumpyr3   osdjango.confr   django.contrib.auth.decoratorsr   collectionsr   respostas_rapidasr   r   resposta_coeficientesr	   fabiano_promptsr
   r   r   r   r   r   r   r   EMBEDDINGS_PATHEMBEDDINGS_RAPIDAS_PATHOpenAIOPENAI_API_KEYr0   keywords_maprR   openfloadrQ   r<   difflibr   r+   r8   rI   rV   rc    r,   r*   <module>rx      s!      	   9 # Q >	 	 	 FW  
x66	7 !
 
 / B )I6 82**6 
/a		!  

!"a#'99Q<  # $20 2$ / /i  #"s   C)3C:)
C7:
D