[AI] Route AI calls through the Xray/V2Ray proxy (reach OpenAI from Iran)
Add AiUseProxy setting + a toggle in the AI settings section. ScrapeHttpClients.ForAi(settings) returns a proxied HttpClient (reusing IngestProxyUrl, 100s timeout) when AiUseProxy is on, otherwise direct; AI-cache keys are protected from the scrape-client cleanup. OpenAiCompatibleAuditor now uses it, so the AI auditor (e.g. api.openai.com) is reachable through the same Xray sidecar that serves Telegram. Migration adds the column. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -73,6 +73,11 @@
|
||||
<input type="checkbox" name="AiAutoApprove" value="true" checked="@Model.AiAutoApprove" />
|
||||
<span class="t-body"><span>در حالت خودکار، آگهیهایی که AI تأیید میکند مستقیم منتشر شوند</span></span>
|
||||
</label>
|
||||
<label class="toggle-row">
|
||||
<input type="checkbox" name="AiUseProxy" value="true" checked="@Model.AiUseProxy" />
|
||||
<span class="t-body"><span>ارسال درخواست هوش مصنوعی از طریق پروکسی</span>
|
||||
<span class="t-hint">برای دسترسی به سرویسهایی مثل OpenAI از داخل ایران؛ از همان آدرس پروکسی تب «منابع جمعآوری» استفاده میکند.</span></span>
|
||||
</label>
|
||||
</section>
|
||||
|
||||
<!-- SOURCES -->
|
||||
|
||||
@@ -29,6 +29,7 @@ public class SettingsModel : PageModel
|
||||
[BindProperty] public string? AiModel { get; set; }
|
||||
[BindProperty] public string AiSystemPrompt { get; set; } = "";
|
||||
[BindProperty] public bool AiAutoApprove { get; set; }
|
||||
[BindProperty] public bool AiUseProxy { get; set; }
|
||||
// Channel scraping sources
|
||||
[BindProperty] public bool AutoIngestEnabled { get; set; }
|
||||
[BindProperty] public int IngestIntervalMinutes { get; set; } = 30;
|
||||
@@ -76,6 +77,7 @@ public class SettingsModel : PageModel
|
||||
AiModel = s.AiModel;
|
||||
AiSystemPrompt = s.AiSystemPrompt;
|
||||
AiAutoApprove = s.AiAutoApprove;
|
||||
AiUseProxy = s.AiUseProxy;
|
||||
AutoIngestEnabled = s.AutoIngestEnabled;
|
||||
IngestIntervalMinutes = s.IngestIntervalMinutes;
|
||||
TelegramEnabled = s.TelegramEnabled;
|
||||
@@ -120,6 +122,7 @@ public class SettingsModel : PageModel
|
||||
AiModel = AiModel,
|
||||
AiSystemPrompt = AiSystemPrompt,
|
||||
AiAutoApprove = AiAutoApprove,
|
||||
AiUseProxy = AiUseProxy,
|
||||
AutoIngestEnabled = AutoIngestEnabled,
|
||||
IngestIntervalMinutes = IngestIntervalMinutes,
|
||||
TelegramEnabled = TelegramEnabled,
|
||||
|
||||
Reference in New Issue
Block a user