
    j5                     .   d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZ d dlmZ d dlmZ  G d de          Z G d de          Z G d d	e          Z G d
 de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d  d!e          Z G d" d#e          Z G d$ d%e          Z d&S )'    )JSON
BigIntegerBooleanColumnDateFloat
ForeignKeyIntegerStringTextUniqueConstraint)relationship)	BaseModelc                      e Zd ZdZ e ed          d          Z e ed          d          Z eed          Z	 e ed          d          Z
 e ed          d	          Z e ed
          d          Z eed          Z eed          Z eed          Z eed          Z ee ed          dd          Z ee ed          dd          Z e ed          d          Z edd          ZdS )KnowledgeBaseknowledge_basesd   FnullableT2   u   📚defaultgeneral   enabledr   public.tenants.idr   indexpublic.users.id	not_builtKnowledgeCategoryknowledge_baseback_populatesN)__name__
__module____qualname____tablename__r   r   namecoder   descriptionicontypestatusr   	is_publicr
   	doc_countqa_countentity_countr	   	tenant_id
created_bygraph_statusr   
categories     A/lsinfo/ai/hellotax_ai/base_platform/app/models/knowledge_base.pyr   r      s}       %M6&&++...D6&&++---D&---K6&&**f---D6&&**i000DVFF2JJ	222Fw---Iw***Ivgq)))H6'1---Lw

+> ? ?%W[\\\I,=!>!>UYZZZJ6&&**k:::L1BRSSSJJJr8   r   c                   z   e Zd ZdZ ee ed          d          Z e ed          d          Z	 ee
d          Z ee ed          d          Z e ed          d          Z e ed	          d          Z eed
          Z edd          Z edd          Z ed ddeg          ZdS )r!   knowledge_categoriesknowledge_bases.idTr   r   Fknowledge_categories.idr   r   r   r   r   r6   r#   KnowledgeDocumentcategoryzKnowledgeCategory.idchildrenremote_sidebackrefforeign_keysN)r%   r&   r'   r(   r   r
   r	   knowledge_base_idr   r)   r   r+   	parent_idr,   color
sort_orderr   r"   	documentsparentr7   r8   r9   r!   r!   %   s!       *Mw

3G(H(HSWXXX6&&++...D&---Kw

+D E EPTUUUI6&&**t,,,DF66"::---E+++J!\/,OOON0LLLI\*[	  FFFr8   r!   c                   \   e Zd ZdZ ee ed          dd          Z e ed          d          Z	 e ed          dd	          Z
 eed          Z eed          Z eed
          Z e ed          d          Z e ed          d          Z edd          ZdS )TagCategorytag_categoriesr   FTr   r   r   r   r   uniquer   r   r   KnowledgeTagr?   r#   N)r%   r&   r'   r(   r   r
   r	   r3   r   r)   r*   r   r+   part_numberrH   r,   rG   r   tagsr7   r8   r9   rL   rL   8   s        $Mw

+> ? ?%W[\\\I6&&++...D6&&**uT:::D&---K&5111K+++J6&&**t,,,DF66"::---E<zBBBDDDr8   rL   c                      e Zd ZdZ ee ed          dd          Z e ed          dd          Z	 ee
d          Z ee ed	          dd          Z ee ed
          dd          Z e ed          dd          Z eedd          Z eed          Z eed          Z eed          Z eed          Z e ed          dd          Z e ed          dd          Z eed          Z e ed          d          Z edd          Z ed ddeg          Z eddd          ZdS )rP   knowledge_tagsr   FTr   r   rN   r   knowledge_tags.idztag_categories.id)r   r   r   g      ?r   u   🏷️)r   r   r   z#6366f1r   rL   rR   r#   zKnowledgeTag.idr@   rA   r>   document_tags)	secondaryr$   N)r%   r&   r'   r(   r   r
   r	   r3   r   r)   r   r+   rF   tag_category_idtag_coder   is_predefined	is_systemr   keywordsr   search_weightsearch_priorityr,   rG   rH   r.   r   r?   rJ   rI   r7   r8   r9   rP   rP   E   s       $Mw

+> ? ?%W[\\\I6&&**uT:::D&---Kw

+> ? ?$VZ[[[IfWjj1D&E&EPT\`aaaOvffRjj4t<<<HF7E>>>Mw...IvdT***HF5#...MfWa000O6&&**tY???DF66"::i@@@E+++JVFF2JJ	222F|M&AAAH\$5zYbXc  F 0O\bcccIIIr8   rP   c                       e Zd ZdZ ee ed          dd          Z ee ed          dd          Z e e	d          d          Z
 eed          Z eed	
          Z eed
          Z eed
          Z edd          ZdS )TagAutoRuletag_auto_rulesr   FTr   rU   r   r   g333333?r   r   rP   
auto_rulesrC   N)r%   r&   r'   r(   r   r
   r	   r3   tag_idr   	rule_typer   rule_configr   confidence_thresholdr   	is_activepriorityr   tagr7   r8   r9   r`   r`   ]   s        $Mw

+> ? ?%W[\\\IVGZZ(;<<uTXYYYFvvbzzE222I&...K!6%555w---Ivgq)))H
,~|
<
<
<CCCr8   r`   c                      e Zd ZdZ e ed          dd          Z eed          Z eed          Z	 ee
 ed          dd          Z ee
 ed          dd          Z ee
 ed	          dd          Z e ed          d          Z e ed
          d          Z e ed
          d          Z e ed          d          Z e ed          d          Z eed          Z ee
d          Z eed          Z e ed          d          Z e ed          d          Z ee
d          Z eed          Z e ed          d          Z ee
d          Z e ed          d          Z ee
d          Z ee
d          Z  e ed          d          Z! ee
dd          Z" eed          Z# eed          Z$ ee
d          Z% ee
d          Z& ee
d          Z' e ed          d          Z( e ed          d          Z) e ed          d          Z* ee
d          Z+ ee
d          Z, ee-d          Z. ee-d          Z/ ee-d          Z0 e ed          d          Z1 ee2d          Z3 ee
 edd          d          Z4 ee2d          Z5 eed          Z6 ee2d          Z7 ee8d          Z9 e ed          dd          Z: ee
d          Z; e<dd          Z= e<d eg!          Z> e<d"d#$          Z? e<d%d&d'(          Z@ e<d)d&d'(          ZAd*S )+r>   knowledge_documents   FTr   r   r=   r   r     r   r   draftr   r   r   pending	automatici     	recursive   )r   r   knowledge_documents.idzSET NULLondelete@      r!   rI   r#   UserrD   rP   rV   )rW   DocumentVectordocumentzall, delete-orphan)r$   cascadeDocumentVersionN)Br%   r&   r'   r(   r   r   titler   contentsummaryr
   r	   category_idr3   	author_idsourcereference_url	file_path	file_typer.   r   r/   
view_countis_vectorizedvector_modelvectorization_statusvectorization_progressvectorization_errorr5   r2   segmentation_mode
chunk_sizechunk_overlapsplitter_typewindow_sizeenable_parent_childenable_reference_extractioncharacter_countrecall_countdata_center_doc_iddoc_type
doc_numberissuing_authoritydoc_number_yeardoc_number_serialr   
issue_dateeffective_dateexpire_date
doc_statusr   supersedes_doc_idssuperseded_by_doc_idtax_type_tagshas_attachmentattachment_typesr   parse_quality_scorecontent_hashversion_numberr   r?   authorrR   vectorsversionsr7   r8   r9   r>   r>   i   s       )MF66#;;d;;;EfTE***GfTD)))G&**-F"G"GRV^bcccKw

+> ? ?%W[\\\Iw

+< = =UYZZZIVFF3KK$///FF66#;;666Mvvc{{T222IvvbzzD111IVFF2JJ000Fw---I+++JF7E222M6&&++555L!6&&**i@@@#VGQ777 &5556&&**i888L6'1---Lvvbzz;???...JF7C000MF66"::{;;;M&!d;;;K &%888"(&$"?"?"?fWa000O6'1---L$777vffRjj4000Hsd333Jvvc{{T:::fWt444Ow666t,,,JVD4000N&---Kr

T222Jt444!64zJJJUY   F4$///MVGU333NvdT222 &6666&&**t4@@@LVGQ///N|/LLLH\&	{;;;F</BBBDl=Q  G |*>R  HHHr8   r>   c                       e Zd ZdZddiZ ee edd          d          Z ee edd          d          Z	d	Z
d	S )
DocumentTagrV   extend_existingTru   CASCADErv   )primary_keyrU   N)r%   r&   r'   r(   __table_args__r   r
   r	   document_idrd   idr7   r8   r9   r   r      sy        #M'.N&4yIIIW[  K VGZZ(;iPPP^bcccF	BBBr8   r   c                   >   e Zd ZdZ ee ed          d          Z eed          Z ee	d          Z
 eed          Z e ed          d          Z e ed          d          Z e ed          dd	          Z eed
dd          Z e ed          d          Z e ed          d          Z e ed          d          Z e ed          dd	          Z e ed          d          Z e ed          d          Z eed          Z e ed          dd	          Z e ed          d          Z eed          Z e ed          dd	          Z e ed          d          Z e dd          Z!dS )r|   document_vectorsru   Fr   r   r   Tr   r   false)server_defaultr   r   r   r   rn   r>   r   r#   N)"r%   r&   r'   r(   r   r
   r	   r   chunk_indexr   
chunk_textr   vectorr   	milvus_id
model_nameparent_chunk_idr   	is_parentchunk_levelprev_chunk_idnext_chunk_idr   r   r   
referenceschunk_idr   r   issue_date_int
chunk_type
media_pathr   r}   r7   r8   r9   r|   r|      s;       &M&**-E"F"FQVWWWK&!,,,Ku---JVD4(((Fvvc{{T222Ise444JfVVC[[4tDDDOwwdSSSI&d333KF66#;;666MF66#;;666MvffRjj4t<<<Hsd333Jvvc{{T:::t,,,JvffSkkD===Hr

T222JVJ666Nr

T>>>Jsd333J|/	JJJHHHr8   r|   c                      e Zd ZdZ ee ed          d          Z eed          Z e e	d          d          Z
 eed          Z eed          Z ee ed          d          Z edd	
          Z edeg          ZdS )r   document_versionsru   Fr   rm   Tr   r>   r   r#   rz   r{   N)r%   r&   r'   r(   r   r
   r	   r   r   r   r   r   r   change_summary	editor_idr   r}   editorr7   r8   r9   r   r      s        'M&**-E"F"FQVWWWKVGe444NF66#;;///EfTE***GVD4000Nw

+< = =NNNI|/
KKKH\&	{;;;FFFr8   r   c                      e Zd ZdZ eed          Z eed          Z ee e	d          d          Z
 eed          Z eed          Z eed          Z e ed          d          Z eed          Z eed          Z e ed	          d
          Z ee e	d          d          Z ed          Z edeg          ZdS )KnowledgeQAknowledge_qaFr   r=   Tr   r   r   r   activer   r!   rz   r{   N)r%   r&   r'   r(   r   r   questionanswerr
   r	   r   r   related_documentsr   r   question_vectorr   r   	use_counthelpful_countr.   r4   r   r?   creatorr7   r8   r9   r   r      sA       "MvdU+++HVD5)))F&**-F"G"GRVWWWKtd333F7E222MfTD111O6&&++555Lw***IF7A...MVFF2JJ111F,=!>!>OOOJ|/00Hl6===GGGr8   r   c                      e Zd ZdZ ee ed          dd          Z e ed          d          Z	 e ed          d          Z
 e ed          d          Z eed          Z e ed	          d          Z eed
          Z eed
          Z eed          Z edd          Z eddd          fZdS )KnowledgeMetadataFieldknowledge_metadata_fieldsr<   FTr   r   r   r   rn   r   r   r   metadata_fieldsrc   rE   	field_keyuq_kb_field_keyr)   N)r%   r&   r'   r(   r   r
   r	   rE   r   
field_namer   
field_typer   field_optionsdefault_valuer   is_requiredrH   r   r+   r   r"   r   r   r7   r8   r9   r   r      s1       /M011E   se444Jvvc{{U333Ir

U333JF4$///MF66#;;666M&%000K+++J&---K!\/;LMMMN&&':KN_```bNNNr8   r   c                       e Zd ZdZ ee ed          dd          Z ee ed          dd          Z ee	d          Z
 edd	
          Z ed          Z eddd          fZdS )DocumentMetadataValuedocument_metadata_valuesru   FTr   zknowledge_metadata_fields.idr   r>   metadata_valuesrc   r   r   field_iduq_doc_fieldr   N)r%   r&   r'   r(   r   r
   r	   r   r   r   valuer   r}   fieldr   r   r7   r8   r9   r   r      s        .M&**-E"F"FQV^bcccKv:;;eSW  H F4$'''E|/9JKKKHL122E&&}j~VVVXNNNr8   r   c                       e Zd ZdZ ee ed          dd          Z e ed          d          Z	 ee
d          Z eed          Z eed          ZdS )	GraphBuildStatusgraph_build_statusr<   FTr   r   r   N)r%   r&   r'   r(   r   r
   r	   rE   r   r.   r   error_message
node_count
edge_countr7   r8   r9   r   r     s        (M011E   VFF2JJ...FF4$///M$///J$///JJJr8   r   c                       e Zd ZdZ ee ed          dd          Z e ed          d          Z	 e ed          d          Z
 eed          Zd	S )
GraphEntitygraph_entitiesr<   FTr   r   r   rn   N)r%   r&   r'   r(   r   r
   r	   kb_idr   entity_typeentity_namer   
propertiesr7   r8   r9   r   r     s        $MF7JJ';<<uTXYYYE&t444K&t444Kt,,,JJJr8   r   c                       e Zd ZdZ ee ed          dd          Z e ed          d          Z	 ee
d          ZdS )	KnowledgeBaseMetadataknowledge_base_metadatar<   FTr   rr   r   N)r%   r&   r'   r(   r   r
   r	   rE   r   keyr   r   r7   r8   r9   r   r     sp        -M011E   &u
-
-
-CF4$'''EEEr8   r   c                       e Zd ZdZ ee ed          dd          Z e ed          d          Z	 e ed          d          Z
 e ed          d          Z eed	          Z eed
	          ZdS )KnowledgeBaseMetadataFieldknowledge_base_metadata_fieldsr<   FTr   rr   r   r   r   r   Nr%   r&   r'   r(   r   r
   r	   rE   r   r   field_labelr   r   r   rH   r7   r8   r9   r   r      s        4M011E   vvc{{U333I&t444Kr

T222J&%000K+++JJJr8   r   c                       e Zd ZdZ ee ed          dd          Z e ed          d          Z	 e ed          d          Z
 e ed          d          Z eed	          Z eed
	          ZdS )MetadataFieldr   r<   FTr   rr   r   r   r   r   Nr   r7   r8   r9   r  r  ,  s        %M011E   vvc{{U333I&t444Kr

T222J&%000K+++JJJr8   r  N)!
sqlalchemyr   r   r   r   r   r   r	   r
   r   r   r   sqlalchemy.ormr   app.models.baser   r   r!   rL   rP   r`   r>   r   r|   r   r   r   r   r   r   r   r   r  r7   r8   r9   <module>r     s                            ( ' ' ' ' ' % % % % % %T T T T TI T T T$    	   &
C 
C 
C 
C 
C) 
C 
C 
Cd d d d d9 d d d0	= 	= 	= 	= 	=) 	= 	= 	=; ; ; ; ;	 ; ; ;|    )   K K K K KY K K K2	< 	< 	< 	< 	<i 	< 	< 	<> > > > >) > > >"c c c c cY c c c"	Y 	Y 	Y 	Y 	YI 	Y 	Y 	Y0 0 0 0 0y 0 0 0- - - - -) - - -( ( ( ( (I ( ( (	, 	, 	, 	, 	, 	, 	, 	,	, 	, 	, 	, 	,I 	, 	, 	, 	, 	,r8   