AI配置化
This commit is contained in:
@@ -7,6 +7,8 @@ import '../../api/ai_api.dart';
|
||||
import '../../core/network/api_env.dart';
|
||||
import '../../models/ai.dart';
|
||||
import '../../providers/ai_provider.dart';
|
||||
import '../../providers/ai_config_provider.dart';
|
||||
import 'ai_config_page.dart';
|
||||
import '../../utils/toast.dart';
|
||||
import '../../widgets/state_views.dart';
|
||||
import '../../widgets/cute_icon.dart';
|
||||
@@ -105,6 +107,11 @@ class _AssistantPageState extends ConsumerState<AssistantPage> {
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
// 当前用的哪个模型 —— 点一下就能换。
|
||||
// 放在标题旁边而不是藏进菜单里,是因为「刚才那句话怎么答得怪怪的」
|
||||
// 十有八九就是切错了模型,得让它随时可见。
|
||||
Flexible(child: _configChip(context)),
|
||||
const Spacer(),
|
||||
_iconButton(
|
||||
icon: Icons.history,
|
||||
@@ -121,6 +128,39 @@ class _AssistantPageState extends ConsumerState<AssistantPage> {
|
||||
);
|
||||
}
|
||||
|
||||
/// 顶栏上的「当前模型」小胶囊
|
||||
Widget _configChip(BuildContext context) {
|
||||
final active = ref.watch(activeAiConfigProvider);
|
||||
final label = active?.name ?? '--';
|
||||
|
||||
return GestureDetector(
|
||||
onTap: () => openAiConfigPage(context),
|
||||
child: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 9, vertical: 4),
|
||||
decoration: BoxDecoration(
|
||||
color: const Color(0xFFFFF3E6),
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
const Icon(Icons.memory, size: 12, color: Color(0xFFC8956E)),
|
||||
const SizedBox(width: 4),
|
||||
Flexible(
|
||||
child: Text(
|
||||
label,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: const TextStyle(fontSize: 11.5, color: Color(0xFF8D6E63)),
|
||||
),
|
||||
),
|
||||
const Icon(Icons.expand_more, size: 13, color: Color(0xFFBCAAA4)),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _iconButton({
|
||||
required IconData icon,
|
||||
required String tooltip,
|
||||
|
||||
Reference in New Issue
Block a user