
    7|hP                        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       e/var/www/html/test/engine/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              rg }|j                  |j                        }|j                  d|t        j                  | j                        |       ||j                  d	       n|j                  t        |j!                                      nt        |t"              rg }|j                  |j                        }|j                  d|j$                  t        j                  | j                        |       ||j                  d	       nA|j                  t        |j!                                      nt        |t&              rg }|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	+0H(YY%%'Fzz<DJJ   $$ **X%:%:; ::d&9&9:    ?NN2&NN3w'7'7'9#:;D(+ **X%:%:; **::d&9&9:    ?NN2&NN3w'7'7'9#:;D$' &@C$jj)>)>?G!#s+$ "%#'::d.A.A#B!( '  $C2$ "%!1!1#'::d.A.A#B!( '  ((<==r*s7+;+;+='>?M&@R   455LLNN]  	- 	`  	KK3B489!LLN		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   