File: /var/www/ai-notam/laravel/resources/views/prompts-edit.blade.php.bkp
@extends('layouts.app')
@section('content')
<script>
window.allJobs = <?= json_encode($allJobs) ?>;
window.prompt = <?= json_encode($prompt) ?>;
window.fineTuningJobs = <?= json_encode($fineTuningJobs) ?>;
</script>
<div class="content" x-data="initPromptEdit()">
<div class="panel panel-flat">
<div class="panel-heading">
<h3 x-text="'ПРОМТ #'+prompt.id"></h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-2">
Статус:
<div class="m-2 text-danger" x-show="!prompt.is_active">
<i class="icon-x text-danger" ></i>Не активный
</div>
<div class="m-2 text-success" x-show="prompt.is_active">
<i class="icon-check"></i>Активный
</div>
</div>
<div class="col-lg-2">Создан: <div class="" x-text="moment(prompt.created_at).format('DD.MM.YYYY')"></div></div>
</div>
</div>
</div>
<div class="panel panel-flat">
<div class="panel-heading">
<h3>Промт</h3>
<div class="heading-elements">
<ul class="icons-list">
<li><a data-action="collapse" class=""></a></li>
</ul>
</div>
</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-12 mt-10">
<div class="col-lg-6 ">
<textarea :id="prompt.id+'-prompt'" class="col-lg-12" rows="10" cols="20" name="prompt" x-text="prompt.prompt"></textarea>
</div>
<div class="col-lg-6">
<textarea style="display: none" :id="prompt.id+'-json'" name="json" x-text="prompt.json"></textarea>
<div class="editor" style="height: 700px" :data-id="prompt.id" data-name="json" :data-value='prompt.json'></div>
</div>
</div>
<div class="col-lg-12">
<div>
<label>Тип</label>
<select id="type" name="type" class="clearfix p-5">
<option value="notam" :selected="prompt.type === 'notam'">Notam</option>
<option value="mel" :selected="prompt.type === 'mel'">Mel</option>
</select>
</div>
<div>
<label>Модель</label>
<select id="model" name="model" class="clearfix p-5">
<option value="gpt-4o" :selected="prompt.model === 'gpt-4o'">gpt-4o</option>
<option value="gpt-4o-mini" :selected="prompt.model === 'gpt-4o-mini'">gpt-4o-mini</option>
<template x-for="fineTuningJob in fineTuningJobs">
<option :value="fineTuningJob.model_name" x-text="fineTuningJob.model_name +' ('+fineTuningJob.examples_number+' примеров)'" :selected="prompt.model === fineTuningJob.model_name"></option>
</template>
</select>
</div>
<div>
<label>Вариативность (0-1. 0 - не вариативная, 1 - максимально вариативная)</label>
<input id="temperature" class="clearfix p-5" name="temperature" type="number" min="0" max="1" step="0.1" x-model="prompt.temperature" />
</div>
</div>
</div>
<div class="row mt-10">
<button class="btn btn-success" @click="updatePrompt(prompt.id)" >Сохранить</button>
</div>
</div>
</div>
<div class="panel panel-flat" id="inputPanel">
<div class="panel-heading">
<h3>Обучение</h3>
<div class="heading-elements">
<ul class="icons-list">
<li><a data-action="collapse" class=""></a></li>
</ul>
</div>
</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-6">
<div>Примеров доступно для обучения: <?=$fineTuningDataNumber ?></div>
<div>Примерная стоимость обучения: $<?=$tuningPrice ?></div>
<div class="mt-10">
<button class="btn btn-success" @click="newFineTuningJob(prompt.id, false)">Обучить новую модель</button>
</div>
</div>
<div class="col-lg-6">
<div>Примеров доступно для Дообучения: <?=$additionalFineTuningDataNumber ?></div>
<div>Примерная стоимость дообучения: $<?=$additionalTuningPrice ?></div>
<?php if ($additionalFineTuningDataNumber) { ?>
<div class="mt-10 grid grid-cols-2 gap-2">
<?php if ($additionalFineTuningDataNumber >= 10) { ?>
<button class="btn btn-success" style="margin-top:5px" @click="newFineTuningJob(prompt.id, true, 10)">
Дообучить на 10 примерах ($<?=$additionalTuningPrice10 ?>)
</button>
<?php } ?>
<?php if ($additionalFineTuningDataNumber >= 500) { ?>
<button class="btn btn-success" style="margin-top:5px" @click="newFineTuningJob(prompt.id, true, 500)">
Дообучить на 500 примерах ($<?=$additionalTuningPrice500 ?>)
</button>
<?php } ?>
<?php if ($additionalFineTuningDataNumber >= 1000) { ?>
<button class="btn btn-success" style="margin-top:5px" @click="newFineTuningJob(prompt.id, true, 1000)">
Дообучить на 1000 примерах ($<?=$additionalTuningPrice1000 ?>)
</button>
<?php } ?>
<?php if ($additionalFineTuningDataNumber >= 2000) { ?>
<button class="btn btn-success" style="margin-top:5px" @click="newFineTuningJob(prompt.id, true, 2000)">
Дообучить на 2000 примерах ($<?=$additionalTuningPrice2000 ?>)
</button>
<?php } ?>
<button class="btn btn-success" style="margin-top:5px" @click="newFineTuningJob(prompt.id, true)">
Дообучить на <?=$additionalFineTuningDataNumber ?> примерах ($<?=$additionalTuningPrice ?>)
</button>
</div>
<?php } ?>
</div>
</div>
<div class="mt-10">
<hr/>
<div x-show="!fineTuningJobs.length" x-cloak>
Обучение для данного ПРОМТ не производилось
</div>
<table class="table dataTable" x-show="fineTuningJobs.length" x-cloak>
<tr>
<th>ID</th>
<th>Дата</th>
<th>Количество примеров<br/>(родительская модель + новых)</th>
<th>Статус</th>
<th>Родительская модель</th>
<th>Модель</th>
<th>Используется</th>
<th>Ошибка</th>
</tr>
<template x-for="fineTuningJob in fineTuningJobs">
<tr>
<td x-text="fineTuningJob.id"></td>
<td x-text="moment(fineTuningJob.created_at).format('DD.MM.YYYY HH:mm')"></td>
<td x-text="fineTuningJob.examples_number"></td>
<td x-text="fineTuningJob.job_status"></td>
<td x-text="fineTuningJob.parent_model"></td>
<td x-text="fineTuningJob.model_name"></td>
<td>
<i class="icon-check text-success" x-show="fineTuningJob.model_name === prompt.model" x-show="log.fine_tuning"></i>
</td>
<td x-text="fineTuningJob.error"></td>
</tr>
</template>
</table>
<h3>Все обучения</h3>
<table class="table dataTable">
<tr>
<th>ID</th>
<th>Дата</th>
<th>Количество токенов</th>
<th>Статус</th>
<th>Родительская модель</th>
<th>Модель</th>
<th>Ошибка</th>
</tr>
<template x-for="fineTuningJob in window.allJobs.data">
<tr>
<td x-text="fineTuningJob.id"></td>
<td x-text="new Date(fineTuningJob.created_at * 1000).toString()"></td>
<td x-text="fineTuningJob.trained_tokens"></td>
<td x-text="fineTuningJob.status"></td>
<td x-text="fineTuningJob.model"></td>
<td x-text="fineTuningJob.fine_tuned_model"></td>
<td x-text="JSON.stringify(fineTuningJob.error)"></td>
</tr>
</template>
</table>
</div>
</div>
</div>
</div>
@endsection