mirror of
https://github.com/foss42/apidash.git
synced 2025-12-01 02:07:00 +08:00
45 lines
1.7 KiB
Dart
45 lines
1.7 KiB
Dart
import 'package:apidash/dashbot/features/debug.dart';
|
|
import 'package:apidash/dashbot/features/documentation.dart';
|
|
import 'package:ollama_dart/ollama_dart.dart';
|
|
import 'package:apidash/dashbot/features/explain.dart';
|
|
import 'package:apidash/models/request_model.dart';
|
|
import 'package:apidash/dashbot/features/general_query.dart';
|
|
|
|
class DashBotService {
|
|
final OllamaClient _client;
|
|
late final ExplainFeature _explainFeature;
|
|
late final DebugFeature _debugFeature;
|
|
late final DocumentationFeature _documentationFeature;
|
|
final GeneralQueryFeature _generalQueryFeature;
|
|
|
|
|
|
DashBotService()
|
|
: _client = OllamaClient(baseUrl: 'http://127.0.0.1:11434/api'),
|
|
_generalQueryFeature = GeneralQueryFeature(OllamaClient(baseUrl: 'http://127.0.0.1:11434/api')) {
|
|
|
|
_explainFeature = ExplainFeature(this);
|
|
_debugFeature = DebugFeature(this);
|
|
_documentationFeature = DocumentationFeature(this);
|
|
}
|
|
|
|
Future<String> generateResponse(String prompt) async {
|
|
return _generalQueryFeature.generateResponse(prompt);
|
|
}
|
|
|
|
Future<String> handleRequest(
|
|
String input, RequestModel? requestModel, dynamic responseModel) async {
|
|
if (input == "Explain API") {
|
|
return _explainFeature.explainLatestApi(
|
|
requestModel: requestModel, responseModel: responseModel);
|
|
} else if (input == "Debug API") {
|
|
return _debugFeature.debugApi(
|
|
requestModel: requestModel, responseModel: responseModel);
|
|
} else if (input == "Document API") {
|
|
return _documentationFeature.generateApiDocumentation(
|
|
requestModel: requestModel, responseModel: responseModel);
|
|
}
|
|
|
|
return _generalQueryFeature.generateResponse(input, requestModel: requestModel, responseModel: responseModel);
|
|
}
|
|
}
|