Ë
    µŒjP  ã                  óš   — d dl mZ d dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
 d dlmZ erd dlmZ  ej                  e«      Z	  G d„ d«      Zy)é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚDictÚListÚOptional)ÚDocument)Ú
Connectionc                  ó.   — e Zd ZdZ	 d	 	 	 	 	 dd„Zdd„Zy)ÚOracleSummaryztGet Summary
    Args:
        conn: Oracle Connection,
        params: Summary parameters,
        proxy: Proxy
    Nc                ó.   — || _         || _        || _        y ©N)ÚconnÚproxyÚsummary_params)Úselfr   Úparamsr   s       úp/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/utilities/oracleai.pyÚ__init__zOracleSummary.__init__"   s   € ð ˆŒ	ØˆŒ
Ø$ˆÕó    c                óv  — 	 ddl }|€g S g }	 d|j                  _        | j                  j                  «       }| j                  r|j                  d| j                  ¬«       t        |t        «      rŽg }|j                  |j                  «      }|j                  d|t        j                  | j                  «      |¬«       |€|j                  d	«       �né|j                  t        |j!                  «       «      «       �n¿t        |t"        «      r˜g }|j                  |j                  «      }|j                  d|j$                  t        j                  | j                  «      |¬«       |€|j                  d	«       �nA|j                  t        |j!                  «       «      «       �nt        |t&        «      rüg }|D ]ô  }|j                  |j                  «      }t        |t        «      r3|j                  d
|t        j                  | j                  «      |¬«       nXt        |t"        «      r=|j                  d
|j$                  t        j                  | j                  «      |¬«       nt)        d«      ‚|€|j                  d	«       ŒÍ|j                  t        |j!                  «       «      «       Œö nt)        d«      ‚|j+                  «        |S # t        $ r}t        d«      |‚d}~ww xY w# t(        $ rB}t,        j/                  d|› �«       t1        j2                  «        j+                  «        ‚ d}~ww xY w)a  Get the summary of the input docs.
        Args:
            docs: The documents to generate summary for.
                  Allowed input types: str, Document, List[str], List[Document]
        Returns:
            List of summary text, one for each input doc.
        r   NzIUnable to import oracledb, please install with `pip install -U oracledb`.Fz&begin utl_http.set_proxy(:proxy); end;)r   zô
                    declare
                        input clob;
                    begin
                        input := :data;
                        :summ := dbms_vector_chain.utl_to_summary(input, json(:params));
                    end;)Údatar   ÚsummÚ aQ  
                            declare
                                input clob;
                            begin
                                input := :data;
                                :summ := dbms_vector_chain.utl_to_summary(input, 
                                            json(:params));
                            end;zInvalid input typezAn exception occurred :: )ÚoracledbÚImportErrorÚdefaultsÚ
fetch_lobsr   Úcursorr   ÚexecuteÚ
isinstanceÚstrÚvarÚDB_TYPE_CLOBÚjsonÚdumpsr   ÚappendÚgetvaluer	   Úpage_contentr   Ú	ExceptionÚcloseÚloggerÚinfoÚ	tracebackÚ	print_exc)	r   Údocsr   ÚeÚresultsr   ÚsummaryÚdocÚexs	            r   Úget_summaryzOracleSummary.get_summary)   sÒ  € ð	Ûð ˆ<ØˆIàˆðj	Ø+0ˆH×ÑÔ(Ø—Y‘Y×%Ñ%Ó'ˆFà�zŠzØ—‘Ø<ÀDÇJÁJð ô ô ˜$¤Ô$Ø�à Ÿ*™* X×%:Ñ%:Ó;�Ø—‘ðð ÜŸ:™: d×&9Ñ&9Ó:Ø ð ô ð �?Ø—N‘N 2Ö&à—N‘N¤3 w×'7Ñ'7Ó'9Ó#:Ö;ä˜D¤(Ô+Ø�à Ÿ*™* X×%:Ñ%:Ó;�Ø—‘ðð ×*Ñ*ÜŸ:™: d×&9Ñ&9Ó:Ø ð ô ð �?Ø—N‘N 2Ö&à—N‘N¤3 w×'7Ñ'7Ó'9Ó#:Ö;ä˜D¤$Ô'Ø�ã�CØ$Ÿj™j¨×)>Ñ)>Ó?�GÜ! #¤sÔ+ØŸ™ð$ð "%Ü#'§:¡:¨d×.AÑ.AÓ#BØ!(ð 'õ ô $ C¬Ô2ØŸ™ð$ð "%×!1Ñ!1Ü#'§:¡:¨d×.AÑ.AÓ#BØ!(ð 'õ ô (Ð(<Ó=Ð=à�ØŸ™ rÕ*àŸ™¤s¨7×+;Ñ+;Ó+=Ó'>Õ?ñM  ôR  Ð 4Ó5Ð5à�L‰LŒNØˆNøô] ò 	Üð-óð ðûð	ûô` ò 	Ü�K‰KÐ3°B°4Ð8Ô9Ü×ÑÔ!Ø�L‰LŒNØûð		ús/   ‚K �KK- Ë	K*ËK%Ë%K*Ë-	L8Ë6=L3Ì3L8r   )r   r
   r   zDict[str, Any]r   zOptional[str])r0   r   Úreturnz	List[str])Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r6   © r   r   r   r      s1   „ ñð PTð%Øð%Ø(6ð%Ø?Ló%ôr   r   )Ú
__future__r   r%   Úloggingr.   Útypingr   r   r   r   r   Úlangchain_core.documentsr	   r   r
   Ú	getLoggerr8   r,   r   r<   r   r   Ú<module>rB      sI   ðõ #ã Û Û ß ;Õ ;å -áÝ#à	ˆ×	Ñ	˜8Ó	$€à ÷Nñ Nðfr   