Fix 2D / 3D error message on update

This commit is contained in:
James Ketr 2025-04-24 12:04:42 -07:00
parent ca9dd950b3
commit 7059d5ef24

View File

@ -10,7 +10,7 @@ import SendIcon from '@mui/icons-material/Send';
import FormControlLabel from '@mui/material/FormControlLabel'; import FormControlLabel from '@mui/material/FormControlLabel';
import Switch from '@mui/material/Switch'; import Switch from '@mui/material/Switch';
import { SeverityType } from './Snack'; import { SetSnackType } from './Snack';
interface Metadata { interface Metadata {
doc_type?: string; doc_type?: string;
@ -18,7 +18,7 @@ interface Metadata {
} }
interface ResultData { interface ResultData {
embeddings: number[][] | number[][][]; embeddings: (number[])[];
documents: string[]; documents: string[];
metadatas: Metadata[]; metadatas: Metadata[];
ids: string[]; ids: string[];
@ -42,7 +42,7 @@ interface PlotData {
interface VectorVisualizerProps { interface VectorVisualizerProps {
connectionBase: string; connectionBase: string;
sessionId?: string; sessionId?: string;
setSnack: (message: string, severity: SeverityType) => void; setSnack: SetSnackType;
inline?: boolean; inline?: boolean;
rag?: any; rag?: any;
} }
@ -141,11 +141,19 @@ const VectorVisualizer: React.FC<VectorVisualizerProps> = ({ setSnack, rag, inli
if (!result || !result.embeddings) return; if (!result || !result.embeddings) return;
if (result.embeddings.length === 0) return; if (result.embeddings.length === 0) return;
const vectors: number[][] = [...result.embeddings as number[][]]; const vectors: (number[])[] = [...result.embeddings];
const documents = [...result.documents || []]; const documents = [...result.documents || []];
const metadatas = [...result.metadatas || []]; const metadatas = [...result.metadatas || []];
const ids = [...result.ids || []]; const ids = [...result.ids || []];
let is2D = vectors.every((v: number[]) => v.length === 2);
let is3D = vectors.every((v: number[]) => v.length === 3);
console.log(`Embeddings are ${is2D ? '2D' : is3D ? '3D' : 'invaalid'} and view2D is ${view2D}`);
if ((view2D && !is2D) || (!view2D && !is3D)) {
return;
}
if (view2D && rag && rag.umap_embedding_2d) { if (view2D && rag && rag.umap_embedding_2d) {
metadatas.unshift({ doc_type: 'query' }); metadatas.unshift({ doc_type: 'query' });
documents.unshift('Query'); documents.unshift('Query');
@ -169,10 +177,11 @@ const VectorVisualizer: React.FC<VectorVisualizerProps> = ({ setSnack, rag, inli
} }
} }
const is2D = vectors.every((v: number[]) => v.length === 2); is2D = vectors.every((v: number[]) => v.length === 2);
const is3D = vectors.every((v: number[]) => v.length === 3); is3D = vectors.every((v: number[]) => v.length === 3);
if (!is2D && !is3D) { if (!is2D && !is3D) {
console.error('Vectors are neither 2D nor 3D'); console.warn('Modified vectors are neither 2D nor 3D');
return; return;
} }