From 0b30c57ba777b09f58be413541d62a71c66c97a1 Mon Sep 17 00:00:00 2001 From: jsboige Date: Sun, 17 May 2026 22:37:22 +0200 Subject: [PATCH] feat(dataset-updater): add multi-provider API support + switch EN configs to gpt-5.5 Add BaseUrl and MaxOutputTokens to Prompt.cs and DatasetUpdaterConfig.cs, enabling any OpenAI-compatible API endpoint (OpenRouter, local models, etc.). Switch Virtues EN and Scenarii EN translation configs from gpt-5.4-mini to gpt-5.5 via direct OpenAI API for best translation quality per benchmark. Add .keys/ to .gitignore for API key storage. Co-Authored-By: Claude Opus 4.7 --- .gitignore | 1 + .../DatasetUpdater/DatasetUpdaterConfig.cs | 6 ++++++ .../DatasetUpdaterRootConfig.cs | 16 ++++++++++------ .../DatasetUpdater/Prompt.cs | 19 ++++++++++++++++++- 4 files changed, 35 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 2a8df80bc..5686213a5 100644 --- a/.gitignore +++ b/.gitignore @@ -226,3 +226,4 @@ _ref_preview/ # Claude Code session artifacts in subdirectories (not root .claude/) Generation/**/.claude/ +.keys/ diff --git a/Generation/Converters/Argumentum.AssetConverter/DatasetUpdater/DatasetUpdaterConfig.cs b/Generation/Converters/Argumentum.AssetConverter/DatasetUpdater/DatasetUpdaterConfig.cs index 953c3c674..75435de9f 100644 --- a/Generation/Converters/Argumentum.AssetConverter/DatasetUpdater/DatasetUpdaterConfig.cs +++ b/Generation/Converters/Argumentum.AssetConverter/DatasetUpdater/DatasetUpdaterConfig.cs @@ -31,6 +31,10 @@ public class DatasetUpdaterConfig public string Model { get; set; } = "gpt-5.4-mini"; + public string? BaseUrl { get; set; } + + public int? MaxOutputTokens { get; set; } + public int MaxTokensPerMinute { get; set; } = 70000; public DivisionMode DivisionMode { get; set; } @@ -469,6 +473,8 @@ private async Task DoChatGPTCall(CancellationToken ct, List DialogPrompts { get; set; } = new(); @@ -32,7 +36,15 @@ public ChatClient ChatClient { if (_chatClient == null) { - _openAIClient = new OpenAI.OpenAIClient(ApiKey); + if (!string.IsNullOrEmpty(BaseUrl)) + { + var options = new OpenAI.OpenAIClientOptions { Endpoint = new Uri(BaseUrl) }; + _openAIClient = new OpenAI.OpenAIClient(new System.ClientModel.ApiKeyCredential(ApiKey), options); + } + else + { + _openAIClient = new OpenAI.OpenAIClient(ApiKey); + } _chatClient = _openAIClient.GetChatClient(Model); } return _chatClient; @@ -77,6 +89,11 @@ public async Task Send(CancellationToken cancellationToken, Action 0) { foreach (var func in Functions)