Spaces:
Sleeping
Sleeping
File size: 2,740 Bytes
f871fed |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
'use client'
import { useState, useEffect } from 'react'
import {
Dialog,
DialogContent,
DialogDescription,
DialogFooter,
DialogHeader,
DialogTitle,
} from '@/components/ui/dialog'
import { Button } from '@/components/ui/button'
import { ModelSelector } from '@/components/common/ModelSelector'
interface AdvancedModelsDialogProps {
open: boolean
onOpenChange: (open: boolean) => void
defaultModels: {
strategy: string
answer: string
finalAnswer: string
}
onSave: (models: {
strategy: string
answer: string
finalAnswer: string
}) => void
}
export function AdvancedModelsDialog({
open,
onOpenChange,
defaultModels,
onSave
}: AdvancedModelsDialogProps) {
const [strategyModel, setStrategyModel] = useState(defaultModels.strategy)
const [answerModel, setAnswerModel] = useState(defaultModels.answer)
const [finalAnswerModel, setFinalAnswerModel] = useState(defaultModels.finalAnswer)
// Update local state when defaultModels change
useEffect(() => {
setStrategyModel(defaultModels.strategy)
setAnswerModel(defaultModels.answer)
setFinalAnswerModel(defaultModels.finalAnswer)
}, [defaultModels])
const handleSave = () => {
onSave({
strategy: strategyModel,
answer: answerModel,
finalAnswer: finalAnswerModel
})
onOpenChange(false)
}
return (
<Dialog open={open} onOpenChange={onOpenChange}>
<DialogContent className="sm:max-w-[500px]">
<DialogHeader>
<DialogTitle>Advanced Model Selection</DialogTitle>
<DialogDescription>
Choose specific models for each stage of the Ask process
</DialogDescription>
</DialogHeader>
<div className="space-y-4 py-4">
<ModelSelector
label="Strategy Model"
modelType="language"
value={strategyModel}
onChange={setStrategyModel}
placeholder="Select strategy model"
/>
<ModelSelector
label="Answer Model"
modelType="language"
value={answerModel}
onChange={setAnswerModel}
placeholder="Select answer model"
/>
<ModelSelector
label="Final Answer Model"
modelType="language"
value={finalAnswerModel}
onChange={setFinalAnswerModel}
placeholder="Select final answer model"
/>
</div>
<DialogFooter>
<Button variant="outline" onClick={() => onOpenChange(false)}>
Cancel
</Button>
<Button onClick={handleSave}>
Save Changes
</Button>
</DialogFooter>
</DialogContent>
</Dialog>
)
}
|