Add (ai gen): auto-select categories
This commit is contained in:
@@ -8,13 +8,15 @@
|
||||
|
||||
class OpenAI
|
||||
{
|
||||
public static function writeProductArticle($excerpt, $photos)
|
||||
public static function writeProductArticle($excerpt, $photos, $categories)
|
||||
{
|
||||
//$excerpt = substr($excerpt, 0, 1500);
|
||||
|
||||
$category_str = implode("|", $categories);
|
||||
|
||||
$system_prompt = '
|
||||
You are tasked with writing a comprehensive product introduction & review article using the provided excerpt. Write as if you are reviewing the product by a third party, but no pronouns.The emphasis should be on the performance, features, and notable aspects of the product. The review must not delve into marketplace-related information. Return the output in the following json format:\n\n
|
||||
{"title": "(Article Title, start with product name, 60-70 characters)","excerpt": "(One sentence summary, 150-160 characters of an article, do not use start sentence with verb.)","cliffhanger": "(One sentence 70-80 characters of article, cliff-hanging sentence to attract readers)","body": "(Markdown format, 700-900 word count)"}\n\n
|
||||
{"category":"('. $category_str .')","title": "(Article Title, start with product name, 60-70 characters)","excerpt": "(One sentence summary, 150-160 characters of an article, do not use start sentence with verb.)","cliffhanger": "(One sentence 70-80 characters of article, cliff-hanging sentence to attract readers)","body": "(Markdown format, 700-900 word count)"}\n\n
|
||||
Mandatory Requirements:\n
|
||||
- Write in US grade 8-9 English\n
|
||||
- Use the following sections whenever applicable:\n
|
||||
@@ -26,6 +28,7 @@ public static function writeProductArticle($excerpt, $photos)
|
||||
- do not make up facts, use facts provided by excerpt only\n
|
||||
- No article titles inside markdown\n
|
||||
- All article sections use ###
|
||||
- Pick the closest given category
|
||||
|
||||
';
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
use App\Models\AiWriteup;
|
||||
use App\Models\Post;
|
||||
use App\Models\PostCategory;
|
||||
use App\Models\Category;
|
||||
use App\Models\ShopeeSellerCategory;
|
||||
use App\Models\ShopeeSellerScrape;
|
||||
use App\Models\ShopeeSellerScrapedImage;
|
||||
@@ -54,7 +55,15 @@ public static function handle(ShopeeSellerScrape $shopee_seller_scrape)
|
||||
$ai_writeup = AiWriteup::where('source', 'shopee')->where('source_url', $shopee_task->product_task->response->url)->first();
|
||||
|
||||
if (is_null($ai_writeup)) {
|
||||
$ai_output = OpenAI::writeProductArticle($excerpt, $photos);
|
||||
|
||||
$categories = [
|
||||
'Beauty',
|
||||
'Technology',
|
||||
'Home & Living',
|
||||
'Health & Fitness'
|
||||
];
|
||||
|
||||
$ai_output = OpenAI::writeProductArticle($excerpt, $photos, $categories);
|
||||
|
||||
//dd($ai_output);
|
||||
|
||||
@@ -65,11 +74,19 @@ public static function handle(ShopeeSellerScrape $shopee_seller_scrape)
|
||||
inspector()->reportException($e);
|
||||
throw ($e);
|
||||
} else {
|
||||
|
||||
$picked_category = Category::where('name', $ai_output->category)->where('country_locale_id', $shopee_seller_scrape->category->country_locale_id)->first();
|
||||
|
||||
if (is_null($picked_category))
|
||||
{
|
||||
$picked_category = $shopee_seller_scrape->category;
|
||||
}
|
||||
|
||||
// save
|
||||
$ai_writeup = new AiWriteup;
|
||||
$ai_writeup->source = 'shopee';
|
||||
$ai_writeup->source_url = $shopee_task->product_task->response->url;
|
||||
$ai_writeup->category_id = $shopee_seller_scrape->category->id;
|
||||
$ai_writeup->category_id = $picked_category->category->id;
|
||||
$ai_writeup->title = $ai_output->title;
|
||||
$ai_writeup->excerpt = $ai_output->excerpt;
|
||||
$ai_writeup->featured_image = '';
|
||||
@@ -120,7 +137,7 @@ public static function handle(ShopeeSellerScrape $shopee_seller_scrape)
|
||||
|
||||
PostCategory::create([
|
||||
'post_id' => $post->id,
|
||||
'category_id' => $shopee_seller_scrape->category->id,
|
||||
'category_id' => $picked_category->id,
|
||||
]);
|
||||
|
||||
if (app()->environment() == 'production') {
|
||||
|
||||
Reference in New Issue
Block a user