MCPcopy
hub / github.com/kagent-dev/kagent / ModelConfigStep

Function ModelConfigStep

ui/src/components/onboarding/steps/ModelConfigStep.tsx:64–540  ·  view source on GitHub ↗
({
    existingModels,
    loadingExistingModels,
    errorExistingModels,
    onNext,
}: ModelConfigStepProps)

Source from the content-addressed store, hash-verified

62}
63
64export function ModelConfigStep({
65 existingModels,
66 loadingExistingModels,
67 errorExistingModels,
68 onNext,
69}: ModelConfigStepProps) {
70 const [isLoading, setIsLoading] = useState(false);
71 const [configMode, setConfigMode] = useState<'create' | 'select'>('create');
72 const [providerModelsData, setProviderModelsData] = useState<ProviderModelsResponse | null>(null);
73 const [providerModelsLoading, setProviderModelsLoading] = useState<boolean>(true);
74 const [providerModelsError, setProviderModelsError] = useState<string | null>(null);
75 const [supportedProviders, setSupportedProviders] = useState<Provider[]>([]);
76 const [providersLoading, setProvidersLoading] = useState<boolean>(true);
77 const [providersError, setProvidersError] = useState<string | null>(null);
78 const [isOllama, setIsOllama] = useState(false);
79 const [lastAutoGenName, setLastAutoGenName] = useState<string>("");
80
81 useEffect(() => {
82 if (!loadingExistingModels && existingModels && existingModels.length > 0) {
83 setConfigMode('select');
84 } else if (!loadingExistingModels) {
85 setConfigMode('create');
86 }
87 }, [loadingExistingModels, existingModels]);
88
89 useEffect(() => {
90 const fetchProviderModels = async () => {
91 setProviderModelsLoading(true);
92 setProviderModelsError(null);
93 try {
94 const result = await getModels();
95 if (!result.error && result.data) {
96 setProviderModelsData(result.data);
97 } else {
98 throw new Error(result.error || 'Failed to fetch available models.');
99 }
100 } catch (error) {
101 setProviderModelsError(error instanceof Error ? error.message : String(error));
102 setProviderModelsData(null);
103 } finally {
104 setProviderModelsLoading(false);
105 }
106 };
107 fetchProviderModels();
108 }, []);
109
110 useEffect(() => {
111 const fetchProviders = async () => {
112 setProvidersLoading(true);
113 setProvidersError(null);
114 try {
115 const result = await getSupportedModelProviders();
116 if (!result.error && result.data) {
117 setSupportedProviders(result.data);
118 } else {
119 throw new Error(result.error || 'Failed to fetch supported providers.');
120 }
121 } catch (error) {

Callers

nothing calls this directly

Calls 5

cnFunction · 0.90
isValidProviderInfoKeyFunction · 0.90
fetchProvidersFunction · 0.85
generateConfigNameFunction · 0.85
fetchProviderModelsFunction · 0.70

Tested by

no test coverage detected