Add (political checks)

This commit is contained in:
2023-11-28 19:32:42 +08:00
parent 50dce76e55
commit 21ae20a600
10 changed files with 66 additions and 2 deletions

View File

@@ -13,7 +13,7 @@ public static function getRssPostMetaGpt3($user_prompt, $model_max_tokens = 1536
$openai_config = 'openai-gpt-3-5-turbo-1106';
$system_prompt = "Based on given article, populate the following in valid JSON format:\n{\n\"title\":\"(Title based on article)\",\n\"keywords\":[\"(Important keywords in 1-2 words per keyword, letters only)\"],\n\"category\":\"(Updates|Opinions|Features|New Launches|How Tos|Reviews)\",\n\"summary\":\"(Summarise in 50-80 words to help readers understand this article, US grade 9 english)\",\n\"entities\":[\"(List of identified human or business legal entites in 1-2 words per entity, letters only)\"],\n\"society_impact\":\"(Explain in 30-50 words how it impact society on technological aspect, US grade 9 english)\",\n\"society_impact_level\":\"(low|medium|high)\"\n}";
$system_prompt = "Based on given article, populate the following in valid JSON format:\n{\n\"title\":\"(Title based on article)\",\n\"is_ai_or_tech_news\":(true|false),\n\"is_government_or_political_news\":(true|false),\n\"keywords\":[\"(Important keywords in 1-2 words per keyword, letters only)\"],\n\"category\":\"(Updates|Opinions|Features|New Launches|How Tos|Reviews)\",\n\"summary\":\"(Summarise in 50-80 words to help readers understand this article, US grade 9 english)\",\n\"entities\":[\"(List of identified human or business legal entites in 1-2 words per entity, letters only)\"],\n\"society_impact\":\"(Explain in 30-50 words how it impact society on technological aspect, US grade 9 english)\",\n\"society_impact_level\":\"(low|medium|high)\"\n}";
return self::getChatCompletion($user_prompt, $system_prompt, $openai_config, $model_max_tokens, $timeout);
}

View File

@@ -3,6 +3,24 @@
use GrahamCampbell\Markdown\Facades\Markdown;
use Illuminate\Support\Str;
if (! function_exists('get_country_names')) {
function get_country_names($lowercase = false) {
$countryCodes = config('platform.country_codes');
$countryNames = [];
foreach ($countryCodes as $code => $country) {
$name = $country['name'];
if ($lowercase) {
$name = strtolower($name);
}
$countryNames[] = $name;
}
return $countryNames;
}
}
if (! function_exists('is_valid_url')) {
function is_valid_url($url)
{
@@ -162,7 +180,19 @@ function get_domain_from_url($url)
{
$parse = parse_url($url);
return $parse['host'];
// Check if 'host' key exists in the parsed URL array
if (!isset($parse['host'])) {
return null; // or you can throw an exception or handle this case as per your requirement
}
$host = $parse['host'];
// Check if the domain starts with 'www.' and remove it
if (substr($host, 0, 4) === 'www.') {
$host = substr($host, 4);
}
return $host;
}
}

View File

@@ -16,6 +16,14 @@
class TestController extends Controller
{
public function blacklistkw(Request $request)
{
$country_names = get_country_names(true);
dd($country_names);
}
public function prm(Request $request)
{
$id = $request->input('id');

View File

@@ -49,6 +49,8 @@ public static function handleSingle($rss_url, $hours = 3)
continue;
}
$blacklist_rss_post_keywords = array_merge($blacklist_rss_post_keywords, get_country_names(true));
foreach ($blacklist_rss_post_keywords as $blacklist_keyword)
{
if (str_contains(strtolower($title), $blacklist_keyword))

View File

@@ -147,6 +147,28 @@ public static function handle(int $rss_post_id)
$rss_post->status = 'published';
}
if (!$rss_post->status != 'blocked')
{
if (isset($post_meta_response->output->is_ai_or_tech_news))
{
if ($post_meta_response->output->is_ai_or_tech_news != true)
{
$rss_post->status = 'blocked';
}
else
{
if (isset($post_meta_response->output->is_government_or_political_news))
{
if($post_meta_response->output->is_ai_or_tech_news == true)
{
$rss_post->status = 'blocked';
}
}
}
}
}
if ($rss_post->save()) {
if ($rss_post->status == 'published') {

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

View File

@@ -99,6 +99,8 @@
return 'ok';
});
Route::get('/blacklistkw', [App\Http\Controllers\Tests\TestController::class, 'blacklistkw']);
Route::get('/prm', [App\Http\Controllers\Tests\TestController::class, 'prm']);
Route::get('/opml', [App\Http\Controllers\Tests\TestController::class, 'opml']);