모델 프로파일 기반 Cowork/Code 루프와 진행 UX 고도화 반영
- 등록 모델 실행 프로파일을 검증 게이트, 문서 fallback, post-tool verification까지 확장 적용 - Cowork/Code 진행 카드에 계획/도구/검증/압축/폴백/재시도 단계 메타를 추가해 대기 상태 가시성 강화 - OpenAI/vLLM tool 요청에 병렬 도구 호출 힌트를 추가하고 회귀 프롬프트 문서를 프로파일 기준으로 전면 정리 - 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
This commit is contained in:
@@ -17,6 +17,7 @@ internal sealed class ModelRegistrationDialog : Window
|
||||
|
||||
// IBM/CP4D 인증 필드
|
||||
private readonly ComboBox _authTypeBox;
|
||||
private readonly ComboBox _executionProfileBox;
|
||||
private readonly StackPanel _cp4dPanel;
|
||||
private readonly TextBox _cp4dUrlBox;
|
||||
private readonly TextBox _cp4dUsernameBox;
|
||||
@@ -28,6 +29,7 @@ internal sealed class ModelRegistrationDialog : Window
|
||||
public string ApiKey => _apiKeyBox.Text.Trim();
|
||||
public bool AllowInsecureTls => _allowInsecureTlsCheck.IsChecked == true;
|
||||
public string AuthType => (_authTypeBox.SelectedItem as ComboBoxItem)?.Tag?.ToString() ?? "bearer";
|
||||
public string ExecutionProfile => (_executionProfileBox.SelectedItem as ComboBoxItem)?.Tag?.ToString() ?? "balanced";
|
||||
public string Cp4dUrl => _cp4dUrlBox.Text.Trim();
|
||||
public string Cp4dUsername => _cp4dUsernameBox.Text.Trim();
|
||||
public string Cp4dPassword => _cp4dPasswordBox.Password.Trim();
|
||||
@@ -35,7 +37,8 @@ internal sealed class ModelRegistrationDialog : Window
|
||||
public ModelRegistrationDialog(string service, string existingAlias = "", string existingModel = "",
|
||||
string existingEndpoint = "", string existingApiKey = "", bool existingAllowInsecureTls = false,
|
||||
string existingAuthType = "bearer", string existingCp4dUrl = "",
|
||||
string existingCp4dUsername = "", string existingCp4dPassword = "")
|
||||
string existingCp4dUsername = "", string existingCp4dPassword = "",
|
||||
string existingExecutionProfile = "balanced")
|
||||
{
|
||||
bool isEdit = !string.IsNullOrEmpty(existingAlias);
|
||||
Title = isEdit ? "모델 편집" : "모델 추가";
|
||||
@@ -185,6 +188,50 @@ internal sealed class ModelRegistrationDialog : Window
|
||||
var modelBorder = new Border { CornerRadius = new CornerRadius(8), ClipToBounds = true, Child = _modelBox };
|
||||
stack.Children.Add(modelBorder);
|
||||
|
||||
stack.Children.Add(new TextBlock
|
||||
{
|
||||
Text = "실행 프로파일",
|
||||
FontSize = 12,
|
||||
FontWeight = FontWeights.SemiBold,
|
||||
Foreground = primaryText,
|
||||
Margin = new Thickness(0, 12, 0, 6),
|
||||
});
|
||||
stack.Children.Add(new TextBlock
|
||||
{
|
||||
Text = "모델 성향에 따라 도구 호출 강도, 읽기 속도, 문서 생성 흐름을 조절합니다.",
|
||||
FontSize = 11,
|
||||
Foreground = secondaryText,
|
||||
Margin = new Thickness(0, 0, 0, 8),
|
||||
});
|
||||
_executionProfileBox = new ComboBox
|
||||
{
|
||||
FontSize = 13,
|
||||
Padding = new Thickness(8, 6, 8, 6),
|
||||
Foreground = primaryText,
|
||||
Background = itemBg,
|
||||
BorderBrush = borderBrush,
|
||||
BorderThickness = new Thickness(1),
|
||||
};
|
||||
var balancedProfile = new ComboBoxItem { Content = "균형", Tag = "balanced" };
|
||||
var strictProfile = new ComboBoxItem { Content = "도구 호출 우선", Tag = "tool_call_strict" };
|
||||
var reasoningProfile = new ComboBoxItem { Content = "추론 우선", Tag = "reasoning_first" };
|
||||
var readonlyProfile = new ComboBoxItem { Content = "읽기 속도 우선", Tag = "fast_readonly" };
|
||||
var documentProfile = new ComboBoxItem { Content = "문서 생성 우선", Tag = "document_heavy" };
|
||||
_executionProfileBox.Items.Add(balancedProfile);
|
||||
_executionProfileBox.Items.Add(strictProfile);
|
||||
_executionProfileBox.Items.Add(reasoningProfile);
|
||||
_executionProfileBox.Items.Add(readonlyProfile);
|
||||
_executionProfileBox.Items.Add(documentProfile);
|
||||
_executionProfileBox.SelectedItem = (existingExecutionProfile ?? "balanced").Trim().ToLowerInvariant() switch
|
||||
{
|
||||
"tool_call_strict" => strictProfile,
|
||||
"reasoning_first" => reasoningProfile,
|
||||
"fast_readonly" => readonlyProfile,
|
||||
"document_heavy" => documentProfile,
|
||||
_ => balancedProfile,
|
||||
};
|
||||
stack.Children.Add(new Border { CornerRadius = new CornerRadius(8), ClipToBounds = true, Child = _executionProfileBox });
|
||||
|
||||
// 구분선
|
||||
stack.Children.Add(new Rectangle
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user