Интеграция OpenAI API с сайтом

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Интеграция OpenAI API с сайтом
Средняя
~3-5 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1214
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    852
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1041
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    823
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    815

Интеграция OpenAI API с сайтом

OpenAI API предоставляет доступ к GPT-4o, GPT-4o mini, DALL-E 3, Whisper и другим моделям. Интеграция с сайтом открывает возможности: AI-чат с пользователями, автоматическая генерация контента, анализ текста, транскрипция аудио, генерация изображений.

Базовая интеграция

use OpenAI\Client;

$openai = OpenAI::client(config('services.openai.api_key'));

$response = $openai->chat()->create([
    'model'    => 'gpt-4o-mini',
    'messages' => [
        ['role' => 'system', 'content' => 'Вы помощник службы поддержки компании X. Отвечайте кратко и по делу.'],
        ['role' => 'user',   'content' => $userMessage],
    ],
    'temperature' => 0.3,
    'max_tokens'  => 500,
]);

$answer = $response->choices[0]->message->content;

Streaming ответов

// Стриминг для эффекта "живой печати"
Route::get('/api/chat/stream', function (Request $request) {
    $message = $request->query('message');

    return response()->stream(function () use ($message) {
        $openai = OpenAI::client(config('services.openai.api_key'));
        $stream = $openai->chat()->createStreamed([
            'model'    => 'gpt-4o-mini',
            'messages' => [['role' => 'user', 'content' => $message]],
        ]);

        foreach ($stream as $response) {
            $chunk = $response->choices[0]->delta->content ?? '';
            if ($chunk) {
                echo "data: " . json_encode(['content' => $chunk]) . "\n\n";
                ob_flush();
                flush();
            }
        }
        echo "data: [DONE]\n\n";
    }, 200, [
        'Content-Type'  => 'text/event-stream',
        'Cache-Control' => 'no-cache',
    ]);
});
// Frontend: читаем SSE поток
async function streamChat(message: string, onChunk: (text: string) => void) {
  const resp = await fetch(`/api/chat/stream?message=${encodeURIComponent(message)}`);
  const reader = resp.body!.getReader();
  const decoder = new TextDecoder();

  while (true) {
    const { done, value } = await reader.read();
    if (done) break;

    const lines = decoder.decode(value).split('\n');
    for (const line of lines) {
      if (line.startsWith('data: ') && line !== 'data: [DONE]') {
        const data = JSON.parse(line.slice(6));
        onChunk(data.content);
      }
    }
  }
}

Embeddings для семантического поиска

// Индексация контента
$response = $openai->embeddings()->create([
    'model' => 'text-embedding-3-small',
    'input' => $article->title . "\n" . $article->content,
]);

$embedding = $response->embeddings[0]->embedding;  // вектор 1536 измерений

// Сохраняем в PostgreSQL с расширением pgvector
DB::statement(
    'UPDATE articles SET embedding = ? WHERE id = ?',
    [json_encode($embedding), $article->id]
);

// Поиск по векторному сходству
$queryEmbedding = /* embedding поискового запроса */;
$results = DB::select(
    'SELECT *, (embedding <=> ?) AS distance FROM articles ORDER BY distance LIMIT 5',
    [json_encode($queryEmbedding)]
);

Модерация контента

$moderation = $openai->moderations()->create([
    'input' => $userComment,
]);

if ($moderation->results[0]->flagged) {
    $categories = array_filter((array) $moderation->results[0]->categories);
    Log::warning('Moderation flagged content', ['categories' => $categories]);
    throw new ContentModerationException('Комментарий нарушает правила сайта');
}

Генерация изображений (DALL-E 3)

$image = $openai->images()->create([
    'model'           => 'dall-e-3',
    'prompt'          => $request->prompt,
    'n'               => 1,
    'size'            => '1024x1024',
    'quality'         => 'standard',
    'response_format' => 'url',
]);

$imageUrl = $image->data[0]->url;

Оценка стоимости

GPT-4o mini: ~$0.15 / 1M input tokens, $0.60 / 1M output tokens. Для чата с 500 токенами на обращение — около $0.0004 за запрос. При 10 000 запросов в день — ~$4/день.

Сроки

AI-чат с стримингом: 3–4 дня. Семантический поиск с pgvector: +2 дня. Генерация изображений: 1–2 дня.