Add vector fingerprint visualization to point cards#412
Open
generall wants to merge 1 commit into
Open
Conversation
Render a compact SimHash-style fingerprint strip next to each vector in the collection points list. Each of the 32 bars is a projection of the whole vector onto a deterministic random +/-1 direction, normalized by L2 norm, so similar vectors share most bar signs (1 - acos(cos_sim)/pi) and produce visually similar waveform silhouettes. Supports dense vectors, multivectors (row-specific sign patterns) and sparse vectors (indices hashed into the same scheme). Computation is a single O(dim) pass per vector; rendering is one small canvas per vector. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Points in the collection view now show a compact "fingerprint" strip next to each vector's Length chip — a 32-bar waveform where similar vectors produce visually similar silhouettes. Covers dense vectors, multivectors and sparse vectors, in both the Points tab and the graph-view point preview (shared
PointVectorscomponent).How
src/lib/vector-fingerprint.js— each bar is a SimHash-style projection of the whole vector onto a deterministic random ±1 direction (one murmur-finalizer hash per dimension; its 32 bits are the projection signs, so it stays a single O(dim) pass even for 3000+-dim vectors). Values are normalized by the vector's L2 norm, making the fingerprint magnitude-invariant.1 − acos(s)/πof bars keep the same sign — ~86% at cosine 0.9, ~50% for unrelated vectors.src/components/Points/VectorFingerprint.jsx— renders a mirrored waveform on a small DPR-aware canvas: bars up in Qdrant red for positive projections, down in blue for negative, around a faint center line. Theme-aware (lighter shades in dark mode). Unsupported shapes (e.g.{text: ...}inference objects) render nothing.Testing
npm run buildall pass.🤖 Generated with Claude Code