Skip to content

Commit 00b4637

Browse files
authored
fix: Default model is missing in asking (#149)
1 parent 57c7756 commit 00b4637

File tree

3 files changed

+56
-6
lines changed

3 files changed

+56
-6
lines changed

src/app/[owner]/[repo]/page.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1999,6 +1999,7 @@ IMPORTANT:
19991999
excludedFiles={modelExcludedFiles}
20002000
setExcludedFiles={setModelExcludedFiles}
20012001
onApply={confirmRefresh}
2002+
showWikiType={true}
20022003
/>
20032004
</div>
20042005
);

src/components/Ask.tsx

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use client';
22

3-
import React, { useState, useRef, useEffect } from 'react';
3+
import React, {useState, useRef, useEffect} from 'react';
44
import {FaChevronLeft, FaChevronRight } from 'react-icons/fa';
55
import Markdown from './Markdown';
66
import { useLanguage } from '@/contexts/LanguageContext';
@@ -9,6 +9,18 @@ import getRepoUrl from '@/utils/getRepoUrl';
99
import ModelSelectionModal from './ModelSelectionModal';
1010
import { createChatWebSocket, closeWebSocket, ChatCompletionRequest } from '@/utils/websocketClient';
1111

12+
interface Model {
13+
id: string;
14+
name: string;
15+
}
16+
17+
interface Provider {
18+
id: string;
19+
name: string;
20+
models: Model[];
21+
supportsCustomModel?: boolean;
22+
}
23+
1224
interface Message {
1325
role: 'user' | 'assistant' | 'system';
1426
content: string;
@@ -93,6 +105,38 @@ const Ask: React.FC<AskProps> = ({
93105
};
94106
}, []);
95107

108+
useEffect(() => {
109+
const fetchDefaultModel = async () => {
110+
try {
111+
setIsLoading(true);
112+
113+
const response = await fetch('/api/models/config');
114+
115+
if (!response.ok) {
116+
throw new Error(`Error fetching model configurations: ${response.status}`);
117+
}
118+
119+
const data = await response.json();
120+
121+
setSelectedProvider(data.defaultProvider);
122+
123+
// Find the default provider and set its default model
124+
const selectedProvider = data.providers.find((p:Provider) => p.id === data.defaultProvider);
125+
if (selectedProvider && selectedProvider.models.length > 0) {
126+
setSelectedModel(selectedProvider.models[0].id);
127+
}
128+
} catch (err) {
129+
console.error('Failed to fetch model configurations:', err);
130+
} finally {
131+
setIsLoading(false);
132+
}
133+
};
134+
135+
if(provider == '' || model == '') {
136+
fetchDefaultModel()
137+
}
138+
}, [provider, model]);
139+
96140
const clearConversation = () => {
97141
setQuestion('');
98142
setResponse('');
@@ -824,6 +868,7 @@ const Ask: React.FC<AskProps> = ({
824868
onApply={() => {
825869
console.log('Model selection applied:', selectedProvider, selectedModel);
826870
}}
871+
showWikiType={false}
827872
/>
828873
</div>
829874
);

src/components/ModelSelectionModal.tsx

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ interface ModelSelectionModalProps {
3232
includedFiles?: string;
3333
setIncludedFiles?: (value: string) => void;
3434
showFileFilters?: boolean;
35+
showWikiType: boolean;
3536
}
3637

3738
export default function ModelSelectionModal({
@@ -56,7 +57,8 @@ export default function ModelSelectionModal({
5657
setIncludedDirs,
5758
includedFiles = '',
5859
setIncludedFiles,
59-
showFileFilters = false
60+
showFileFilters = false,
61+
showWikiType = true,
6062
}: ModelSelectionModalProps) {
6163
const { messages: t } = useLanguage();
6264

@@ -126,10 +128,12 @@ export default function ModelSelectionModal({
126128
{/* Modal body */}
127129
<div className="p-6">
128130
{/* Wiki Type Selector */}
129-
<WikiTypeSelector
130-
isComprehensiveView={localIsComprehensiveView}
131-
setIsComprehensiveView={setLocalIsComprehensiveView}
132-
/>
131+
{
132+
showWikiType && <WikiTypeSelector
133+
isComprehensiveView={localIsComprehensiveView}
134+
setIsComprehensiveView={setLocalIsComprehensiveView}
135+
/>
136+
}
133137

134138
{/* Divider */}
135139
<div className="my-4 border-t border-[var(--border-color)]/30"></div>

0 commit comments

Comments
 (0)