Aka blog tuqinx kunjams RAG ukatakix codebase ukar CocoIndex ukamp indexañax uk uñacht’ayapxäma. CocoIndex ukax mä herramienta ukawa, ukax índice ukat jiskt’äwinak datos ukar yanapt’añatakiwa. Ukax mä marco ukham apnaqañatakiw wakicht’ata, juma pachpaw pipeline de datos ukar lurañataki. CocoIndex ukax código base chunking ukaruw yanapt’i, nativo Tree-sitter ukampiw yanapt’asi. Quqanak uñjir jaqi ukax mä parser generador herramienta ukat mä incremental parsing biblioteca ukawa, ukax Rust 🦀 - ukan utji. CocoIndex ukax Rust ukan mayacht’asiw Tree-sitter ukamp luratawa, ukhamat código ukar sum uñakipt’añataki ukhamarak sintaxis quqanak apsuñataki kunayman programación arunakataki. Quqa-sitter GitHub Codebase chunking ukax mä codebase ukar jisk’a, semánticamente significativo chunks ukar t’unjañ lurawiwa. CocoIndex ukax Tree-sitter ukan ch’amanchawinakap aprovecha, chiqpach sintaxis ukan estructura ukarjam amuyt’at chimpunak chimpuntañataki, jan ukax arbitrariu líneas ukar t’unjañataki. Ukatx uka semánticamente coherente chimpunakax sistemas RAG ukatakix mä índice juk’amp aski lurañatakiw apnaqasi, ukax juk’amp chiqaparu código apsuñapataki ukhamarak contexto juk’amp suma jark’aqañataki. Fast pass 🚀 - ukax taqpach codigo ukax jikxatasi . ~ 50 líneas de código Python ukakiw RAG pipeline ukatakix utji, uñakipt'añäni 🤗! akan mä warawara churapxañamawa, jiwasan lurawinakas munapxsta ukhax yanapt’apxita. Walpun yuspajarapxsma mä junt'u coco jamp'att'awimpi 🥥🤗. Github ukan CocoIndex ukar Nayraqata wakisirinaka Postgres ukax jan utjkchi ukhax, ukar uñakipt’añamawa . CocoIndex ukax Postgres uka apnaqi, índice de datos ukar apnaqañataki, jiwasax thakhi uñacht’äwisanx yaqha bases de datos ukar yanapt’añatakiw utji, ukax nayrar sartaskir ukanakas utjarakiwa. Yaqha bases de datos ukar munaschi ukhax mä jan ukax ukar lurasaw yatiyapxita. instalación guia GitHub jan walt’äw Discord CocoIndex ukar uñt’ayaña Flujo Mä base de código ukan uñakipañatakix cocoIndex flujo ukar qhanañcht’añäni ukat RAG ukar indexañäni. Aka pata tuqinkir diagrama de flujo ukax kunjams jiwasan código base ukar lurañasa uk uñacht’ayi: Sistema de ficheros local ukan código qillqatanakap uñakipt’aña Archivo extensiones ukanaka apsuña Quqa-sitter apnaqañampiw código semántico ukar jaljaña Sapa chunk ukatakix embeddings ukanakaw lurasi Mä vector base de datos ukan imaña, ukax apsuñataki Aka flujo ukax mä juk’a pacharuw phuqhachañäni. 1. Código base ukax mä phunchhawimp yapxatatawa @cocoindex.flow_def(name="CodeEmbedding") def code_embedding_flow(flow_builder: cocoindex.FlowBuilder, data_scope: cocoindex.DataScope): """ Define an example flow that embeds files into a vector database. """ data_scope["files"] = flow_builder.add_source( cocoindex.sources.LocalFile(path="../..", included_patterns=["*.py", "*.rs", "*.toml", "*.md", "*.mdx"], excluded_patterns=[".*", "target", "**/node_modules"])) code_embeddings = data_scope.add_collector() Aka uñacht’awina, cocoindex codebase ukax saphi directorio ukanx indexañatakiw saraski. Ukaxa thakhi mayjt’ayaña codebase ukaru indexaña munata. Taqi qillqatanakax , , , , , ukat directorios saltar ukanak ., target (saphin) ukat node_modules (kuna directorio manqhan) ukanakamp qalltasin extensiones ukanakampiw indexañäni. .py .rs .toml .md .mdx ukax mä tabla lurani aka jisk’a chiqanakampi, aka chiqan uñakipt’aña. flow_builder.add_source qillqatanaka (llave, tipo: ): qillqatan qillqat sutipa, sañäni filename str dir1/file1.md (tipo: ukax ukax ukhamawa , jan ukhamäkanixa ): qillqatan utjki uka content str binary False bytes 2. Sapa qillqata luraña yatiyawinak apthapiña ukhamaraki 2.1 Mä sutimpi jilxatayaña apsuña qillqat Nayraqatax mä luraw qhanañcht’añäni, sapa qillqat lurañ pachanx mä qillqat sutimp jilxatayañataki. funcionamiento personalizado ukatakix documentación ukaw jikxatasi . Aka chiqanx @cocoindex.op.function() def extract_extension(filename: str) -> str: """Extract the extension of a filename.""" return os.path.splitext(filename)[1] Ukatxa sapa archivo uñakipaña ukhamaraki yatiyawinak apthapiña. # ... with data_scope["files"].row() as file: file["extension"] = file["filename"].transform(extract_extension) Aka chiqanx arsuwi sutimp jach’anchawi apsuñasawa ukatx chiqan imañasawa. sañäni, qillqat sutix ukhamawa, ukhamawa. extension spec.rs extension .rs 2.2 Uka qillqataxa jaljañawa jisk’a t’aqaru Ukxarusti, uka qillqatarux jisk’a t’aqanakaruw jaljañäni. Jiwasax uka lurawimpiw qillqat chimpunak jaljañatakix apnaqapxta. Uka lurawitak qillqatanakax jikxatasi . SplitRecursively akan CocoIndex ukax Tree-sitter ukaruw yanapt’i, ukhamat aru parámetro pasañapataki. Taqi yanapt’at aru sutinaka ukat jilxatäwinak uñjañatakix, qillqatanaka uñakipt’añäni . Taqi jach’a arunakax yanapt’atawa, sañäni, Python, Rust, JavaScript, TypeScript, Java, C++, ukat juk’ampinaka, jan uñt’ayat jan ukax uñt’ayat arunakax jan yanapt’atäkchi ukhax sapuru qillqatjam uñjatäni. language aka chiqan with data_scope["files"].row() as file: # ... file["chunks"] = file["content"].transform( cocoindex.functions.SplitRecursively(), language=file["extension"], chunk_size=1000, chunk_overlap=300) 2.3 ukanaka ch’uqt’ayaña Chunks Jiwasax uka lurawimpiw chimpunak uñt’ayañäni. Uka lurawitak qillqatanakax jikxatasi . Ukax 12k modelos ukanakaw 🤗 ukamp yanapt'ata. Ukax mä modelo favorito ukarux ajlliñamawa. SentenceTransformerEmbed akan Hugging Face def code_to_embedding(text: cocoindex.DataSlice) -> cocoindex.DataSlice: """ Embed the text using a SentenceTransformer model. """ return text.transform( cocoindex.functions.SentenceTransformerEmbed( model="sentence-transformers/all-MiniLM-L6-v2")) Ukatx sapa chunk ukatakix, uka lurawimpiw uñakipt’añäni. ukatx apthapiriruw uñt’ayawinak apthapiña. code_to_embedding code_embeddings Jiwasax aka code_to_embedding lurawix apsuwaytanwa, jan ukax chiqak transform(cocoindex.functions.SentenceTransformerEmbed(...)) ukar jawsañat sipansa. Ukax kunatix aka maynix indexación flujo edificio ukat jiskt’äw apnaqir qhanañchäwimp chikancht’asiñ munapxta. Jan ukax, juk’amp jan ch’amäñapataki. Ukhamarakiw walikïskiwa aka extra función ukat chiqak lurañanak chiqaparu - janiw mä jach’a lurawikiti mä juk’a copia pegar, ukax proyecto ukatakiw lurapxta. quickstart with data_scope["files"].row() as file: # ... with file["chunks"].row() as chunk: chunk["embedding"] = chunk["text"].call(code_to_embedding) code_embeddings.collect(filename=file["filename"], location=chunk["location"], code=chunk["text"], embedding=chunk["embedding"]) 2.4 Uka apthapitawa chimpunakaxa Tukuyañatakix, mä tabla ukar embeddings ukanakax exportación uñacht’ayañäni. code_embeddings.export( "code_embeddings", cocoindex.storages.Postgres(), primary_key_fields=["filename", "location"], vector_index=[("embedding", cocoindex.VectorSimilarityMetric.COSINE_SIMILARITY)]) 3. Jiskt’awinaka apnaqiri wakicht’aña ukataki índice Jiwasax ukampiw índice ukar jiskt’asiñäni. Qhanacht’añatakix uka lurawinx parámetro ukaruw pasañasa. Ukax kunatix jiskt’äw apnaqirix pachpa modelo de incrustación ukampiw apnaqani, kunjamatix flujo ukan apnaqatäki ukhama. SimpleSemanticsQueryHandler code_to_embedding query_transform_flow query_handler = cocoindex.query.SimpleSemanticsQueryHandler( name="SemanticsSearch", flow=code_embedding_flow, target_name="code_embeddings", query_transform_flow=code_to_embedding, default_similarity_metric=cocoindex.VectorSimilarityMetric.COSINE_SIMILARITY) Jiskt’awi apnaqiri apnaqañataki mä jach’a lurawi qhananchaña. @cocoindex.main_fn() def _run(): # Run queries in a loop to demonstrate the query capabilities. while True: try: query = input("Enter search query (or Enter to quit): ") if query == '': break results, _ = query_handler.search(query, 10) print("\nSearch results:") for result in results: print(f"[{result.score:.3f}] {result.data['filename']}") print(f" {result.data['code']}") print("---") print() except KeyboardInterrupt: break if __name__ == "__main__": load_dotenv(override=True) _run() @cocoindex.main_fn() k’achacht’irix biblioteca ukaruw qalltaraki, ukax wakicht’awinakampiw pacha mayjt’awinakat apkatata. Qalltañatakix juk’amp yatxatañataki. documentación uñakipt’aña Ukax índice ukan wakicht'atawa & machaqar tukuyatawa 🎉 Jichhax jumanakax taqiniw wakicht'atäxapxtaxa! Aka kamachinak phuqhañamawa wakicht’añataki ukhamaraki machaqar tukuyañataki índice. python main.py cocoindex setup python main.py cocoindex update Ukax terminal ukan estado de actualizaciones de índice ukar uñjatawa Uka yantʼaña jisktʼa Aka pachanxa, servidor cocoindex ukax qalltasispawa ukatx RAG ukax apnaqañ pachax datos ukar uñtasitw lurasispa. Índice ukar yant’añatakix pä amtawiw utji: 1ri amtawi: ukan servidor índice ukar apnaqaña Terminal python main.py Kunawsatix jiskt’awi uñjktan ukhax thakhi jiskt’awiruw mantasma. sañäni: spec. Enter search query (or Enter to quit): spec Uka thakhinchawixa terminal ukanwa jikxatasi Kutt’ayat amuyunaka - sapa qillqt’atax puntuación (Cosine Similarity), archivo suti, ukat código fragmento ukanak uñt’ayi. cocoindex uksanxa, ukampiw jiskt’awimp indexat yatiyawinakampix niya kipkakïtap uñakipañataki. Yaqha métricas ukar mayjt’ayaraksnawa ukat jank’akiw yant’asma. cocoindex.VectorSimilarityMetric.COSINE_SIMILARITY Consine Similarity tuqit juk’amp yatxatañatakix uñakipt’añäni. Wiki 2 amtawi: CocoInsight ukax pipeline de datos ukat de datos ukanak amuyañatakiw apnaqasi índice CocoInsight ukax mä herramienta ukawa, ukax pipeline de datos ukat índice de datos ukanak amuyañatakiw yanapt’i. Ukax CocoIndex local servidor ukaruw cero datos retención ukampiw chikañchasi. CocoInsight ukax Early Access ukankiwa jichhax (Gratis) 😊 ¡Jumaw jikxatapxitu! Mä jank’ak 3 minutos video yatichäwi CocoInsight tuqit: . YouTube ukan uñt’ayaña CocoIndex ukax mä irnaqañapawa servidor ukan python main.py cocoindex server -c https://cocoindex.io Mä kutix servidor ukax apnaqatäxi ukhax navegador ukan jist’aratawa. Ukax mä servidor local CocoIndex ukaruw uñt’ayasi ukatx pipeline de datos ukat índice ukaruw uñt’ayasi. CocoInsight ukax Kupi tuqinxa, uñakipt’añatakix datos flujo ukax jiwasanakan qhanañchatawa. Ch’iqa tuqinxa, índice de datos ukax datos previsuales ukan uñjasi. Kawkïr filarus ch’iqt’asmawa uka datos ukar mantañ tuqit yatiyawinak uñjañataki, ukatx código chunks ukan taqpach contenido ukat incrustaciones ukanakap uñjañatakiwa. Ayllunkirinakaxa ¡Ayllunkirinakat ist’añax wali munatawa! ukat ukanakan jikxatapxasmawa. Github Discord Jumatix aka post ukat lurawinakas munassta ukhax mä warawara ⭐ ukamp yanapt’añamawa. Mä junt'u coco jamp'att'awimpiw yuspajarapxsma 🥥🤗. CocoIndex ukar Github ukan