MCPcopy Create free account
hub / github.com/encoder-run/operator / setCodeEmbeddings

Function setCodeEmbeddings

cmd/repositoryembedder/main.go:598–630  ·  view source on GitHub ↗
(r *redisearch.Client, embeddings embedder.CodeEmbeddingsResponse, namespace string)

Source from the content-addressed store, hash-verified

596}
597
598func setCodeEmbeddings(r *redisearch.Client, embeddings embedder.CodeEmbeddingsResponse, namespace string) error {
599 // Use a redis pipeline to set all embeddings in one go
600 docs := make([]redisearch.Document, 0)
601 for filePath, embs := range embeddings.Results {
602 for _, emb := range embs.Embeddings {
603 // Create a unique key for each embedding
604 key := fmt.Sprintf("%s:embedding:%s:%s:%d", namespace, "code", emb.FileHash, emb.ChunkID)
605 doc := redisearch.NewDocument(key, 1.0)
606 doc.Set("fileHash", emb.FileHash)
607 doc.Set("filePath", filePath)
608 doc.Set("chunkID", emb.ChunkID)
609 doc.Set("startIndex", emb.StartIndex)
610 doc.Set("endIndex", emb.EndIndex)
611 // Convert embedding float slice to bytes
612 buf := new(bytes.Buffer)
613 for _, val := range emb.Embedding {
614 if err := binary.Write(buf, binary.LittleEndian, val); err != nil {
615 return err // Handle error appropriately
616 }
617 }
618 doc.Set("embedding", buf.Bytes())
619 docs = append(docs, doc)
620 }
621 }
622
623 if err := r.IndexOptions(redisearch.IndexingOptions{
624 Replace: true,
625 }, docs...); err != nil {
626 return err
627 }
628
629 return nil
630}
631
632func newScheme() *runtime.Scheme {
633 scheme := runtime.NewScheme()

Callers 1

processRedisEmbeddingsFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected