"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.

)}
); }