Updates to ai worker

This commit is contained in:
Ryan Shpeherd
2026-09-26 10:23:55 -04:00
parent e443191833
commit a04e6e241b
+27 -5
View File
@@ -9,15 +9,24 @@ my $seconds = $ENV{'SECONDS_PER_FRAME'} || 30;
my $ollama = $ENV{'OLLAMA_URL'} || 'http://10.0.1.7:11434'; my $ollama = $ENV{'OLLAMA_URL'} || 'http://10.0.1.7:11434';
my $api = $ENV{'API_BASE_URL'} || 'http://10.0.1.7:3000'; my $api = $ENV{'API_BASE_URL'} || 'http://10.0.1.7:3000';
my $task_count = $ENV{'TASK_COUNT'} || 1; my $task_count = $ENV{'TASK_COUNT'} || 1;
my $image_count = $ENV{'IMAGE_COUNT'} || 10; # Number of images to extract from the video
my $min_time = $ENV{'MIN_TIME'} || 5; # Minimum time between images
my $sensitivity = 20; my $sensitivity = 20;
my $resolution = "672:672"; my $resolution = "672:672";
my $model = "hf.co/Jommarn/UNSEEN_Gemma_4_26B_NSFW-GGUF:Q8_0"; #my $model = "hf.co/Jommarn/UNSEEN_Gemma_4_26B_NSFW-GGUF:Q8_0";
my $model = "hf.co/Jommarn/UNSEEN_Gemma_4_26B_NSFW-GGUF:Q5_K_M";
chdir("/tmp") || die "Unable to change directory to /tmp: $!\n"; chdir("/tmp") || die "Unable to change directory to /tmp: $!\n";
my $ua = LWP::UserAgent->new; my $ua = LWP::UserAgent->new;
$ua->timeout(60); $ua->timeout(60);
if(@ARGV) {
CheckPath($ARGV[0], {'duration' => 0});
exit;
}
for(my $i=0; $i<$task_count; $i++) { for(my $i=0; $i<$task_count; $i++) {
my $ref = GetNext(); my $ref = GetNext();
my $task = $ref->{'task'}; my $task = $ref->{'task'};
@@ -26,7 +35,7 @@ for(my $i=0; $i<$task_count; $i++) {
my $task_id = $task->{'id'}; my $task_id = $task->{'id'};
my $video_id = $video->{'id'}; my $video_id = $video->{'id'};
my $path = $video->{'file_path'}; my $path = $video->{'file_path'};
my $result = CheckPath($path); my $result = CheckPath($path, $video);
next unless $result; next unless $result;
@@ -37,12 +46,21 @@ print "Done\n";
exit(0); exit(0);
sub CheckPath { sub CheckPath {
my ($path) = @_; my ($path, $video) = @_;
die "File path not set\n" unless $path; die "File path not set\n" unless $path;
die "File does not exist: $path\n" unless -e $path; die "File does not exist: $path\n" unless -e $path;
unlink(<*.png>); unlink(<*.png>);
system("ffmpeg -i \"$path\" -vf fps=1/$seconds,scale=$resolution output_%04d.png");
# Pick a frame interval that spreads $image_count frames across the video,
# but never more frequently than 1 frame per $min_time seconds.
my $interval = $seconds; # fallback if duration is unknown
if (my $duration = $video->{'duration'}) {
my $desired = $duration / $image_count;
$interval = ($desired > $min_time) ? $desired : $min_time;
}
system("ffmpeg -i \"$path\" -vf fps=1/$interval,scale=$resolution output_%04d.png 2>&1");
my $total=0; my $total=0;
@@ -66,9 +84,13 @@ sub CheckPath {
my $url = "$ollama/api/generate"; my $url = "$ollama/api/generate";
my $res = GetRest($url, $ref); my $res = GetRest($url, $ref);
print "$file\t$res\n"; print "$file\t$res\n";
#Remove thought information from the response
$res =~ s/<\|channel>.*?<channel\|>//s;
$res =~ s/^\s+|\s+$//g;
$total++; $total++;
if($res=~/yes$/i) { if($res=~/yes/i) {
$yes++; $yes++;
print "\tYES\n";
} }
unlink($file); unlink($file);
} }