68 lines
4.2 KiB
Plaintext
68 lines
4.2 KiB
Plaintext
|
|
@page
|
||
|
|
@model JobsMedical.Web.Pages.Admin.SettingsModel
|
||
|
|
@{
|
||
|
|
ViewData["Title"] = "تنظیمات جمعآوری و هوش مصنوعی";
|
||
|
|
}
|
||
|
|
|
||
|
|
<div class="page-head">
|
||
|
|
<div class="container">
|
||
|
|
<h1>تنظیمات جمعآوری و هوش مصنوعی</h1>
|
||
|
|
<p class="muted"><a asp-page="/Admin/Index">← بازگشت به صف</a></p>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<div class="container section" style="max-width:680px;">
|
||
|
|
@if (Model.Saved is not null)
|
||
|
|
{
|
||
|
|
<div class="alert alert-success">✓ @Model.Saved</div>
|
||
|
|
}
|
||
|
|
<form method="post" class="card card-pad">
|
||
|
|
<h3 style="margin-top:0;">حالت انتشار</h3>
|
||
|
|
<div class="filter-group">
|
||
|
|
<label>نحوه افزودن آگهیها به سایت</label>
|
||
|
|
<select name="Mode">
|
||
|
|
<option value="0" selected="@(Model.Mode == JobsMedical.Web.Models.IngestionMode.Manual)">دستی — همه به صف بررسی میروند</option>
|
||
|
|
<option value="1" selected="@(Model.Mode == JobsMedical.Web.Models.IngestionMode.Automatic)">خودکار — موارد تأییدشده مستقیم منتشر میشوند</option>
|
||
|
|
</select>
|
||
|
|
</div>
|
||
|
|
<div class="filter-group">
|
||
|
|
<label>حداقل درصد اطمینان برای انتشار خودکار (بدون هوش مصنوعی)</label>
|
||
|
|
<input type="number" name="AutoPublishMinConfidence" min="0" max="100" value="@Model.AutoPublishMinConfidence" dir="ltr" />
|
||
|
|
<p class="muted" style="font-size:12px; margin:4px 0 0;">در حالت خودکار و بدون AI، آگهیهایی با اطمینان بالاتر از این مقدار خودکار منتشر میشوند.</p>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<hr style="border:none; border-top:1px solid var(--line); margin:18px 0;" />
|
||
|
|
|
||
|
|
<h3 style="margin-top:0;">لایه هوش مصنوعی (اختیاری)</h3>
|
||
|
|
<div class="filter-group">
|
||
|
|
<label style="display:flex; align-items:center; gap:8px; font-weight:700;">
|
||
|
|
<input type="checkbox" name="AiEnabled" value="true" style="width:auto;" checked="@Model.AiEnabled" />
|
||
|
|
فعالسازی بررسی با هوش مصنوعی قبل از انتشار
|
||
|
|
</label>
|
||
|
|
<p class="muted" style="font-size:12px; margin:4px 0 0;">در صورت فعال بودن، هر آگهی پیش از انتشار توسط مدل بررسی و تأیید/رد/ساختارمند میشود.</p>
|
||
|
|
</div>
|
||
|
|
<div class="filter-group">
|
||
|
|
<label>آدرس سرویس (سازگار با OpenAI)</label>
|
||
|
|
<input type="text" name="AiEndpoint" value="@Model.AiEndpoint" placeholder="https://host/v1/chat/completions" dir="ltr" />
|
||
|
|
<p class="muted" style="font-size:12px; margin:4px 0 0;">میتواند یک مدل self-hosted یا سرویس داخلی باشد (OpenAI/Anthropic در ایران مسدودند).</p>
|
||
|
|
</div>
|
||
|
|
<div class="filter-group" style="display:flex; gap:8px;">
|
||
|
|
<div style="flex:1;"><label>کلید API</label><input type="password" name="AiApiKey" value="@Model.AiApiKey" dir="ltr" /></div>
|
||
|
|
<div style="flex:1;"><label>نام مدل</label><input type="text" name="AiModel" value="@Model.AiModel" dir="ltr" /></div>
|
||
|
|
</div>
|
||
|
|
<div class="filter-group">
|
||
|
|
<label>دستور و چارچوب هوش مصنوعی (Prompt / Framework)</label>
|
||
|
|
<textarea name="AiSystemPrompt" rows="10" dir="rtl">@Model.AiSystemPrompt</textarea>
|
||
|
|
<p class="muted" style="font-size:12px; margin:4px 0 0;">به مدل بگو چطور تأیید/رد کند و چه فیلدهایی را استخراج کند. خروجی باید JSON باشد.</p>
|
||
|
|
</div>
|
||
|
|
<div class="filter-group">
|
||
|
|
<label style="display:flex; align-items:center; gap:8px; font-weight:700;">
|
||
|
|
<input type="checkbox" name="AiAutoApprove" value="true" style="width:auto;" checked="@Model.AiAutoApprove" />
|
||
|
|
در حالت خودکار، آگهیهایی که AI تأیید میکند مستقیم منتشر شوند
|
||
|
|
</label>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<button type="submit" class="btn btn-accent btn-block btn-lg">ذخیره تنظیمات</button>
|
||
|
|
</form>
|
||
|
|
</div>
|