Files
AnotherReplayReader/AIProviderSettingsControl.xaml
T
2026-09-08 18:39:04 +02:00

188 lines
9.5 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<UserControl x:Class="AnotherReplayReader.AIProviderSettingsControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="350" d:DesignWidth="650">
<Grid Margin="10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="180"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- 左侧:Provider 列表 -->
<Grid Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ListBox x:Name="_providerListBox"
Grid.Row="0"
DisplayMemberPath="Name"
SelectionChanged="OnProviderSelectionChanged"/>
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Content="新增" Click="OnAddProviderClick" Margin="2"/>
<Button Content="删除" Click="OnRemoveProviderClick" Margin="2"/>
</StackPanel>
</Grid>
<!-- 右侧:Provider 编辑 + 模型管理 -->
<Grid Grid.Column="1" Margin="10,0,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- Provider 基本信息 -->
<Grid Grid.Row="0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="名称"/>
<TextBox x:Name="_providerNameBox" Grid.Row="0" Grid.Column="1"/>
<Label Grid.Row="1" Grid.Column="0" Content="Base URL"/>
<TextBox x:Name="_providerUrlBox" Grid.Row="1" Grid.Column="1"/>
<Label Grid.Row="2" Grid.Column="0" Content="API Key"/>
<PasswordBox x:Name="_providerKeyBox" Grid.Row="2" Grid.Column="1"/>
<StackPanel Grid.Row="3" Grid.ColumnSpan="2" Orientation="Horizontal" Margin="0,5">
<Label Content="Temperature" VerticalAlignment="Center"/>
<TextBox x:Name="_temperatureBox" Width="50" Margin="2"/>
<Label Content="TopP" VerticalAlignment="Center" Margin="10,0,0,0"/>
<TextBox x:Name="_topPBox" Width="50" Margin="2"/>
<Label Content="MaxTokens" VerticalAlignment="Center" Margin="10,0,0,0"/>
<TextBox x:Name="_maxTokensBox" Width="60" Margin="2"/>
<Button Content="应用" Click="OnApplyProviderClick" Margin="10,0,0,0"/>
</StackPanel>
</Grid>
<!-- Prompt 管理区域 -->
<GroupBox Header="提示词" Grid.Row="1" Margin="0,5,0,0">
<Grid Margin="5">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<CheckBox x:Name="_useCustomPromptCheck"
Grid.Row="0" Grid.Column="1"
Content="完全使用自定义 System Prompt"
Margin="0,0,0,5"/>
<Label Grid.Row="1" Grid.Column="0" Content="System Prompt"/>
<TextBox x:Name="_customPromptBox"
Grid.Row="1" Grid.Column="1"
MinHeight="80"
MaxHeight="160"
AcceptsReturn="True"
TextWrapping="Wrap"
ScrollViewer.VerticalScrollBarVisibility="Auto"/>
<Grid Grid.Row="2" Grid.ColumnSpan="2" Margin="0,5,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Content="补充规则"/>
<TextBox x:Name="_additionalRulesBox"
Grid.Column="1"
MinHeight="50"
MaxHeight="100"
AcceptsReturn="True"
TextWrapping="Wrap"
ScrollViewer.VerticalScrollBarVisibility="Auto"/>
<StackPanel Grid.Column="2" Margin="5,0,0,0">
<Button Content="应用提示词" Click="OnApplyPromptClick" Margin="2"/>
<Button Content="恢复默认" Click="OnResetPromptClick" Margin="2"/>
<Button Content="清空补充" Click="OnClearAdditionalRulesClick" Margin="2"/>
</StackPanel>
</Grid>
</Grid>
</GroupBox>
<!-- 模型管理区域 -->
<GroupBox Header="模型" Grid.Row="2" Margin="0,5,0,0">
<DockPanel>
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="0,0,0,5">
<ComboBox x:Name="_modelComboBox"
Width="200"
DisplayMemberPath="DisplayText"
SelectionChanged="OnModelSelectionChanged"/>
<Button Content="获取模型列表" Click="OnFetchModelsClick" Margin="5,0"/>
<Button Content="添加自定义" Click="OnAddCustomModelClick" Margin="5,0"/>
<Button Content="删除模型" Click="OnRemoveModelClick" Margin="5,0"/>
</StackPanel>
<!-- 模型详情 -->
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="模型 ID"/>
<TextBox x:Name="_modelIdBox" Grid.Row="0" Grid.Column="1"/>
<Label Grid.Row="1" Grid.Column="0" Content="上下文长度"/>
<TextBox x:Name="_contextLengthBox" Grid.Row="1" Grid.Column="1"/>
<Label Grid.Row="2" Grid.Column="0" Content="上下文预算"/>
<TextBox x:Name="_contextBudgetBox" Grid.Row="2" Grid.Column="1"
ToolTip="一次请求总 token 软上限(含输出/推理余量)。0 = 按上下文长度自动:≥1M → 160K200K~256K → 100K;更小 → 不支持长录像"/>
<CheckBox x:Name="_supportsSseCheck"
Grid.Row="3" Grid.Column="1"
Content="支持 SSE 流式输出"
Margin="0,5"/>
<Label Grid.Row="4" Grid.Column="0" Content="高级参数"/>
<TextBox x:Name="_extraParamsBox"
Grid.Row="4" Grid.Column="1"
MinHeight="80"
AcceptsReturn="True"
ScrollViewer.VerticalScrollBarVisibility="Auto"/>
<StackPanel Grid.Row="5" Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Content="应用模型修改" Click="OnApplyModelClick" Margin="2"/>
<Button Content="从已知模板填充" Click="OnFillFromKnownModelsClick" Margin="2"/>
</StackPanel>
<TextBlock x:Name="_modelStatusText"
Grid.Row="6" Grid.ColumnSpan="2"
Foreground="Gray" Margin="0,5"/>
</Grid>
</DockPanel>
</GroupBox>
</Grid>
</Grid>
</UserControl>