
    W5j              	       f    d dl mZ d dlmZ d dlmZ  G d d      Zddededed	e	fd
Z
ded	efdZy)    )Pinecone)settings)OpenAIEmbeddingsc                       e Zd ZdefdZd Zy)PineconeServicesub_hotel_idc                     || _         t        j                  rNt        t        j                        | _        |dk(  rd| _        y |dk(  rd| _        y |dk(  rd| _        y d | _        y d | _        d | _        y )N)api_key124bayview123
plazabeach125baypalms)r   r   PINECONE_API_KEYr   pc
index_name)selfr   s     >/var/www/html/ls-ibe-bot-apis-staging/app/services/pinecone.py__init__zPineconeService.__init__   sw    ($$x'@'@ADG+75+@iDOVbfkVklDO  @L  PU  @Uq{DO  [_DODG"DO    c                 z    | j                   st        d      | j                   j                  | j                        S )Nz#Pinecone API key is not configured.)r   
ValueErrorIndexr   )r   s    r   	get_indexzPineconeService.get_index   s,    wwBCCww}}T__--r   N)__name__
__module____qualname__strr   r    r   r   r   r      s    #S #.r   r   queryr   kreturnc                 `  K   t        |      }|j                         }t        |        d{   }|j                  ||dd      }t	        |dg       xs g }g }|D ]K  }	t	        |	dd      xs i }
|
j                  d      xs |
j                  d	      }|s;|j                  |
       M |S 7 ~w)
zFQuery Pinecone directly and tolerate vectors missing metadata/content.)r   NTF)vectortop_kinclude_metadatainclude_valuesmatchesmetadatacontenttext)r   r   get_embeddingsr!   getattrgetappend)r!   r   r"   pinecone_serviceindexquery_vectorresultsr)   	documentsmatchr*   r+   s               r   retriever7      s     &LA&&(E'..Lkk
	  G gy"-3GI5*d39r,,y)AX\\&-A"  ' /s   +B.B,A?B.c                    K   t         j                  st        d      t        dt         j                  d      }|j	                  |        d {   }|S 7 w)Nz!OpenAI API key is not configured.ztext-embedding-3-smalli   )modelopenai_api_key
dimensions)r   OPENAI_API_KEYr   r   aembed_query)r!   r9   	embeddings      r   r-   r-   /   sT     ""<==&..E ((//I 0s   AAAAN)   )pineconer   app.configs.settingsr   langchain_openai.embeddingsr   r   r   intlistr7   r-   r    r   r   <module>rE      sM     ) 8. ."# S S  2 (8 r   