You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

chat-settings.tsx 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import { Button } from '@/components/ui/button';
  2. import { zodResolver } from '@hookform/resolvers/zod';
  3. import { FormProvider, useForm } from 'react-hook-form';
  4. import { z } from 'zod';
  5. import ChatBasicSetting from './chat-basic-settings';
  6. import { ChatModelSettings } from './chat-model-settings';
  7. import { ChatPromptEngine } from './chat-prompt-engine';
  8. import { useChatSettingSchema } from './use-chat-setting-schema';
  9. export function ChatSettings() {
  10. const formSchema = useChatSettingSchema();
  11. const form = useForm<z.infer<typeof formSchema>>({
  12. resolver: zodResolver(formSchema),
  13. defaultValues: {
  14. name: '',
  15. language: 'English',
  16. prompt_config: {
  17. quote: true,
  18. keyword: false,
  19. tts: false,
  20. use_kg: false,
  21. refine_multiturn: true,
  22. },
  23. top_n: 8,
  24. vector_similarity_weight: 0.2,
  25. top_k: 1024,
  26. },
  27. });
  28. function onSubmit(values: z.infer<typeof formSchema>) {
  29. console.log(values);
  30. }
  31. return (
  32. <section className="py-6">
  33. <FormProvider {...form}>
  34. <form
  35. onSubmit={form.handleSubmit(onSubmit)}
  36. className="space-y-6 overflow-auto max-h-[88vh] pr-4"
  37. >
  38. <ChatBasicSetting></ChatBasicSetting>
  39. <ChatPromptEngine></ChatPromptEngine>
  40. <ChatModelSettings></ChatModelSettings>
  41. </form>
  42. </FormProvider>
  43. <Button className="w-full my-4">Update</Button>
  44. </section>
  45. );
  46. }