MCPcopy Create free account
hub / github.com/CodeBendKit/codeseek / upload_points

Method upload_points

rust-core/src/services/embedding_service.rs:694–769  ·  view source on GitHub ↗

Upload vectors to LanceDB

(&self, points: &[CodePoint])

Source from the content-addressed store, hash-verified

692
693 /// Upload vectors to LanceDB
694 async fn upload_points(&self, points: &[CodePoint]) -> Result<(), Box<dyn std::error::Error>> {
695 debug!("Uploading {} vectors to LanceDB", points.len());
696
697 if points.is_empty() {
698 return Ok(());
699 }
700
701 let vector_size = self.dimensions;
702
703 let schema = Arc::new(Schema::new(vec![
704 Field::new("id", DataType::Utf8, false),
705 Field::new("vector", DataType::FixedSizeList(
706 Arc::new(Field::new("item", DataType::Float32, true)),
707 vector_size
708 ), false),
709 Field::new("file_path", DataType::Utf8, false),
710 Field::new("symbol_name", DataType::Utf8, false),
711 Field::new("symbol_type", DataType::Utf8, false),
712 Field::new("language", DataType::Utf8, false),
713 Field::new("line_start", DataType::Int64, false),
714 Field::new("line_end", DataType::Int64, false),
715 Field::new("code_block", DataType::Utf8, false),
716 ]));
717
718 // Build arrays
719 let mut id_builder = StringBuilder::new();
720 let mut vector_builder = FixedSizeListBuilder::new(Float32Builder::new(), vector_size);
721 let mut file_path_builder = StringBuilder::new();
722 let mut symbol_name_builder = StringBuilder::new();
723 let mut symbol_type_builder = StringBuilder::new();
724 let mut language_builder = StringBuilder::new();
725 let mut line_start_builder = Int64Builder::new();
726 let mut line_end_builder = Int64Builder::new();
727 let mut code_block_builder = StringBuilder::new();
728
729 for p in points {
730 id_builder.append_value(&p.id);
731
732 // Ensure vector size matches
733 if p.vector.len() != vector_size as usize {
734 error!("Vector size mismatch: expected {}, got {}", vector_size, p.vector.len());
735 continue;
736 }
737
738 vector_builder.values().append_slice(&p.vector);
739 vector_builder.append(true);
740
741 file_path_builder.append_value(&p.file_path);
742 symbol_name_builder.append_value(&p.symbol_name);
743 symbol_type_builder.append_value(&p.symbol_type);
744 language_builder.append_value(&p.language);
745 line_start_builder.append_value(p.line_start);
746 line_end_builder.append_value(p.line_end);
747 code_block_builder.append_value(&p.code_block);
748 }
749
750 let batch = RecordBatch::try_new(schema.clone(), vec![
751 Arc::new(id_builder.finish()),

Callers 2

process_file_contentMethod · 0.80
test_searchFunction · 0.80

Calls 1

addMethod · 0.80

Tested by 1

test_searchFunction · 0.64