@@ -62,6 +62,9 @@ export function useAIService(chatId: string): UseAIServiceReturn {
6262 const aiService = createAIService ( llmConfig , modelConfig )
6363 const messageId = uuidv4 ( )
6464
65+ // 设置 loading 状态为 true
66+ setIsLoading ( true )
67+
6568 // 将AI服务实例添加到活跃服务列表中
6669 setActiveAIServices ( ( prev ) => new Map ( prev ) . set ( messageId , aiService ) )
6770
@@ -128,10 +131,14 @@ export function useAIService(chatId: string): UseAIServiceReturn {
128131 endTime : Date . now ( )
129132 } )
130133
131- // 从活跃服务列表中移除
134+ // 从活跃服务列表中移除并检查是否需要重置 loading 状态
132135 setActiveAIServices ( ( prev ) => {
133136 const newMap = new Map ( prev )
134137 newMap . delete ( messageId )
138+ // 如果没有活跃的服务了,重置 loading 状态
139+ if ( newMap . size === 0 ) {
140+ setIsLoading ( false )
141+ }
135142 return newMap
136143 } )
137144
@@ -150,10 +157,14 @@ export function useAIService(chatId: string): UseAIServiceReturn {
150157 error : error . message
151158 } )
152159
153- // 从活跃服务列表中移除
160+ // 从活跃服务列表中移除并检查是否需要重置 loading 状态
154161 setActiveAIServices ( ( prev ) => {
155162 const newMap = new Map ( prev )
156163 newMap . delete ( messageId )
164+ // 如果没有活跃的服务了,重置 loading 状态
165+ if ( newMap . size === 0 ) {
166+ setIsLoading ( false )
167+ }
157168 return newMap
158169 } )
159170
@@ -177,6 +188,12 @@ export function useAIService(chatId: string): UseAIServiceReturn {
177188 )
178189
179190 const stopGeneration = useCallback ( ( ) => {
191+ // 如果没有活跃的服务,直接返回
192+ if ( activeAIServices . size === 0 ) {
193+ setIsLoading ( false )
194+ return
195+ }
196+
180197 // 停止所有活跃的AI服务
181198 activeAIServices . forEach ( ( aiService , messageId ) => {
182199 aiService . stopStreaming ( )
@@ -220,6 +237,7 @@ export function useAIService(chatId: string): UseAIServiceReturn {
220237 clearStreamingMessage ( chatId , messageId )
221238 } )
222239
240+ // 清空活跃服务并重置 loading 状态
223241 setActiveAIServices ( new Map ( ) )
224242 setIsLoading ( false )
225243 } , [ activeAIServices , updateTask , chatId , clearStreamingMessage ] )
0 commit comments