mirror of
https://github.com/simon-ding/polaris.git
synced 2026-05-27 21:17:50 +08:00
AI intergration WIP
This commit is contained in:
@@ -46,6 +46,7 @@ class APIs {
|
||||
static final deleteImportlistUrl = "$_baseUrl/api/v1/importlist/delete";
|
||||
static final getAllImportlists = "$_baseUrl/api/v1/importlist/";
|
||||
static final prowlarrUrl = "$_baseUrl/api/v1/setting/prowlarr";
|
||||
static final aiConfigUrl = "$_baseUrl/api/v1/setting/ai";
|
||||
|
||||
static final notifierAllUrl = "$_baseUrl/api/v1/notifier/all";
|
||||
static final notifierDeleteUrl = "$_baseUrl/api/v1/notifier/id/";
|
||||
|
||||
@@ -29,6 +29,9 @@ var prowlarrSettingDataProvider =
|
||||
AsyncNotifierProvider.autoDispose<ProwlarrSettingData, ProwlarrSetting>(
|
||||
ProwlarrSettingData.new);
|
||||
|
||||
var aiConfigDataProvider =
|
||||
AsyncNotifierProvider.autoDispose<AIConfigData, AIConfig>(AIConfigData.new);
|
||||
|
||||
class EditSettingData extends AutoDisposeAsyncNotifier<GeneralSetting> {
|
||||
@override
|
||||
FutureOr<GeneralSetting> build() async {
|
||||
@@ -548,3 +551,50 @@ class ProwlarrSettingData extends AutoDisposeAsyncNotifier<ProwlarrSetting> {
|
||||
ref.invalidateSelf();
|
||||
}
|
||||
}
|
||||
|
||||
class AIConfigData extends AutoDisposeAsyncNotifier<AIConfig> {
|
||||
@override
|
||||
FutureOr<AIConfig> build() async {
|
||||
final dio = APIs.getDio();
|
||||
var resp = await dio.get(APIs.aiConfigUrl);
|
||||
var sp = ServerResponse.fromJson(resp.data);
|
||||
if (sp.code != 0) {
|
||||
throw sp.message;
|
||||
}
|
||||
return AIConfig.fromJson(sp.data);
|
||||
}
|
||||
|
||||
Future<void> save(AIConfig ai) async {
|
||||
final dio = APIs.getDio();
|
||||
var resp = await dio.post(APIs.aiConfigUrl, data: ai.toJson());
|
||||
var sp = ServerResponse.fromJson(resp.data);
|
||||
if (sp.code != 0) {
|
||||
throw sp.message;
|
||||
}
|
||||
ref.invalidateSelf();
|
||||
}
|
||||
}
|
||||
|
||||
class AIConfig {
|
||||
final bool enabled;
|
||||
final String geminiApiKey;
|
||||
final String geminiModelName;
|
||||
|
||||
AIConfig(
|
||||
{required this.enabled,
|
||||
required this.geminiApiKey,
|
||||
required this.geminiModelName});
|
||||
|
||||
factory AIConfig.fromJson(Map<String, dynamic> json) {
|
||||
return AIConfig(
|
||||
enabled: json["enabled"],
|
||||
geminiApiKey: json["gemini_api_key"],
|
||||
geminiModelName: json["gemini_model_name"]);
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
"enabled": enabled,
|
||||
"gemini_api_key": geminiApiKey,
|
||||
"gemini_model_name": geminiModelName
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user