A Q2BSTUDIO, empresa especialitzada en desenvolupament i serveis tecnològics, sempre estem explorant eines innovadores que optimitzin el processament i anàlisi de dades. Avui volem parlar sobre CocoIndex, un marc de treball ETL de codi obert dissenyat per preparar dades per a aplicacions d'intel·ligència artificial com cerca semàntica i RAG (retrieval-augmented generation).
?? Característiques Clau:
- Programació basada en flux de dades
- Suport per a lògica personalitzada, permetent integrar diferents mètodes de fragmentació, generació d'embeddings i emmagatzematge vectorial
- Actualitzacions incrementals amb gestió d'estat integrada per evitar la recomputació innecessària
- SDK en Python amb nucli en RUST
?? Com Començar:
- Instal·lació: Per començar, instal·la la biblioteca de CocoIndex en Python:
pip install cocoindex
- Configuració de Postgres amb l'extensió pgvector: Assegura't de tenir Docker Compose instal·lat i després inicia una base de dades Postgres:
docker compose -f <(curl -L https://raw.githubusercontent.com/cocoindex-io/cocoindex/refs/heads/main/dev/postgres.yaml) up -d
- Definir el flux d'indexació: Crea un flux per indexar les teves dades. Per exemple:
@cocoindex.flow_def(name='TextEmbedding')
def text_embedding(flow_builder: cocoindex.FlowBuilder, data_scope: cocoindex.DataScope):
data_scope['documents'] = flow_builder.add_source(cocoindex.sources.LocalFile(path='markdown_files'))
doc_embeddings = data_scope.add_collector()
with data_scope['documents'].row() as doc:
doc['chunks'] = doc['content'].transform(
cocoindex.functions.SplitRecursively(language='markdown', chunk_size=300, chunk_overlap=100))
with doc['chunks'].row() as chunk:
chunk['embedding'] = chunk['text'].transform(
cocoindex.functions.SentenceTransformerEmbed(model='sentence-transformers/all-MiniLM-L6-v2'))
doc_embeddings.collect(filename=doc['filename'], location=chunk['location'],
text=chunk['text'], embedding=chunk['embedding'])
doc_embeddings.export(
'doc_embeddings',
cocoindex.storages.Postgres(),
primary_key_fields=['filename', 'location'],
vector_index=[('embedding', cocoindex.VectorSimilarityMetric.COSINE_SIMILARITY)])
A Q2BSTUDIO ens especialitzem en solucions tecnològiques a mida i estem compromesos amb la implementació d'eines innovadores com CocoIndex per optimitzar processos d'anàlisi de dades. Si estàs buscant millorar l'eficiència en la preparació de dades per a intel·ligència artificial, contacta'ns i descobreix com podem ajudar-te en la transformació digital de la teva empresa.



