V tomto článku si ukážeme, jak vytvořit PHP skript, který bude využívat OpenAI API k automatickému generování popisků produktů. Skript dostane jako vstup ID produktu, jeho název a URL fotografie ve formátu JSON. ChatGPT vrátí výsledek obsahující popis produktu, kategorii a ID kategorie z předem definovaného seznamu.
Cíl
Cílem je vytvořit PHP skript, který:
- Odešle vstupní data (ID, název, URL fotografie produktu) do OpenAI API.
- Získá popis produktu a určí jeho kategorii.
- Vrátí ID produktu, popis, kategorii a ID kategorie.
Příprava
Než začneme, ujistěte se, že máte:
- API klíč OpenAI – Získejte jej z platformy OpenAI.
- PHP prostředí – Měli byste mít nainstalované PHP (verze 7.4 nebo novější) s podporou cURL.
- Composer – Nástroj pro správu PHP knihoven.
Krok 1: Instalace OpenAI PHP knihovny
Nainstalujte knihovnu pro práci s OpenAI API pomocí Composeru:
composer require openai-php/client
Krok 2: Struktura projektu
Vytvořte si projektovou strukturu:
project/
├── src/
│ ├── categories.php
│ └── generateDescription.php
├── composer.json
└── index.php
Krok 3: Definice kategorií
V souboru src/categories.php
nadefinujte seznam kategorií jako asociativní pole:
<?php
return [
1 => 'Electronics',
2 => 'Home & Kitchen',
3 => 'Books',
4 => 'Toys & Games',
5 => 'Clothing',
// Další kategorie podle potřeby
];
Krok 4: Skript pro generování popisků
Vytvořte soubor src/generateDescription.php
s funkcí pro volání OpenAI API:
<?php
require_once __DIR__ . '/../vendor/autoload.php';
use OpenAI\Client;
function generateProductDescription($product, $apiKey)
{
$client = Client::factory([
'api_key' => $apiKey,
]);
$categories = require __DIR__ . '/categories.php';
$prompt = "You are an AI assistant. Given the following product details, generate a description and assign a category ID from the predefined list in czech:\n\n" .
"Product ID: {$product['id']}\n" .
"Product Name: {$product['name']}\n" .
"Image URL: {$product['image']}\n\n" .
"Categories:\n" . implode("\n", array_map(fn($id, $name) => "$id: $name", array_keys($categories), $categories)) .
"\n\nRespond in JSON format with 'id', 'description', and 'category_id'.";
$response = $client->chat()->create([
'model' => 'gpt-4', // Nebo 'gpt-3.5-turbo'
'messages' => [
['role' => 'system', 'content' => 'You are a helpful assistant.'],
['role' => 'user', 'content' => $prompt],
],
]);
return json_decode($response['choices'][0]['message']['content'], true);
}
Krok 5: Hlavní skript
Vytvořte index.php
jako vstupní bod aplikace:
<?php
require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/src/generateDescription.php';
$apiKey = 'tvůj_openai_api_klíč'; // Nahraď vlastním klíčem
$product = [
'id' => 101,
'name' => 'Smartphone XYZ',
'image' => 'https://example.com/images/smartphone_xyz.jpg',
];
$result = generateProductDescription($product, $apiKey);
echo "<pre>";
print_r($result);
echo "</pre>";
Krok 6: Testování
- Spusťte PHP server:
php -S localhost:8000
- Otevřete prohlížeč a navštivte
http://localhost:8000/
. - Skript vrátí data ve formátu:
{ "id": 101, "description": "This is a high-quality smartphone with a sleek design...", "category_id": 1 }
Závěr
Tento skript demonstruje, jak snadno lze využít OpenAI API k automatizaci generování obsahu. Pokud chcete skript rozšířit, můžete přidat uložení výsledků do databáze nebo zpracování více produktů najednou.
Neváhejte mě kontaktovat, pokud byste potřebovali další rady nebo pomoc s implementací!