lobe-chat

Форк
0
/
textToImage.ts 
38 строк · 1.0 Кб
1
import { ModelProvider } from '@/libs/agent-runtime';
2
import { createHeaderWithAuth } from '@/services/_auth';
3
import { OpenAIImagePayload } from '@/types/openai/image';
4

5
import { API_ENDPOINTS } from './_url';
6

7
interface FetchOptions {
8
  signal?: AbortSignal | undefined;
9
}
10

11
class ImageGenerationService {
12
  async generateImage(params: Omit<OpenAIImagePayload, 'model' | 'n'>, options?: FetchOptions) {
13
    const payload: OpenAIImagePayload = { ...params, model: 'dall-e-3', n: 1 };
14

15
    const provider = ModelProvider.OpenAI;
16

17
    const headers = await createHeaderWithAuth({
18
      headers: { 'Content-Type': 'application/json' },
19
      provider,
20
    });
21

22
    const res = await fetch(API_ENDPOINTS.images(provider), {
23
      body: JSON.stringify(payload),
24
      headers: headers,
25
      method: 'POST',
26
      signal: options?.signal,
27
    });
28
    if (!res.ok) {
29
      throw await res.json();
30
    }
31

32
    const urls = await res.json();
33

34
    return urls[0] as string;
35
  }
36
}
37

38
export const imageGenerationService = new ImageGenerationService();
39

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

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

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

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