"use client"; import { useState } from "react"; import { api } from "~/trpc/react"; export function EmbeddingSettings() { const [isReembedding, setIsReembedding] = useState(false); const [result, setResult] = useState<{ total: number; updated: number } | null>(null); const embeddingInfoQuery = api.memory.embeddingInfo.useQuery(); const reembedMutation = api.memory.reembed.useMutation({ onMutate: () => { setIsReembedding(true); setResult(null); }, onSettled: () => { setIsReembedding(false); }, onSuccess: (data) => { setResult(data); }, }); const handleReembed = () => { if (confirm("This will re-index all your memories for search. Continue?")) { reembedMutation.mutate(); } }; const isAvailable = embeddingInfoQuery.data?.available ?? false; return (
search indexing
re-index all memories to improve search results.
{result && (indexed {result.updated} of {result.total} memories
)} {reembedMutation.error && ({reembedMutation.error.message}
)} {!isAvailable && !embeddingInfoQuery.isLoading && (search requires server configuration.
)}