faiss-minio-connection

Combining FAISS work with S3 cloud storage.


Keywords
FAISS, Minio
License
MIT
Install
pip install faiss-minio-connection==0.0.3

Documentation

FAISS Minio Connection

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ FAISS Minio Connection?

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ/Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² S3 Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ - Minio.


Quick Guide

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ класса

Для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ класса, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π°ΠΊΠ΅Ρ‚Ρƒ Minio ΠΈ embeding_model, котрая Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΈΠΏ HuggingFaceInstructEmbeddings:

famin = FaissMinio(embedding_model=embedding_model, 
                   minio_host=HOST_MINI0,
                   minio_port=PORT_MINIO,
                   minio_bucket=BUCKET_NAME,
                   login_minio=LOGIN_MINIO,
                   password_minio=PASSWORD_MINIO,
                   collection_name=NAME_COLLECTION)

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  • .from_documents(docs_chunk:List[Document])
  • .as_retriever(search_type:str, search_kwargs:dict)

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π±Π°Π·Ρ‹ ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

vector_db = famin.from_documents(docs_chunk=doc_chunks)

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ происходит Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π² Minio. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ создаСтся, Ссли Π΅Π΅ Π½Π΅Ρ‚, ΠΏΠ°ΠΏΠΊΠ° "db_collections" Π² Π½Π΅ΠΉ Π±ΡƒΠ΄ΡƒΡ‚ хранится всС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ созданныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π’ этой ΠΏΠ°ΠΏΠΊΠ΅ создаСтся ΠΏΠ°ΠΏΠΊΠ° с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ "NAME_COLLECTION" ΠΈ ΡƒΠΆΠ΅ Π² Π½Π΅ΠΉ Π±ΡƒΠ΄ΡƒΡ‚ хранится всС Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ "json".

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ располоТСния Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π±Π°ΠΊΠ΅Ρ‚Π΅: "test_bucket/db_collections/test_collection/"

Π”Π°Π½Π½Ρ‹Π΅ состоят ΠΈΠ·:

  • docstore_db.json
  • index_db_binary.json
  • index_to_docstore_id.json

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ€Π΅Ρ‚Ρ€ΠΈΠ²Π΅Ρ€Π° ΠΈΠ· Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π±Π°Π·Ρ‹

retriver = famin.as_retriever(search_type="",
                              search_kwargs={})

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ происходит Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ создаСтся Ρ€Π΅Ρ‚Ρ€ΠΈΠ²Π΅Ρ€. Π”Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Π²ΠΈΠ΄ для FAISS. Π”Π°Π»Π΅Π΅ инициализируСтся Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… FAISS ΠΈ выполняСтся Π΅Π΅ встроСнная функция .as_retriever:

faiss = FAISS(embedding_function=EMBEDDING_MODEL,
              index=index_db_binary,
              docstore=docstore_db,
              index_to_docstore_id=index_to_docstore_id,
                 )