lobe-chat

Форк
0
/
models.ts 
37 строк · 1.1 Кб
1
import { createHeaderWithAuth } from '@/services/_auth';
2
import { useUserStore } from '@/store/user';
3
import { modelConfigSelectors } from '@/store/user/selectors';
4
import { ChatModelCard } from '@/types/llm';
5

6
import { API_ENDPOINTS } from './_url';
7
import { initializeWithClientStore } from './chat';
8

9
class ModelsService {
10
  getChatModels = async (provider: string): Promise<ChatModelCard[] | undefined> => {
11
    const headers = await createHeaderWithAuth({
12
      headers: { 'Content-Type': 'application/json' },
13
      provider,
14
    });
15
    try {
16
      /**
17
       * Use browser agent runtime
18
       */
19
      const enableFetchOnClient = modelConfigSelectors.isProviderFetchOnClient(provider)(
20
        useUserStore.getState(),
21
      );
22
      if (enableFetchOnClient) {
23
        const agentRuntime = await initializeWithClientStore(provider, {});
24
        return agentRuntime.models();
25
      }
26

27
      const res = await fetch(API_ENDPOINTS.chatModels(provider), { headers });
28
      if (!res.ok) return;
29

30
      return res.json();
31
    } catch {
32
      return;
33
    }
34
  };
35
}
36

37
export const modelsService = new ModelsService();
38

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.