0めも
// URLからHTMLコンテンツを取得する関数
function getHtmlContent($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($ch);
curl_close($ch);
return $html;
}
// OpenAI APIの認証情報
$apiKey = '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’;
$modelId = 'Curie’;
// GPT-3を使用して文章生成する関数
function generateText($prompt, $apiKey, $modelId) {
$data = array(
'prompt’ => $prompt,
'temperature’ => 0.7,
'max_tokens’ => 4024,
'top_p’ => 1,
'frequency_penalty’ => 0,
'presence_penalty’ => 0
);
$payload = json_encode($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, “https://api.openai.com/v1/models/$modelId/completions");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
“Content-Type: application/json",
“Authorization: Bearer $apiKey"
));
$result = curl_exec($ch);
curl_close($ch);
$data = json_decode($result, true);
return $data['choices’][0]['text’];
}
// メインの処理
$url = 'https://news.livedoor.com/article/detail/23830444/’;
$html = getHtmlContent($url);
// HTMLから記事のテキストを取得する
$doc = new DOMDocument();
@$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$nodes = $xpath->query('//div[@class="articleBody"]/p’);
$articleText = ";
foreach ($nodes as $node) {
$articleText .= $node->nodeValue;
}
// 記事のテキストをGPT-3に入力して、感想を生成する
$prompt = “Please generate some feedback on the following article:\n\n$articleText";
$feedback = generateText($prompt, $apiKey, $modelId);
// 結果を表示する
echo “Feedback for $url:\n\n";
echo $feedback;