didvan-app/lib/services/ai/ai_api_service.dart

40 lines
1.1 KiB
Dart

import 'dart:async';
import 'dart:convert';
import 'package:didvan/services/storage/storage.dart';
import 'package:http/http.dart' as http;
import 'package:http/http.dart';
class AiApiService {
static const String baseUrl = 'https://api.didvan.app/ai';
static final _client = http.Client();
static Future<Request> initial(
{required final String url,
required final String message,
final int? chatId}) async {
final headers = {
"Content-Type": "application/json",
"Authorization": "Bearer ${await StorageService.getValue(key: 'token')}"
};
var request = http.Request('POST', Uri.parse(baseUrl + url))
..headers.addAll(headers);
var body = {'prompt': message};
if (chatId != null) {
body.addAll({'chatId': chatId.toString()});
}
request.body = jsonEncode(body);
return request;
}
static Future<ByteStream> getResponse(Request request) async {
final res = _client.send(request).timeout(
const Duration(seconds: 15),
);
final http.StreamedResponse response = await res;
return response.stream;
}
}