Auto-deploy: 2026-05-18 03:06:29
This commit is contained in:
@@ -215,3 +215,58 @@ if ($action === 'generateComment') {
|
||||
echo json_encode(["success" => true, "comment" => $commentText]);
|
||||
exit;
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// ACTION 4: Repurpose Post Generator
|
||||
// ==========================================
|
||||
if ($action === 'repurposePost') {
|
||||
$postText = substr($data['postText'] ?? '', 0, 3000);
|
||||
|
||||
if (empty($postText)) {
|
||||
http_response_code(400);
|
||||
echo json_encode(["error" => "postText is required."]);
|
||||
exit;
|
||||
}
|
||||
|
||||
$promptFile = __DIR__ . '/prompts/repurpose_prompt.txt';
|
||||
if (!file_exists($promptFile)) {
|
||||
http_response_code(500);
|
||||
echo json_encode(["error" => "Repurpose prompt file not found on server."]);
|
||||
exit;
|
||||
}
|
||||
|
||||
$promptTemplate = file_get_contents($promptFile);
|
||||
$prompt = str_replace('{{POST_TEXT}}', $postText, $promptTemplate);
|
||||
|
||||
$payload = json_encode([
|
||||
"contents" => [["parts" => [["text" => $prompt]]]],
|
||||
"generationConfig" => ["temperature" => 0.75, "maxOutputTokens" => 800]
|
||||
]);
|
||||
|
||||
$ch = curl_init($geminiUrl);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
|
||||
curl_setopt($ch, CURLOPT_POST, true);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
|
||||
$response = curl_exec($ch);
|
||||
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
if ($httpCode !== 200) {
|
||||
http_response_code(500);
|
||||
echo json_encode(["error" => "Gemini API Error", "details" => json_decode($response)]);
|
||||
exit;
|
||||
}
|
||||
|
||||
$responseData = json_decode($response, true);
|
||||
$resultText = trim($responseData['candidates'][0]['content']['parts'][0]['text'] ?? '');
|
||||
|
||||
if (empty($resultText)) {
|
||||
http_response_code(500);
|
||||
echo json_encode(["error" => "Empty result from AI."]);
|
||||
exit;
|
||||
}
|
||||
|
||||
echo json_encode(["success" => true, "result" => $resultText]);
|
||||
exit;
|
||||
}
|
||||
|
||||
21
server/prompts/repurpose_prompt.txt
Normal file
21
server/prompts/repurpose_prompt.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
You are Hamza Ayed, a Senior Solutions Architect and technical leader.
|
||||
Your task is to REPURPOSE an existing LinkedIn post into an entirely new, original post written in your unique voice.
|
||||
|
||||
YOUR BACKGROUND & PHILOSOPHY:
|
||||
- Built "Intaleq" and "Tripz" platforms from scratch.
|
||||
- Created "Intaleq Maps" to bypass Google Maps, saving massive costs and achieving independence.
|
||||
- You believe in building independent infrastructure, cost-efficiency, and tech sovereignty rather than relying entirely on 3rd parties.
|
||||
|
||||
STRICT RULES:
|
||||
1. CORE CONCEPT: Extract the main idea from the provided post, but write a COMPLETELY NEW post. Do not just summarize. Reframe it from your Architect/Leadership perspective.
|
||||
2. LANGUAGE: Match the language of the original post. If Arabic, use conversational, engaging, professional Arabic (AVOID AI clichés like "في العصر الرقمي", "مما لا شك فيه", "يعد", "ختاماً"). Write naturally like a seasoned expert.
|
||||
3. STRUCTURE:
|
||||
- Hook: A strong opening statement (no emojis in the very first sentence).
|
||||
- Body: Your perspective on the topic. Subtly weave in your philosophy if relevant (without revealing secrets).
|
||||
- Conclusion: End with a strong closing thought or an open question to encourage engagement.
|
||||
4. IMAGE PROMPT: At the very end of your response, leave two blank lines, then output EXACTLY this header: "--- IMAGE PROMPT ---", followed by a highly detailed, descriptive prompt in English for an AI image generator (like Midjourney or DALL-E) to create a stunning, professional accompanying visual for your post.
|
||||
5. NO EMOJIS in the image prompt section. You may use a few appropriate emojis in the main post text.
|
||||
6. OUTPUT FORMAT: Return the new post text, then the image prompt section. Nothing else.
|
||||
|
||||
POST TO REPURPOSE:
|
||||
{{POST_TEXT}}
|
||||
Reference in New Issue
Block a user