AI Agent(LoxiBot)
功能概述
SDK 1.2.0+ 内置了 LoxiBot AI Agent 功能,提供智能翻译审查和版本发布能力。集成方可以通过手动调用 SDK 方法来控制悬浮按钮的显示和触发审查流程。
悬浮按钮控制
通过以下方法手动控制 LoxiBot 悬浮按钮的显示/隐藏:
java
// 手动显示 LoxiBot 悬浮按钮
LoxilyLocalize.showAgentBubble();
// 手动隐藏 LoxiBot 悬浮按钮
LoxilyLocalize.hideAgentBubble();点击悬浮按钮会自动截取当前页面截图,打开 LoxiBot 对话界面进行 AI 翻译审查。
程序化调用审查(推荐)
除了悬浮按钮,SDK 还提供了 reviewCurrentScreen() 方法,集成方可以在自己的 UI 中触发审查流程:
方式一:OCR 识别(不传 string_id)
java
// 自动截取当前页面截图,AI 通过 OCR 识别页面文本后匹配 string_id
LoxilyLocalize.reviewCurrentScreen();方式二:精确匹配(传入 string_id 数组,推荐)
java
// 传入当前页面使用的 string_id 列表,精确匹配翻译
String[] stringIds = {"home.title", "home.subtitle", "home.welcome_msg"};
LoxilyLocalize.reviewCurrentScreen(stringIds);传入 string_id 的优势:
- 避免 OCR 文字识别不准确的问题
- 解决相同文字对应不同 string_id 的歧义(如多个按钮都显示「确认」但 string_id 不同)
- SDK 自动从后端查询每个 string_id 的源文本和所有语言翻译,提供给 AI 做精确分析
- 未匹配到的 string_id 会被标记为「需要补充」,帮助发现遗漏的翻译
方式三:外部传入截图(游戏引擎推荐)1.3.3+
适用于 Unity、Unreal、Cocos2dx 等游戏引擎,由游戏方自行通过 RenderTexture 等方式截图,将图片 byte[] 传入 SDK。
java
// 游戏引擎自行截图后,将 PNG/JPEG byte[] 传入 SDK
byte[] screenshotBytes = ...; // 从 RenderTexture 获取
String[] stringIds = {"dialog.npc_greeting", "dialog.player_choice_1"};
LoxilyLocalize.reviewCurrentScreen(stringIds, screenshotBytes);Unity C# 调用示例:
csharp
// 1. 通过 RenderTexture 截图
RenderTexture rt = new RenderTexture(Screen.width, Screen.height, 24);
Camera.main.targetTexture = rt;
Camera.main.Render();
RenderTexture.active = rt;
Texture2D tex = new Texture2D(rt.width, rt.height, TextureFormat.RGB24, false);
tex.ReadPixels(new Rect(0, 0, rt.width, rt.height), 0, 0);
tex.Apply();
byte[] pngBytes = tex.EncodeToPNG();
Camera.main.targetTexture = null;
RenderTexture.active = null;
// 2. 调用 SDK
AndroidJavaClass sdk = new AndroidJavaClass("net.ilocalize.init.LoxilyLocalize");
sdk.CallStatic("reviewCurrentScreen", stringIds, pngBytes);外部截图模式的优势:
- 无需
FOREGROUND_SERVICE_MEDIA_PROJECTION权限,避免 Google Play 上架审核问题 - 游戏引擎通过 RenderTexture 能精确捕获渲染画面(包括 GL/Vulkan 渲染内容)
- SDK 跳过内部截图流程,直接使用外部传入的图片
注意: 当传入
imageBytes时,SDK 不会执行任何系统截图操作(不触发 PixelCopy 或 MediaProjection),完全由集成方控制截图来源。
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| stringIds | String[] | 否 | 当前页面使用的 string_id 数组,传 null 则走 OCR 识别 |
| imageBytes | byte[] | 是 | PNG 或 JPEG 格式的截图数据 |
工作原理
当传入 stringIds 时,SDK 会:
- 截取当前页面截图(或使用外部传入的截图)
- 立即打开 LoxiBot 对话界面(显示 loading)
- 后台异步调用后端 API 批量查询每个 string_id 的完整翻译数据(源文本 + 所有语言翻译)
- 查询完成后,将精确映射关系作为上下文发送给 AI Agent
- AI Agent 基于截图 + 精确的 string_id 映射进行翻译质量分析(跳过 OCR 步骤)
使用流程
- 触发审查 → 调用
reviewCurrentScreen()或点击悬浮按钮,自动截图并打开 LoxiBot 对话界面 - AI 分析 → LoxiBot 根据截图和 string_id 映射(或 OCR 识别)分析翻译质量
- 翻译审查 → 展示翻译优化建议卡片,支持逐条优化或一键优化
- 发布版本 → 优化完成后自动弹出版本发布表单,选择环境和版本范围后一键发布
- 实时状态 → 发布卡片实时轮询显示发布进度,直到发布完成
AI Agent 功能清单
| 功能 | 说明 |
|---|---|
| 页面文本 AI 优化 | 截图 + string_id 精确匹配(或 OCR 识别) → 匹配词条 → 生成优化建议 |
| 单条优化 | 针对单条翻译进行优化更新 |
| 一键优化 | 批量优化所有 AI 建议的翻译 |
| 版本发布 | 选择发布环境(测试/正式)和版本范围,一键发布 |
| 发布状态追踪 | 实时轮询显示发布进度(发起 → 进行中 → 完成) |
| 实时思考展示 | 显示 AI 的推理过程,可展开/收起 |