Browse Source

docs(services): 添加翻译服务和用量统计服务的文档注释

为VolcanoTranslationService和UsageStatsService添加详细的文档注释,包括方法参数说明和计费标准
weicu
lxm 11 months ago
parent
commit
3c3546ecf7
  1. 65
      lib/data/services/usage_stats_service.dart
  2. 11
      lib/data/services/volcano_translation_service.dart

65
lib/data/services/usage_stats_service.dart

@ -149,11 +149,61 @@ class UsageStatsService extends GetxService {
_saveMeetingDaily(daily);
Logger.i('MeetingASRrecord',
'会议ASR完成: id=${id}, meetingId=${old.meetingId}, transcriptBytes=${transcriptBytes}, audioSeconds=${old.audioSeconds}, date=${dateKey}');
try {
_reportMeetingUsageToServer(
audioSeconds: old.audioSeconds,
audioBytes: old.fileSizeBytes,
language: old.language,
transcriptBytes: transcriptBytes,
);
} catch (e) {
Logger.error('会议用量上报(完成)失败: $e');
}
return;
}
}
}
/// 上报会议用量到服务器
/// [audioSeconds] 音频时长(秒)
/// [audioBytes] 音频文件大小(字节)
/// [language] 识别语言
/// [transcriptBytes] 转写结果文本字节数(可选)
/// 该方法用于将会议语音识别(ASR)的用量数据上报到服务器。
/// 它会根据提供的参数构建一个包含会议用量类型、音频时长、音频文件大小、
/// 识别语言以及可选的转写结果文本字节数的参数对象。
/// 然后,它会调用API接口将该参数对象发送到服务器进行处理。
/// 如果上报成功,服务器会返回一个响应,该方法会根据响应更新本地的用户积分(非总积分)。
Future<void> _reportMeetingUsageToServer({
required int audioSeconds,
required int audioBytes,
required String language,
int? transcriptBytes,
}) async {
try {
final params = {
'usagetype': UsageType.Meet.toInt,
'usages': {
'MEETING_ASR_AUDIO_SECONDS': audioSeconds,
// 'MEETING_ASR_AUDIO_BYTES': audioBytes,
// if (transcriptBytes != null)
// 'MEETING_ASR_TRANSCRIPT_BYTES': transcriptBytes,
// 'MEETING_ASR_LANGUAGE_$language': 1,
},
};
Logger.info('lxm---MEET用量上报参数: $params');
final response = await Api.usagesResPoints(params);
Logger.info('lxm---MEET用量上报响应: $response');
_applyUsageResponse(response);
} catch (e) {
Logger.error('会议用量上报失败: $e');
}
}
/// 记录翻译API调用
void recordTranslationApiCall({
required String sourceText,
@ -291,6 +341,13 @@ class UsageStatsService extends GetxService {
}
/// 上报ASR用量到服务器
/// [effectiveDurationSeconds] 有效语音时长(秒)
/// [language] 识别语言
/// [mode] 翻译模式
/// 该方法用于将ASR(语音识别)的用量数据上报到服务器。
/// 它会根据提供的参数构建一个包含用量类型、有效语音时长、识别语言以及翻译模式的参数对象。
/// 然后,它会调用API接口将该参数对象发送到服务器进行处理。
/// 如果上报成功,服务器会返回一个响应,该方法会根据响应更新本地的用户积分(非总积分)。
Future<void> _reportAsrUsageToServer({
required int effectiveDurationSeconds,
//required int totalDurationSeconds,
@ -305,10 +362,10 @@ class UsageStatsService extends GetxService {
//'TRANSLATION_ASR_TOTAL_SECONDS': totalDurationSeconds,
'TRANSLATION_MODE_$mode': effectiveDurationSeconds,
'TRANSLATION_ASR_LANGUAGE_$language': 1,
'TRANSLATION_SOURCE_CHARACTERS':
realtimeTranslationStats.value.sourceTextCharacters,
'TRANSLATION_TARGET_CHARACTERS':
realtimeTranslationStats.value.ttsTextCharacters,
// 'TRANSLATION_SOURCE_CHARACTERS':
// realtimeTranslationStats.value.sourceTextCharacters,
// 'TRANSLATION_TARGET_CHARACTERS':
// realtimeTranslationStats.value.ttsTextCharacters,
},
};

11
lib/data/services/volcano_translation_service.dart

@ -165,7 +165,12 @@ class VolcanoTranslationService extends GetxService {
};
}
// 翻译文本
// 文本翻译
/// [text] 待翻译的文本
/// [sourceLanguageCode] 源语言的ASR代码
/// [targetLanguageCode] 目标语言的ASR代码
/// [return] 翻译后的文本
/// 计费标准:每月200万字符免费,超出部分按49元/百万字符计费
Future<String?> translateText({
required String text,
required String sourceLanguageCode,
@ -417,6 +422,10 @@ class VolcanoTranslationService extends GetxService {
}
/// 图片翻译(整图识别+回贴翻译)
/// [imageBytes] 待翻译的图片二进制数据
/// [targetLanguageCode] 目标语言的ASR代码
/// [return] 翻译结果
/// 计费标准:每月100张免费,超出部分按0.04元/张计费
Future<ImageTranslationResult?> translateImage({
required Uint8List imageBytes,
required String targetLanguageCode, // ASR代码,如 zh-CN / en-US

Loading…
Cancel
Save