Add (political checks)
This commit is contained in:
@@ -13,7 +13,7 @@ public static function getRssPostMetaGpt3($user_prompt, $model_max_tokens = 1536
|
|||||||
|
|
||||||
$openai_config = 'openai-gpt-3-5-turbo-1106';
|
$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);
|
return self::getChatCompletion($user_prompt, $system_prompt, $openai_config, $model_max_tokens, $timeout);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,24 @@
|
|||||||
use GrahamCampbell\Markdown\Facades\Markdown;
|
use GrahamCampbell\Markdown\Facades\Markdown;
|
||||||
use Illuminate\Support\Str;
|
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')) {
|
if (! function_exists('is_valid_url')) {
|
||||||
function is_valid_url($url)
|
function is_valid_url($url)
|
||||||
{
|
{
|
||||||
@@ -162,7 +180,19 @@ function get_domain_from_url($url)
|
|||||||
{
|
{
|
||||||
$parse = parse_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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,14 @@
|
|||||||
|
|
||||||
class TestController extends Controller
|
class TestController extends Controller
|
||||||
{
|
{
|
||||||
|
public function blacklistkw(Request $request)
|
||||||
|
{
|
||||||
|
$country_names = get_country_names(true);
|
||||||
|
|
||||||
|
dd($country_names);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public function prm(Request $request)
|
public function prm(Request $request)
|
||||||
{
|
{
|
||||||
$id = $request->input('id');
|
$id = $request->input('id');
|
||||||
|
|||||||
@@ -49,6 +49,8 @@ public static function handleSingle($rss_url, $hours = 3)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$blacklist_rss_post_keywords = array_merge($blacklist_rss_post_keywords, get_country_names(true));
|
||||||
|
|
||||||
foreach ($blacklist_rss_post_keywords as $blacklist_keyword)
|
foreach ($blacklist_rss_post_keywords as $blacklist_keyword)
|
||||||
{
|
{
|
||||||
if (str_contains(strtolower($title), $blacklist_keyword))
|
if (str_contains(strtolower($title), $blacklist_keyword))
|
||||||
|
|||||||
@@ -147,6 +147,28 @@ public static function handle(int $rss_post_id)
|
|||||||
$rss_post->status = 'published';
|
$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->save()) {
|
||||||
|
|
||||||
if ($rss_post->status == 'published') {
|
if ($rss_post->status == 'published') {
|
||||||
|
|||||||
BIN
public/futurewalker-600x400-banner.png
Normal file
BIN
public/futurewalker-600x400-banner.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 173 KiB |
BIN
public/futurewalker-600x400-banner.webp
Normal file
BIN
public/futurewalker-600x400-banner.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 100 KiB |
BIN
public/futurewalker-600x600-banner.jpg
Normal file
BIN
public/futurewalker-600x600-banner.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 218 KiB |
BIN
public/futurewalker-600x600-banner.webp
Normal file
BIN
public/futurewalker-600x600-banner.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 142 KiB |
@@ -99,6 +99,8 @@
|
|||||||
return 'ok';
|
return 'ok';
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Route::get('/blacklistkw', [App\Http\Controllers\Tests\TestController::class, 'blacklistkw']);
|
||||||
|
|
||||||
Route::get('/prm', [App\Http\Controllers\Tests\TestController::class, 'prm']);
|
Route::get('/prm', [App\Http\Controllers\Tests\TestController::class, 'prm']);
|
||||||
|
|
||||||
Route::get('/opml', [App\Http\Controllers\Tests\TestController::class, 'opml']);
|
Route::get('/opml', [App\Http\Controllers\Tests\TestController::class, 'opml']);
|
||||||
|
|||||||
Reference in New Issue
Block a user