Load all base vectors into the server. Args: server_url: Base URL of the target server. data_dir: Directory containing base vector JSON files. batch_size: Number of vectors per bulk_insert request. Returns: Total number of vectors inserted.
(server_url, data_dir, batch_size)
| 119 | |
| 120 | |
| 121 | def load_data(server_url, data_dir, batch_size): |
| 122 | """Load all base vectors into the server. |
| 123 | |
| 124 | Args: |
| 125 | server_url: Base URL of the target server. |
| 126 | data_dir: Directory containing base vector JSON files. |
| 127 | batch_size: Number of vectors per bulk_insert request. |
| 128 | |
| 129 | Returns: |
| 130 | Total number of vectors inserted. |
| 131 | """ |
| 132 | files = discover_base_vector_files(data_dir) |
| 133 | print(f"Found {len(files)} base vector file(s) in {data_dir}") |
| 134 | |
| 135 | total_inserted = 0 |
| 136 | total_vectors = 0 |
| 137 | start_time = time.time() |
| 138 | |
| 139 | for filepath in files: |
| 140 | print(f" Loading {os.path.basename(filepath)}...") |
| 141 | vectors = load_vectors_from_file(filepath) |
| 142 | total_vectors += len(vectors) |
| 143 | |
| 144 | for i in range(0, len(vectors), batch_size): |
| 145 | batch = vectors[i : i + batch_size] |
| 146 | inserted = send_batch(server_url, batch) |
| 147 | total_inserted += inserted |
| 148 | |
| 149 | elapsed = time.time() - start_time |
| 150 | rate = total_inserted / elapsed if elapsed > 0 else 0 |
| 151 | print( |
| 152 | f" Inserted {total_inserted}/{total_vectors} vectors " |
| 153 | f"({elapsed:.1f}s elapsed, {rate:.0f} vec/s)", |
| 154 | flush=True, |
| 155 | ) |
| 156 | |
| 157 | elapsed = time.time() - start_time |
| 158 | print(f"\nLoad complete: {total_inserted} vectors inserted in {elapsed:.1f}s") |
| 159 | return total_inserted |
| 160 | |
| 161 | |
| 162 | def main(): |
no test coverage detected