马良AI写作初始化仓库

This commit is contained in:
邓滨杰
2025-09-10 00:07:52 +08:00
parent 3c06bb1a03
commit 39c0f8840f
1309 changed files with 318528 additions and 0 deletions

View File

@@ -0,0 +1,118 @@
import 'package:equatable/equatable.dart';
import 'public_model_config.dart';
import 'user_ai_model_config_model.dart';
/// 统一的AI模型接口
/// 可以同时表示用户私有模型和公共模型
abstract class UnifiedAIModel extends Equatable {
/// 模型ID
String get id;
/// 提供商
String get provider;
/// 模型名称/标识
String get modelId;
/// 显示名称
String get displayName;
/// 是否为公共模型
bool get isPublic;
/// 是否已验证
bool get isValidated;
/// 积分倍率显示文本(仅公共模型有效)
String get creditMultiplierDisplay;
/// 获取模型标签(如 [系统]、[积分x1.2] 等)
List<String> get modelTags;
}
/// 用户私有模型包装器
class PrivateAIModel extends UnifiedAIModel {
final UserAIModelConfigModel _model;
PrivateAIModel(this._model);
@override
String get id => _model.id;
@override
String get provider => _model.provider;
@override
String get modelId => _model.modelName;
@override
String get displayName => _model.name;
@override
bool get isPublic => false;
@override
bool get isValidated => _model.isValidated;
@override
String get creditMultiplierDisplay => '';
@override
List<String> get modelTags => ['私有'];
/// 获取原始的用户模型配置
UserAIModelConfigModel get userConfig => _model;
@override
List<Object?> get props => [_model];
}
/// 公共模型包装器
class PublicAIModel extends UnifiedAIModel {
final PublicModel _model;
PublicAIModel(this._model);
@override
String get id => _model.id;
@override
String get provider => _model.provider;
@override
String get modelId => _model.modelId;
@override
String get displayName => _model.displayName;
@override
bool get isPublic => true;
@override
bool get isValidated => true; // 公共模型默认已验证
@override
String get creditMultiplierDisplay => _model.creditMultiplierDisplay;
@override
List<String> get modelTags {
final tags = <String>['系统'];
if (_model.creditMultiplierDisplay.isNotEmpty) {
tags.add(_model.creditMultiplierDisplay);
}
if (_model.recommended == true) {
tags.add('推荐');
}
if (_model.tags != null) {
tags.addAll(_model.tags!);
}
return tags;
}
/// 获取原始的公共模型配置
PublicModel get publicConfig => _model;
@override
List<Object?> get props => [_model];
}