CocoIndex podržava Qdrant - Интеграција има високе перформансе Руст стацк са интензивном обрадом од краја до краја за скалу и свежину података. 🎉 управо смо покренули нашу најновију промену која се бави са Qdrant из CocoIndex индексирање протока. nativno automatic target schema setup То значи да програмери не морају да раде било какву конфигурацију шеме - укључујући постављање табеле, типа поља, кључева и индекса за циљане продавнице. Инсталација је резултат закључења шеме из дефиниције протока ЦоцоИндек-а. Већ је подржана са нативном интеграцијом са Постгрес, Нео4ј и Кузу. Ово омогућава беспрекорно функционисање између индексирања и циљаних продавница. Нема више ручног подешавања Раније су корисници морали ручно да креирају колекцију пре индексирања: curl -X PUT 'http://localhost:6333/collections/image_search' \ -H 'Content-Type: application/json' \ -d '{ "vectors": { "embedding": { "size": 768, "distance": "Cosine" } } }' Са новом променом, корисници не морају да раде ручно управљање колекцијом. Kako funkcioniše U skladu sa modelom programiranja toka podataka, korisnik definiše tok, gde svaki korak ima informacije o tipu podataka izlaza, a sledeće podešavanje uzima informacije o tipu podataka. (~ 100 линија питона од краја до краја) Пример Укратко, може се представити као следећи линеарни графикон. У декларативном току података као што је горе Циљ = формула (Извор) То подразумева и податке и очекивани циљни шема. Једна дефиниција тока покреће и обраду података (укључујући управљање променама) и подешавање циљног шема – пружајући један извор истине и за податке и за шему. Сличан начин размишљања о томе је као систем типа који закључује тип података од оператора и уноса - (На пример, у мировању Тип инфериорности U toku indeksiranja, izvoz ugrađenih stavki i metapodataka direktno u Qdrant je sve što vam je potrebno. doc_embeddings.export( "doc_embeddings", cocoindex.storages.Qdrant(collection_name=QDRANT_COLLECTION), primary_key_fields=["id"], ) Да би покренули процес ЦоцоИндек, корисници морају прво покренути инсталацију, која покрива сву потребну инсталацију за било који потребан бацкенд. cocoindex setup main.py cocoindex setup Креирајте нове позадине за подешавање шеме, као што су табеле / колекције / итд. Промените постојеће бацкенде са променом шеме - покушаће да изврши не-деструктивно ажурирање ако је могуће, нпр. примарни кључеви се не мењају и циљају подршку за складиштење ажурирањем шеме на лицу места (нпр. Спустите стале бацкендес. Развијачи онда трче cocoindex update main.py [-L] да започнете индексирање цевовода (-Л за дуго трајање). Ако сте направили логичке ажурирања која захтевају ажурирање шеме на циљној продавници, не брините. поново након ажурирања логике. КоцоИндекс ће закључити шему за циљну продавницу. Као избор дизајна, CocoIndex неће ажурирати било коју шему без ваше најаве, јер нека ажурирања шема могу укључивати деструктивне промене. cocoindex update cocoindex setup Da bi spustio tok, trčao bi cocoindex drop main.py спуштају задње крајеве када спуштају ток. cocoindex drop Сви бацкенд ентитети за циљне продавнице - као што су ПостгреСКЛ табела или Кдрант колекција - су у власништву тока као изведени подаци, тако да ће и они бити уклоњени. Зашто аутоматско закључивање циљане шеме? Pitanje bi zaista trebalo da bude, zašto ne? Традиционални начин је да корисници потпуно схвате и Да бисте сами поставили / ажурирали циљну шему, укључујући специфичну шему. Потоци индексирања често покривају више система. На пример: Када Kako На мети продавнице: Векторске базе података (PGVector, Qdrant, итд.) Relativne baze podataka (PostgreSQL) Графичке базе података (Neo4j, Kuzu итд.) Типови података које изводите и циљна шема морају се подударати. Ako postoji interno praćenje stanja, npr. u slučaju inkrementalne obrade Интерне табеле (стате трацкинг) Досадно је и болно то радити ручно, јер сви ови системи морају да се слажу о шеми и структури. Ручно подешавање и синхронизација шема. Чврста координација између програмера, Девопса и инжењера података - људи који пишу код можда нису исти људи који га располажу / покрећу у организацији. Дебаггирање неправилности између логике протока и слојева складиштења. Ролоут производње је типично стресан. Свако додавање покретних делова у систем индексирања цевовода додаје трење - сваки несклад између логике и шеме складиштења може довести до тихих неуспјеха или суптилних грешака. У неким случајевима то нису тихи неуспјеси. Неуспех би требао бити очигледан, на пример, ако корисници забораве да креирају табелу или колекцију, то ће бити само грешка када пишете циљу. Неки други сценарији могу довести до не-очигледних проблема, тј. из синхронизације између складиштења за унутрашње државе и циљ. нпр. корисници могу да напусте ток и рекреирају, али не и за циљ; или да напусте и рекреирају циљ, али не и за унутрашње складиштење. Континуиране промене у систему уводе упорне болове у производњу. Сваки пут када се проток података ажурира, циљна шема мора да се развија заједно - чинећи га Једнократно досадан процес, али стални извор трења. ne U realnim sistemima podataka, nova polja često zahtevaju indeksiranje, stara polja se deprekuju, a transformacije se razvijaju. Ako se tip promeni, shema mora da se prilagodi. Индексирање инфраструктуре захтева конзистентност података између индексирања цевовода и циљних продавница, а што су мање лабави крајеви, то ће бити лакше и робусније. Наша визија: Декларативно, индексирање засновано на протоку Када смо покренули ЦоцоИндек, наша визија је била да омогућимо програмерима да дефинишу трансформацију података и логику индексирања декларативно - а ЦоцоИндек ради остало. . automatic schema setup Ми смо посвећени бризи о основној инфраструктури, тако да програмери могу да се фокусирају на оно што је важно: податке и логику. Ако сте се икада борили са одржавањем ваше логике индексирања и подешавања складишта у синхронизацији - били смо тамо.