import React, { useState } from 'react';
import { Text, View } from 'react-native';
import { AdvancedToggle } from '../AdvancedToggle';
import { SliderSetting } from '../SliderSetting';
import { useThemedStyles } from '../../theme';
import { createStyles } from './styles';
import { SystemPromptSection } from '../settings/SystemPromptSection';
import {
type NumericSettingModel,
useTextGenerationSettings,
} from '../../hooks/useTextGenerationSettings';
import {
BatchSizeSlider,
CpuThreadsSlider,
FlashAttentionToggle,
KvCacheTypeToggle,
SpeculativeDecodingToggle,
ThinkingBudgetSelector,
} from '../settings/textGenAdvancedSections';
const ChatSettingSlider: React.FC<{ setting: NumericSettingModel }> = ({
setting,
}) => ;
export const TextGenerationSection: React.FC = () => {
const styles = useThemedStyles(createStyles);
const [showAdvanced, setShowAdvanced] = useState(false);
const { isLiteRT, llama, liteRT, toolCalls } = useTextGenerationSettings();
const basicSettings = isLiteRT
? [liteRT.temperature, liteRT.maxTokens]
: [llama.temperature, llama.contextLength, llama.maxTokens];
const advancedSettings = isLiteRT
? [liteRT.topP, toolCalls]
: [llama.topP, llama.repeatPenalty, toolCalls];
return (
Default System Prompt
{basicSettings.map(setting => (
))}
{!isLiteRT && }
setShowAdvanced(current => !current)}
testID="modal-text-advanced-toggle"
/>
{showAdvanced ? (
<>
{advancedSettings.map(setting => (
))}
{!isLiteRT && (
<>
>
)}
>
) : null}
);
};