File: /var/www/html/laravel/database/migrations/2024_09_10_083412_short_examples_update.php
<?php
use App\Models\Notam;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
$examples = file_get_contents(base_path().'/../src/common/json-data/fine-tuning-short.jsonl');
$examples = explode("\n", $examples);
$examples = array_map('json_decode', $examples);
$oldExamples = Notam::where('comments', 'Заготовленый пример')->pluck('id')->toArray();
$i = 0;
foreach ($examples as $example) {
if (!$example) continue;
$notamId = $oldExamples[$i];
$input = json_encode($example->input);
$output = json_encode($example->output);
DB::statement("UPDATE notams SET input = '{$this->cleanSpaces($input)}', output = '{$this->cleanSpaces($output)}', correct_response = '{$this->cleanSpaces($output)}' where id = $notamId");
$i++;
}
}
/**
* Reverse the migrations.
*/
public function down(): void
{
//
}
public function cleanSpaces($string)
{
return str_replace(['{ ', ' }', ' {', ', ', ' ]', '[ '], ['{', '}', '{', ',', ']', '['], $string);
}
};