anywidget-vector 0.1.0__py3-none-any.whl → 0.2.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- anywidget_vector/__init__.py +1 -1
- anywidget_vector/backends/__init__.py +103 -0
- anywidget_vector/backends/chroma/__init__.py +27 -0
- anywidget_vector/backends/chroma/client.py +60 -0
- anywidget_vector/backends/chroma/converter.py +86 -0
- anywidget_vector/backends/grafeo/__init__.py +20 -0
- anywidget_vector/backends/grafeo/client.py +33 -0
- anywidget_vector/backends/grafeo/converter.py +46 -0
- anywidget_vector/backends/lancedb/__init__.py +22 -0
- anywidget_vector/backends/lancedb/client.py +56 -0
- anywidget_vector/backends/lancedb/converter.py +71 -0
- anywidget_vector/backends/pinecone/__init__.py +21 -0
- anywidget_vector/backends/pinecone/client.js +45 -0
- anywidget_vector/backends/pinecone/converter.py +62 -0
- anywidget_vector/backends/qdrant/__init__.py +26 -0
- anywidget_vector/backends/qdrant/client.js +61 -0
- anywidget_vector/backends/qdrant/converter.py +83 -0
- anywidget_vector/backends/weaviate/__init__.py +33 -0
- anywidget_vector/backends/weaviate/client.js +50 -0
- anywidget_vector/backends/weaviate/converter.py +81 -0
- anywidget_vector/static/icons.js +14 -0
- anywidget_vector/traitlets.py +84 -0
- anywidget_vector/ui/__init__.py +206 -0
- anywidget_vector/ui/canvas.js +521 -0
- anywidget_vector/ui/constants.js +64 -0
- anywidget_vector/ui/properties.js +158 -0
- anywidget_vector/ui/settings.js +265 -0
- anywidget_vector/ui/styles.css +348 -0
- anywidget_vector/ui/toolbar.js +117 -0
- anywidget_vector/widget.py +187 -850
- {anywidget_vector-0.1.0.dist-info → anywidget_vector-0.2.1.dist-info}/METADATA +70 -3
- anywidget_vector-0.2.1.dist-info/RECORD +34 -0
- anywidget_vector-0.1.0.dist-info/RECORD +0 -6
- {anywidget_vector-0.1.0.dist-info → anywidget_vector-0.2.1.dist-info}/WHEEL +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: anywidget-vector
|
|
3
|
-
Version: 0.1
|
|
4
|
-
Summary: Interactive vector visualization
|
|
3
|
+
Version: 0.2.1
|
|
4
|
+
Summary: Interactive 3D vector visualization with query UI for vector databases
|
|
5
5
|
Project-URL: Homepage, https://grafeo.dev/
|
|
6
6
|
Project-URL: Repository, https://github.com/GrafeoDB/anywidget-vector
|
|
7
7
|
Author-email: "S.T. Grond" <widget@grafeo.dev>
|
|
@@ -30,7 +30,7 @@ Provides-Extra: dev
|
|
|
30
30
|
Requires-Dist: marimo>=0.19.7; extra == 'dev'
|
|
31
31
|
Requires-Dist: prek>=0.3.1; extra == 'dev'
|
|
32
32
|
Requires-Dist: pytest>=9.0.2; extra == 'dev'
|
|
33
|
-
Requires-Dist: ruff>=0.
|
|
33
|
+
Requires-Dist: ruff>=0.15.0; extra == 'dev'
|
|
34
34
|
Requires-Dist: ty>=0.0.14; extra == 'dev'
|
|
35
35
|
Provides-Extra: lancedb
|
|
36
36
|
Requires-Dist: lancedb>=0.1; extra == 'lancedb'
|
|
@@ -264,6 +264,73 @@ widget = VectorSpace(
|
|
|
264
264
|
)
|
|
265
265
|
```
|
|
266
266
|
|
|
267
|
+
## Distance Metrics
|
|
268
|
+
|
|
269
|
+
Compute distances and visualize similarity relationships between points.
|
|
270
|
+
|
|
271
|
+
### Supported Metrics
|
|
272
|
+
|
|
273
|
+
| Metric | Description |
|
|
274
|
+
|--------|-------------|
|
|
275
|
+
| `euclidean` | Straight-line distance (L2 norm) |
|
|
276
|
+
| `cosine` | Angle-based distance (1 - cosine similarity) |
|
|
277
|
+
| `manhattan` | Sum of absolute differences (L1 norm) |
|
|
278
|
+
| `dot_product` | Negative dot product (higher = closer) |
|
|
279
|
+
|
|
280
|
+
### Color by Distance
|
|
281
|
+
|
|
282
|
+
```python
|
|
283
|
+
# Color points by distance from a reference
|
|
284
|
+
widget.color_by_distance("point_a")
|
|
285
|
+
widget.color_by_distance("point_a", metric="cosine")
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### Find Neighbors
|
|
289
|
+
|
|
290
|
+
```python
|
|
291
|
+
# Find k nearest neighbors
|
|
292
|
+
neighbors = widget.find_neighbors("point_a", k=5)
|
|
293
|
+
# Returns: [("point_b", 0.1), ("point_c", 0.2), ...]
|
|
294
|
+
|
|
295
|
+
# Find neighbors within distance threshold
|
|
296
|
+
neighbors = widget.find_neighbors("point_a", threshold=0.5)
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### Show Connections
|
|
300
|
+
|
|
301
|
+
```python
|
|
302
|
+
# Draw lines to k-nearest neighbors
|
|
303
|
+
widget.show_neighbors("point_a", k=5)
|
|
304
|
+
|
|
305
|
+
# Draw lines to all points within threshold
|
|
306
|
+
widget.show_neighbors("point_a", threshold=0.3)
|
|
307
|
+
|
|
308
|
+
# Manual connection settings
|
|
309
|
+
widget = VectorSpace(
|
|
310
|
+
points=data,
|
|
311
|
+
show_connections=True,
|
|
312
|
+
k_neighbors=3,
|
|
313
|
+
distance_metric="cosine",
|
|
314
|
+
connection_color="#00ff00",
|
|
315
|
+
connection_opacity=0.5,
|
|
316
|
+
)
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Compute Distances
|
|
320
|
+
|
|
321
|
+
```python
|
|
322
|
+
# Get distances from reference to all points
|
|
323
|
+
distances = widget.compute_distances("point_a")
|
|
324
|
+
# Returns: {"point_b": 0.1, "point_c": 0.5, ...}
|
|
325
|
+
|
|
326
|
+
# Use high-dimensional vectors (not just x,y,z)
|
|
327
|
+
distances = widget.compute_distances(
|
|
328
|
+
"point_a",
|
|
329
|
+
metric="cosine",
|
|
330
|
+
vector_field="embedding" # Use full embedding vector
|
|
331
|
+
)
|
|
332
|
+
```
|
|
333
|
+
|
|
267
334
|
## Export
|
|
268
335
|
|
|
269
336
|
```python
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
anywidget_vector/__init__.py,sha256=g7DbvLkK3gfipGvXW_B5Gmzs66G-mwjT24tQHHBDYhs,162
|
|
2
|
+
anywidget_vector/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
+
anywidget_vector/traitlets.py,sha256=XFkKF1sg_CrKdxyCmfv2Jz3RhewjQ05seYpKVnt3I7I,3941
|
|
4
|
+
anywidget_vector/widget.py,sha256=quqrEb1tGqaFrWehJj2aoemV3djBuhBGCO8yV3j1XZg,12578
|
|
5
|
+
anywidget_vector/backends/__init__.py,sha256=-Z5i80ZJKgmmG26l7DBMijxYaqZLmx89Wo6G3krRD-o,3075
|
|
6
|
+
anywidget_vector/backends/chroma/__init__.py,sha256=QVVgTcJZP-pHzw7bPLST9Rr1Nz1MIC1k-ktczzpfViw,693
|
|
7
|
+
anywidget_vector/backends/chroma/client.py,sha256=2N5KxGNKz8YX101D4qHhFag8VQLoqLMXlEPav43f7Gs,1616
|
|
8
|
+
anywidget_vector/backends/chroma/converter.py,sha256=qrJ53aVoi7Lzw1NJL44c6MGmPG-nKzMLS6sB0KHOX_Y,2870
|
|
9
|
+
anywidget_vector/backends/grafeo/__init__.py,sha256=bYLQYUBR31O_s-EBiP_uyEVowctw9-_r_5pFoTAaJQM,611
|
|
10
|
+
anywidget_vector/backends/grafeo/client.py,sha256=36bvlbU1124z_i7A_2FB2phuVdXVD-TOQDkh_vDXswo,824
|
|
11
|
+
anywidget_vector/backends/grafeo/converter.py,sha256=aYnd1Ri04cJMM7h9cyMWaZEa3V2lNzLx1-VwLDjRCVg,1629
|
|
12
|
+
anywidget_vector/backends/lancedb/__init__.py,sha256=ybjmJ8bdwPYfCr9JBwO5wzr9kJ0tDYhSR9En9A2RQzo,644
|
|
13
|
+
anywidget_vector/backends/lancedb/client.py,sha256=7EGfV0dKHiRgdjfEOXFCzRFuMIUKNOwB2ZCVmXsoE64,1519
|
|
14
|
+
anywidget_vector/backends/lancedb/converter.py,sha256=nfOKooKkPnzEg8EiSflXAfNbUvA4vIpxZ5H-JoOut3M,2242
|
|
15
|
+
anywidget_vector/backends/pinecone/__init__.py,sha256=85Bk4gFYTPOu0XXbW6gdyuDw_y6Nn6ZQ-aGLDwuyGwI,534
|
|
16
|
+
anywidget_vector/backends/pinecone/client.js,sha256=jEY3GHrhCp-d4FkBoqK8nAptw7h1HyqiRqP2KB4Zm_w,1337
|
|
17
|
+
anywidget_vector/backends/pinecone/converter.py,sha256=lmjTun4WAlDsslITxntr6DcSaP_Isg4QJEt6nvU-lRw,1738
|
|
18
|
+
anywidget_vector/backends/qdrant/__init__.py,sha256=YkGNJ10Ex-6KXrfqbM1PQFf1pQ3i5pl58Z5v_VKZhyE,617
|
|
19
|
+
anywidget_vector/backends/qdrant/client.js,sha256=KfGvStQ8r_bPQdSk6zWqXavl8IUYaqk3nly8Bn78Huo,1952
|
|
20
|
+
anywidget_vector/backends/qdrant/converter.py,sha256=U8pR7qchTotzxlNVLmu50vUCpote3Zb7tbeQidrhStM,2552
|
|
21
|
+
anywidget_vector/backends/weaviate/__init__.py,sha256=QNXvpAPNi_l2axBu9Hf8AbT5XxMWdE-FfV5bs9ojsGg,796
|
|
22
|
+
anywidget_vector/backends/weaviate/client.js,sha256=ZjrTfzUGzKNUf9Gi_ymypKNteSnIFdi5aHfgemkopFs,1375
|
|
23
|
+
anywidget_vector/backends/weaviate/converter.py,sha256=dsGeOgZnmKGsDWUTP7KxUv66B-NMuJHIu_SgYc-hYoE,2566
|
|
24
|
+
anywidget_vector/static/icons.js,sha256=GDn5-GeME97eMcutLkJAM7RKiNGd7-hYqiBKmmcLqAg,2166
|
|
25
|
+
anywidget_vector/ui/__init__.py,sha256=Nh15-XhS49sKGvv-1moKiqc5dQFzXLc-cy-HWlACwuw,6313
|
|
26
|
+
anywidget_vector/ui/canvas.js,sha256=F5IckHSBedDRxy69sKH4Y28yqeZjyBshrw9LqsUfBTc,18906
|
|
27
|
+
anywidget_vector/ui/constants.js,sha256=y6bu2jMO4kdEBV-mIiLfwhTZcvFIJpmkAV5kKhYWD1Q,2769
|
|
28
|
+
anywidget_vector/ui/properties.js,sha256=96bUGCc1GUHVLQS-acj8TKUCuiMnpVlEfCjoHPu97C8,4894
|
|
29
|
+
anywidget_vector/ui/settings.js,sha256=wj7zaLGz-jhpxSadnKJlMy4DlfIMeuCqTQ8YzxmuWD0,9349
|
|
30
|
+
anywidget_vector/ui/styles.css,sha256=e2AxYnKGpQh2DDtW4mSNFzdT1xBMJkBJFSD3MQ-cOW8,6309
|
|
31
|
+
anywidget_vector/ui/toolbar.js,sha256=7zvmKm6TfX_2a9uIpPZVGYHrHjns1dyOFVUO31HYwfU,4028
|
|
32
|
+
anywidget_vector-0.2.1.dist-info/METADATA,sha256=LHJ79vnNQoNEpmWRgplRgN69Rlkc3SDIe5vCxGiET44,8942
|
|
33
|
+
anywidget_vector-0.2.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
34
|
+
anywidget_vector-0.2.1.dist-info/RECORD,,
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
anywidget_vector/__init__.py,sha256=UA1icM7Y50eVfCf8yambftuG8bxLMIjON68IVJDO4x8,162
|
|
2
|
-
anywidget_vector/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
-
anywidget_vector/widget.py,sha256=60AP_awiX6MUaYPIBRvfFBdFQsyqPIDjronMShQDIH0,34021
|
|
4
|
-
anywidget_vector-0.1.0.dist-info/METADATA,sha256=kVS4eGG1n0PCXNItyjPdKRTh0QpwWowXrfMv8ML7dWM,7333
|
|
5
|
-
anywidget_vector-0.1.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
6
|
-
anywidget_vector-0.1.0.dist-info/RECORD,,
|
|
File without changes
|