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;