CocoIndex поддържа Qdrant - интеграцията се характеризира с високопроизводителна Rust Stack с нарастваща обработка от край до край за мащаб и свежест на данните. 🎉 Ние току-що разгърнахме най-новата ни промяна, която се справя с Qdrant от CocoIndex индексиране поток. роден automatic target schema setup Това означава, че разработчиците не трябва да правят никакви настройки на схеми - включително настройка на таблица, тип поле, ключове и индекс за целеви магазини. Настройката е резултат от схема извод от дефиницията на потока на CocoIndex. Тя вече се поддържа с native интеграция с Postgres, Neo4j и Kuzu. Това позволява по-безпроблемна работа между индексирането и целевите магазини. Няма повече ръчни настройки Преди това потребителите трябвало ръчно да създават колекцията, преди да индексират: curl -X PUT 'http://localhost:6333/collections/image_search' \ -H 'Content-Type: application/json' \ -d '{ "vectors": { "embedding": { "size": 768, "distance": "Cosine" } } }' С новата промяна потребителят не трябва да извършва ръчно управление на колекцията. Как работи Следвайки модела за програмиране на потока на данни, потребителят дефинира поток, където всяка стъпка има информация за изходния тип данни, а следващата настройка включва информация за типа данни. (~ 100 реда на Python край до край) Пример Накратко, тя може да бъде представена като следната линейна графика. В декларативния поток от данни, както е по-горе Цел = Формула (Източник) Той предполага както данни, така и очакваната целева схема. Едно определение на един поток задвижва както обработката на данни (включително обработката на промени), така и настройката на целевата схема, като осигурява един източник на истина както за данните, така и за схемата. (например за почивка) Видове инфериорни В потока за индексиране, експортирането на вграждания и метаданни директно в Qdrant е всичко, от което се нуждаете. doc_embeddings.export( "doc_embeddings", cocoindex.storages.Qdrant(collection_name=QDRANT_COLLECTION), primary_key_fields=["id"], ) За да стартирате процес на CocoIndex, потребителите трябва първо да изпълнят инсталацията, която обхваща цялата необходима инсталация за всички необходими backends. cocoindex setup main.py cocoindex setup Създаване на нови задвижвания за конфигурацията на схемата, като например таблици/колекции/и т.н. Промяна на съществуващите backend с промяна на схемата - тя ще се опита да направи неразрушителна актуализация, ако е възможно, напр. първичните ключове не се променят и поддръжката на целевото съхранение е актуализирана на място (напр. ALTER TABLE в Postgres), в противен случай пада и възпроизвежда. Изхвърлете постоянните задници. Разработчиците след това бягат cocoindex update main.py [-L] за да стартирате индексиращ тръбопровод (-L за дълъг ход). Ако сте направили актуализации на логиката, които изискват да се актуализира схемата в целевия магазин, не се притеснявайте. отново след актуализацията на логиката. CocoIndex ще заключи схемата за целевия магазин. като избор на дизайн, CocoIndex няма да актуализира никаква схема без ваше уведомление, тъй като някои актуализации на схемата могат да включват разрушителни промени. cocoindex update cocoindex setup За да хвърлиш поток, ще тичаш cocoindex drop main.py Намаляване на задните крайници, когато тече поток. cocoindex drop Всички бек-енд субекти за целевите магазини – като например таблица на PostgreSQL или колекция на Qdrant – са собственост на потока като получени данни, така че те също ще бъдат премахнати. Защо автоматична целева схема за извод? Въпросът наистина трябва да бъде, защо не? Традиционният начин е потребителите напълно да разберат и да настроите/актуализирате самата целева схема, включително конкретната схема.Потоците за индексиране често обхващат няколко системи. когато Как За целта на магазина: Векторни бази данни (PGVector, Qdrant и др.) Релационни бази данни (PostgreSQL) Графични бази данни (Neo4j, Kuzu и др.) Типовете данни, които извличате, и целевата ви схема трябва да съвпадат. Ако има някакво вътрешно проследяване на състоянието, например в случай на увеличена обработка Вътрешни таблици (проследяване на състоянието) Това е скучно и болезнено да се направи ръчно, тъй като всички тези системи трябва да се съгласят по схема и структура. Ръчно настройване и синхронизиране на схеми. Тясна координация между разработчиците, DevOps и инженерите на данни - хората, които пишат кода, може да не са същите хора, които го разгръщат / изпълняват в една организация. Дебугиране на несъответствия между логиката на потока и слоевете за съхранение. Производственият ритъм обикновено е стресиращ. Всяко добавяне на движещи се части към системата за индексиране добавя триене - всяко несъответствие между логиката и схемата за съхранение може да доведе до мълчаливи неуспехи или фини грешки. В някои случаи това не са мълчаливи неуспехи. неуспехът трябва да е очевиден, например ако потребителите са забравили да създадат таблица или колекция, това просто ще се обърка, когато пишете на целта. Някои други сценарии могат да доведат до не-очевидни проблеми, т.е. синхронизиране между съхранението за вътрешни състояния и целта. например потребителите могат да пуснат потока и да възпроизвеждат, но не и за целта; или да пуснат и възпроизвеждат целта, но не и за вътрешното съхранение. Непрекъснатите промени в системата въвеждат постоянни болки в производството. Всеки път, когато потокът от данни се актуализира, целевата схема трябва да се развива заедно – като го прави Еднократно досаден процес, но непрекъснат източник на триене. не В реалните системи за данни, новите полета често се нуждаят от индексиране, старите се обезценяват, а трансформациите се развиват.Ако типът се промени, схемата трябва да се адаптира.Тези промени увеличават сложността и подчертават необходимостта от по-устойчива, адаптивна инфраструктура. Инфраструктурата за индексиране изисква съгласуваност на данните между индексиращия тръбопровод и целевите хранилища и колкото по-слаби са краищата, толкова по-лесно и по-устойчиво ще бъде. Нашата визия: Декларативно, базирано на потока индексиране Когато стартирахме CocoIndex, нашата визия беше да позволим на разработчиците да определят логиката за трансформация на данни и индексиране декларативно – а CocoIndex прави останалата част. . automatic schema setup Ние се ангажираме да се грижим за основната инфраструктура, така че разработчиците да могат да се съсредоточат върху това, което има значение: данните и логиката.Ние сме сериозни, когато казваме, че можете да имате готов за производство тръбопровод за данни за AI с ~ 100 реда код на Python. Ако някога сте се борили с поддържането на вашата логика за индексиране и настройките за съхранение в синхрон - ние бяхме там.