Team Ai
Apppublic

afulara/PythonicRAG-FastAPI-React

sourceHugging Faceapache-2.0updated 1y agoView on Hugging Face
0likes
vectordatabase.cpython-312.pyc37 linesDownload Raw Back to __pycache__
1�

2ʱ�g2���ddlZddlmZddlmZmZmZddlm	Z	ddl3Z4dejdejdefd�Z
Gd	�d5�Zedk(r�gd�Ze�Ze6j$ej'e��Zd
Zej+de��Zede�d�e�ej1d�Zede�ej+ded��Zede�d�e�yy)�N)�defaultdict)�List�Tuple�Callable)�EmbeddingModel�vector_a�vector_b�returnc��tj||�}tjj|�}tjj|�}|||zzS)z3Computes the cosine similarity between two vectors.)�np�dot�linalg�norm)rr	�dot_product�norm_a�norm_bs     �{/Users/aqsa/AI Projects/AIE6 Class Projects/AIE6-DeployPythonicRAG-Fastapi-react-app/backend/aimakerspace/vectordatabase.py�cosine_similarityrsE���&�&��8�,�K�
�Y�Y�^�^�H�
%�F�
�Y�Y�^�^�H�
%�F��&�6�/�*�*�c���eZdZddefd�Zdedejddfd�Ze	fdejd	e7d8edee
eeffd�Ze	dfd
ed	e9d10ededee
eeff11d�Zdedejfd�Zdeeddfd�Zy)�VectorDatabaseN�embedding_modelc�f�ttj�|_|xs12t	�|_y�N)rr�array�vectorsrr)�selfrs  r�__init__zVectorDatabase.__init__s"��"�2�8�8�,���.�B�.�2B��r�key�vectorr13c�"�||j|<yr)r)rrr s   r�insertzVectorDatabase.inserts��"����S�r�query_vector�k�distance_measurec	��|jj�D��cgc]\}}||||�f��}}}t|d�d��d|Scc}}w)Nc��|dS)N��)�xs r�<lambda>z'VectorDatabase.search.<locals>.<lambda>"s14��A�a�D�rT)r�reverse)r�items�sorted)rr#r$r%rr �scoress       r�searchzVectorDatabase.searchs\�� $�|�|�1�1�3�15���V��"�<��8�9�16��17��f�.�$�?���C�C��	18s�AF�19query_text�return_as_textc��|jj|�}|j|||�}|r|D�cgc]}|d��	c}S|Scc}w)Nr)r�
get_embeddingr0)rr1r$r%r2r#�results�results        r�search_by_textzVectorDatabase.search_by_text$sL���+�+�9�9�*�E���+�+�l�A�/?�@��4B��0�f��q�	�0�O��O��0s�Ac�:�|jj|d�Sr)r�get)rrs  r�retrieve_from_keyz VectorDatabase.retrieve_from_key/s���|�|����T�*�*r�list_of_textc���K�|jj|��d{���}t||�D]*\}}|j|t	j20|���,|S7�?�wr)r�async_get_embeddings�zipr"rr)rr;�21embeddings�text�	embeddings     r�abuild_from_listzVectorDatabase.abuild_from_list2s[�����/�/�D�D�\�R�R�22�"�<��<�	3�O�D�)��K�K��b�h�h�y�1�2�	3���S�s�A#�A!�AA#r)�__name__�23__module__�__qualname__rr�strrrr"r�intrrr�floatr0�boolr7r:rBr)rrrrs���C��C�#�#�#�r�x�x�#�D�#�&7�	24D��h�h�25D��26D�#�	27D�2829�e�C��J��	 �30D� &7�$�	P��	P��	P�#�		P�31�	P�32�e�C��J��	 �
	P�+�S�+�R�X�X�+��4��9��AQ�rr�__main__)�#I like to eat broccoli and bananas.z2I ate a banana and spinach smoothie for breakfast.z!Chinchillas and kittens are cute.z%My sister adopted a kitten yesterday.z:Look at this cute hamster munching on a piece of broccoli.�zI think fruit is awesome!)r$zClosest z vector(s):rKzRetrieved vector:T)r$r2z	 text(s):)�numpyr�collectionsr�typingrrr�#aimakerspace.openai_utils.embeddingr�asynciorrHrrrCr;�	vector_db�runrBr$r7�searched_vector�printr:�retrieved_vector�relevant_textsr)rr�<module>rXs���#�(�(�>��+����+�B�H�H�+��+�&�&�R�z���L�� �I�����I�6�6�|�D�E�I�	�A��.�.�/J�a�.�P�O�	�H�Q�C�{�33#�_�5� �2�2�-���34�35�/�0��-�-�#�q��.��N�36�H�Q�C�y�37!�>�2�1r