| import React from 'react'; | |
| import { HoverCardPortal, HoverCardContent } from '~/components/ui'; | |
| import { ESide } from '~/common'; | |
| import { useLocalize } from '~/hooks'; | |
| type TOptionHoverProps = { | |
| endpoint: string; | |
| type: string; | |
| side: ESide; | |
| }; | |
| const openAI = { | |
| max: 'com_endpoint_openai_max', | |
| temp: 'com_endpoint_openai_temp', | |
| topp: 'com_endpoint_openai_topp', | |
| freq: 'com_endpoint_openai_freq', | |
| pres: 'com_endpoint_openai_pres', | |
| }; | |
| const types = { | |
| anthropic: { | |
| temp: 'com_endpoint_anthropic_temp', | |
| topp: 'com_endpoint_anthropic_topp', | |
| topk: 'com_endpoint_anthropic_topk', | |
| maxoutputtokens: 'com_endpoint_anthropic_maxoutputtokens', | |
| }, | |
| google: { | |
| temp: 'com_endpoint_google_temp', | |
| topp: 'com_endpoint_google_topp', | |
| topk: 'com_endpoint_google_topk', | |
| maxoutputtokens: 'com_endpoint_google_maxoutputtokens', | |
| }, | |
| openAI, | |
| azureOpenAI: openAI, | |
| gptPlugins: { | |
| func: 'com_endpoint_func_hover', | |
| skip: 'com_endpoint_skip_hover', | |
| ...openAI, | |
| }, | |
| }; | |
| function OptionHover({ endpoint, type, side }: TOptionHoverProps) { | |
| const localize = useLocalize(); | |
| const text = types?.[endpoint]?.[type]; | |
| if (!text) { | |
| return null; | |
| } | |
| return ( | |
| <HoverCardPortal> | |
| <HoverCardContent side={side} className="w-80 "> | |
| <div className="space-y-2"> | |
| <p className="text-sm text-gray-600 dark:text-gray-300">{localize(text)}</p> | |
| </div> | |
| </HoverCardContent> | |
| </HoverCardPortal> | |
| ); | |
| } | |
| export default OptionHover; | |