didvan-app/lib/services/ai_rag_service.dart

59 lines
1.4 KiB
Dart

import 'dart:convert';
import 'package:http/http.dart' as http;
class AiRagService {
static const String _baseUrl =
'https://n8n-didvan.liara.run/webhook/didvan-rag';
static const String _authHeader =
'Basic dXNlcjpkYXNqZHBuM3BjdTQzcDM0aWpyaA==';
static Future<AiRagResponse> sendMessage(String message) async {
try {
final response = await http.post(
Uri.parse(_baseUrl),
headers: {
'Content-Type': 'application/json',
'Authorization': _authHeader,
'Accept': '*/*',
},
body: jsonEncode({
'chatInput': message,
}),
);
if (response.statusCode == 200) {
final data = jsonDecode(response.body);
return AiRagResponse(
output: data['output'] ?? '',
sources: List<int>.from(data['sources'] ?? []),
isSuccess: true,
);
} else {
return AiRagResponse(
output: 'خطا در دریافت پاسخ از سرور',
sources: [],
isSuccess: false,
);
}
} catch (e) {
return AiRagResponse(
output: 'خطا در ارتباط با سرور: ${e.toString()}',
sources: [],
isSuccess: false,
);
}
}
}
class AiRagResponse {
final String output;
final List<int> sources;
final bool isSuccess;
AiRagResponse({
required this.output,
required this.sources,
required this.isSuccess,
});
}