feat: 新增ai_chat_core,将core 和 widget 分离(未完成)
迁移了 models enums, utils, http 封装,还有一些extensions;service 只迁移了 sse service
This commit is contained in:
@@ -3,7 +3,7 @@ import 'dart:convert';
|
||||
import 'dart:io';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:ai_chat_assistant/utils/tts_util.dart';
|
||||
import '../utils/tts_util.dart';
|
||||
|
||||
import '../utils/common_util.dart';
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import '../enums/vehicle_command_type.dart';
|
||||
import '../models/vehicle_status_info.dart';
|
||||
import 'package:ai_chat_core/ai_chat_core.dart';
|
||||
|
||||
|
||||
/// 命令处理回调函数定义
|
||||
typedef CommandCallback = Future<(bool, Map<String, dynamic>? params)> Function(
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
import 'dart:convert';
|
||||
import 'package:ai_chat_core/ai_chat_core.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import '../models/vehicle_cmd.dart';
|
||||
import '../models/vehicle_cmd_response.dart';
|
||||
import 'vehicle_state_service.dart';
|
||||
|
||||
/// 车辆命令服务 - 负责与后端交互以获取和处理车辆控制命令
|
||||
class VehicleCommandService {
|
||||
|
||||
@@ -8,14 +8,17 @@ import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:permission_handler/permission_handler.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
import '../services/chat_sse_service.dart';
|
||||
import '../services/chat_sse_service.dart' as Service;
|
||||
import '../services/classification_service.dart';
|
||||
import '../services/control_recognition_service.dart';
|
||||
// import '../services/audio_recorder_service.dart';
|
||||
// import '../services/voice_recognition_service.dart';
|
||||
import 'command_service.dart';
|
||||
import 'package:fluttertoast/fluttertoast.dart';
|
||||
|
||||
import 'platform_tts_service.dart';
|
||||
|
||||
const aliSdkChannelName = 'com.example.ai_chat_assistant/ali_sdk';
|
||||
|
||||
// 用单例的模式创建
|
||||
class MessageService extends ChangeNotifier {
|
||||
static const MethodChannel _asrChannel = MethodChannel('com.example.ai_chat_assistant/ali_sdk');
|
||||
@@ -77,7 +80,9 @@ class MessageService extends ChangeNotifier {
|
||||
}
|
||||
}
|
||||
|
||||
final ChatSseService _chatSseService = ChatSseService();
|
||||
// final ChatSseService _chatSseService = ChatSseService(PlatformTtsService(aliSdkChannelName));
|
||||
final Service.ChatSseService _chatSseService = Service.ChatSseService();
|
||||
|
||||
// final LocalTtsService _ttsService = LocalTtsService();
|
||||
// final AudioRecorderService _audioService = AudioRecorderService();
|
||||
// final VoiceRecognitionService _recognitionService = VoiceRecognitionService();
|
||||
|
||||
36
lib/services/platform_tts_service.dart
Normal file
36
lib/services/platform_tts_service.dart
Normal file
@@ -0,0 +1,36 @@
|
||||
import 'package:ai_chat_core/ai_chat_core.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
/// TtsService 的平台特定实现,通过 MethodChannel 调用原生代码
|
||||
class PlatformTtsService implements TtsService {
|
||||
@override
|
||||
final String channelName;
|
||||
|
||||
final MethodChannel _channel;
|
||||
|
||||
PlatformTtsService(this.channelName): _channel = MethodChannel(channelName);
|
||||
|
||||
Future<T?> _execute<T>(String method, [Map<Object, Object>? arguments]) {
|
||||
return _channel.invokeMethod(method, arguments);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<bool> start(bool isChinese) async {
|
||||
return await _execute('startTts', {'isChinese': isChinese}) ?? false;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> send(String text) async {
|
||||
await _execute('sendTts', {'text': text});
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> complete() async {
|
||||
await _execute('completeTts');
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> stop() async {
|
||||
await _execute('stopTts');
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import 'package:ai_chat_assistant/utils/common_util.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_tts/flutter_tts.dart';
|
||||
|
||||
@Deprecated('Use TtsService interface and its implementations instead')
|
||||
class LocalTtsService {
|
||||
final FlutterTts _flutterTts = FlutterTts();
|
||||
bool _isPlaying = false;
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:http/http.dart' as http;
|
||||
import 'dart:convert';
|
||||
import 'package:http_parser/http_parser.dart';
|
||||
|
||||
@Deprecated('VoiceRecognitionService is deprecated, please use the new implementation if available.')
|
||||
class VoiceRecognitionService {
|
||||
Future<String?> recognizeSpeech(List<int> audioBytes,
|
||||
{String lang = 'cn'}) async {
|
||||
|
||||
Reference in New Issue
Block a user