/
githubmirror
/
Open-Assistant
Обзор
Документация
Войти
/
githubmirror
/
Open-Assistant
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
website/src/components/Chat/ChatConfigSaver.tsx
46 строк
1 KB
Dragan Jovanović
Custom instructions feature (#3597)
31 июл 2023, 00:17
Не верифицирован
31 июл 2023, 00:17
7a68b59
Код
Авторство
О чём код?
import { MutableRefObject, useEffect } from "react"; import { useFormContext } from "react-hook-form"; import { ChatConfigFormData, PluginEntry, CustomInstructionsType } from "src/types/Chat"; import { CachedChatConfig, CustomPreset, setConfigCache } from "src/utils/chat"; export const ChatConfigSaver = ({ selectedPresetName, hyrated, plugins, customPresets, customInstructions, }: { selectedPresetName: string; hyrated: MutableRefObject<boolean>; plugins: PluginEntry[]; customPresets: CustomPreset[]; customInstructions: CustomInstructionsType; }) => { const { getValues, watch } = useFormContext<ChatConfigFormData>(); const { model_config_name, plugins: selectedPlugins, ...preset_config } = { ...watch(), ...getValues() }; useEffect(() => { if (hyrated.current) { const config: CachedChatConfig = { model_config_name, plugins: plugins.filter((p) => !p.trusted), // only save non-trusted, custom plugins selectedPresetName, custom_presets: customPresets, custom_preset_config: preset_config, selectedPlugins: selectedPlugins, custom_instructions: customInstructions, }; setConfigCache(config); } }, [ customPresets, hyrated, model_config_name, plugins, preset_config, selectedPlugins, selectedPresetName, customInstructions, ]); return null; };