"use client"; import { Switch } from "@/components/ui/switch"; import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "@/components/ui/collapsible"; import { ChevronRight } from "lucide-react"; import { IngestSettings as IngestSettingsType } from "./types"; import { LabelWrapper } from "@/components/label-wrapper"; import { Select, SelectContent, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { Tooltip, TooltipContent, TooltipTrigger, } from "@/components/ui/tooltip"; import { ModelSelectItems } from "@/app/settings/helpers/model-select-item"; import { getFallbackModels } from "@/app/settings/helpers/model-helpers"; import { NumberInput } from "@/components/ui/inputs/number-input"; interface IngestSettingsProps { isOpen: boolean; onOpenChange: (open: boolean) => void; settings?: IngestSettingsType; onSettingsChange?: (settings: IngestSettingsType) => void; } export const IngestSettings = ({ isOpen, onOpenChange, settings, onSettingsChange, }: IngestSettingsProps) => { // Default settings const defaultSettings: IngestSettingsType = { chunkSize: 1000, chunkOverlap: 200, ocr: false, pictureDescriptions: false, embeddingModel: "text-embedding-3-small", }; // Use provided settings or defaults const currentSettings = settings || defaultSettings; const handleSettingsChange = (newSettings: Partial) => { const updatedSettings = { ...currentSettings, ...newSettings }; onSettingsChange?.(updatedSettings); }; return (
Ingest settings
{/* Embedding model selection - currently disabled */}
handleSettingsChange({ chunkSize: value })} unit="characters" />
handleSettingsChange({ chunkOverlap: value }) } unit="characters" />
{/*
Table Structure
Capture table structure during ingest.
handleSettingsChange({ tableStructure: checked }) } />
*/}
OCR
Extracts text from images/PDFs. Ingest is slower when enabled.
handleSettingsChange({ ocr: checked }) } />
Picture descriptions
Adds captions for images. Ingest is more expensive when enabled.
handleSettingsChange({ pictureDescriptions: checked }) } />
); };