mirror of
https://github.com/foss42/apidash.git
synced 2025-12-03 19:39:25 +08:00
Reorganized the genai package by removing legacy LLM-related files and introducing a new modular interface under the 'interface' directory. Added provider-specific model classes, centralized constants, and updated the example to use the new API and data structures. Updated exports in genai.dart and improved dependency management.
57 lines
1.7 KiB
Dart
57 lines
1.7 KiB
Dart
// To parse this JSON data, do
|
|
//
|
|
// final availableModels = availableModelsFromJson(jsonString);
|
|
|
|
import 'package:freezed_annotation/freezed_annotation.dart';
|
|
import 'dart:convert';
|
|
import '../interface/interface.dart';
|
|
part 'available_models.freezed.dart';
|
|
part 'available_models.g.dart';
|
|
|
|
AvailableModels availableModelsFromJson(String str) =>
|
|
AvailableModels.fromJson(json.decode(str));
|
|
|
|
String availableModelsToJson(AvailableModels data) =>
|
|
json.encode(data.toJson());
|
|
|
|
@freezed
|
|
class AvailableModels with _$AvailableModels {
|
|
const AvailableModels._();
|
|
const factory AvailableModels({
|
|
@JsonKey(name: "version") required double version,
|
|
@JsonKey(name: "model_providers")
|
|
required List<AIModelProvider> modelProviders,
|
|
}) = _AvailableModels;
|
|
|
|
factory AvailableModels.fromJson(Map<String, dynamic> json) =>
|
|
_$AvailableModelsFromJson(json);
|
|
|
|
Map<ModelAPIProvider, AIModelProvider> get map =>
|
|
modelProviders.asMap().map<ModelAPIProvider, AIModelProvider>(
|
|
(i, d) => MapEntry(d.providerId!, d),
|
|
);
|
|
}
|
|
|
|
@freezed
|
|
class AIModelProvider with _$AIModelProvider {
|
|
const factory AIModelProvider({
|
|
@JsonKey(name: "provider_id") ModelAPIProvider? providerId,
|
|
@JsonKey(name: "provider_name") String? providerName,
|
|
@JsonKey(name: "source_url") String? sourceUrl,
|
|
@JsonKey(name: "models") List<Model>? models,
|
|
}) = _AIModelProvider;
|
|
|
|
factory AIModelProvider.fromJson(Map<String, dynamic> json) =>
|
|
_$AIModelProviderFromJson(json);
|
|
}
|
|
|
|
@freezed
|
|
class Model with _$Model {
|
|
const factory Model({
|
|
@JsonKey(name: "id") String? id,
|
|
@JsonKey(name: "name") String? name,
|
|
}) = _Model;
|
|
|
|
factory Model.fromJson(Map<String, dynamic> json) => _$ModelFromJson(json);
|
|
}
|