xiaomi ai取餐码 Starlsland

12 小时前
5
2
摘要
这篇文章介绍了我在小米手机上使用 Starlsland 软件实现 AI 取餐码/取件码上岛的过程。我分享了激活 Shizuku、安装软件、修改 OCR 与 VLM 提示词的细节,以及处理一位数补位和超过 6 位码的技巧,让取餐码能在系统上岛正常显示。同时推荐了适合的 API 与模型组合,并提醒功能可能会被系统更新修复。

xiaomi ai取餐码 Starlsland

xiaomi ai取餐码 Starlsland

前言:看到oppo的ai取餐码有点眼馋,然后社区大佬正好做了个软件可以实现ai取餐码,顺便发个文章水一下

注意:该软件可能在发布文章时可以使用后期可能会被修复

先简单说一下这个软件是怎么实现上岛的

这个软件没有简单的去调用.300版本的 Live Activities上岛

它是调用了hyper3的一个bug可以实现系统级的上岛,但是具体支持的版本我不太清楚,所以这里我只能贴一张我当前手机的版本号,如果你有比我低或高的可以试试是否可以正常使用

本期文章的软件是在这个版本下正常运行的其他版本我不清楚

正文:

激活shizuku与下载

首先你要先使用你手机的adb激活shizuku

这个我就不赘述了网上都是教程,如果你连这个都不会那我不建议你继续操作

然后安装Starlsland软件

点我下载(这里我贴的是作者给的链接如果失效请到作者主页找新的链接) 点我查看开发者视频

下载好软件后正常给权限即可

我这里主要讲的是提示词那一页

提示词修改

如果你平时的app都能被正常识别那你可以不看这一段

我在使用的时候发现我美团取餐码和快递的取件码无法被正常识别

然后我就修改了亿点提示词,大家可以复制使用

OCR Prompt

提取图片中所有可见文字。

要求:
1. 保持原始语言、大小写、数字和换行格式。
2. 不要补全、猜测或修改任何文字。
3. 所有数字必须完整保留,包括:
   - 取餐码
   - 订单号
   - 金额
   - 数量
4. 如果同一数字出现多次,全部保留。
5. 不要省略短数字(1-6位数字通常是取餐码)。

只输出识别到的文本内容,不要解释。

VLM Prompt

你是一个外卖/茶饮订单截图信息提取助手。请从截图中提取以下字段,返回一个 JSON 对象:

pickupCode, storeName, brandName, orderAmount, itemCountNumber, itemCountUnit, extras

识别规则:

【取餐码识别规则】
1. pickupCode 是页面上最醒目的短码。
2. 常见格式:
   - 1~8位数字(028 / 56 / 101)
   - 字母+数字(A12 / B09)
   - 带符号(#056)
3. 即使标签写的是“订单号”或者“取件码”,只要是短码也属于 pickupCode。
4. 长订单号(通常10位以上纯数字)不是取餐码,应放入 extras.orderNumber。
5. 只要截图中出现疑似取餐码,必须填写 pickupCode。

【店铺与品牌】
storeName:
门店名称,仅保留门店名,去掉品牌前缀。

例如:
"瑞幸咖啡 万达店"
storeName = "万达店"

如果是取件码请参考如下
"金辉华府十号楼架空层2号丰巢柜"
storeNamo = "金辉华府十号楼架空层2号丰巢柜"

brandName:
品牌名称(如 瑞幸咖啡 / 喜茶 / 古茗 / 蜜雪冰城/丰巢)。
必须是页面明确展示的品牌。

不要把以下内容当品牌:
- 广告语
- 活动文案
- 人物角色名
- 邀请评价文字

如果没有明确品牌返回 null。

【金额】
orderAmount:
页面出现的订单金额字符串,例如:

¥18.00
¥12
¥25.50
如果没有显示金额就则强制输出"¥0"

【商品数量】

itemCountNumber:
商品数量整数,例如:

1
2
3

如果无法判断返回 1。

itemCountUnit:
商品单位,例如:

杯
件
份
个

如果没有单位返回 个。

【extras】

extras 为附加信息对象,可包含:

pickupCodeLabel
orderNumber

pickupCodeLabel:
页面标注的取餐码名称,例如:

取餐码
取餐号
取茶码
取茶号
订单号
取件码

如果页面没有明确标注:

饮品类 → 使用 "取茶码"
餐食类 → 使用 "取餐码"

orderNumber:
长订单号(10位以上数字)。

【无关截图】

如果截图不是订单页面:

{
"pickupCode":null,
"storeName":null,
"brandName":null,
"orderAmount":null,
"itemCountNumber":null,
"itemCountUnit":null,
"extras":{}
}

【重要规则】

1. 不要猜测截图不可见信息。
2. extras 没有信息时返回 {}。
3. 只返回 JSON。
4. 不输出 markdown、代码块或解释文字。
6. 即使只有 pickupCode 也必须返回 JSON。
7.如果 pickupCode 只有 1 位数字,在前面补 0 变成两位。
例如 9 → 09
8.如果识别出来的取件码/取餐码出来是6位以上的数字强制输出00

输出Schema

{"type":"object","additionalProperties":false,"required":["pickupCode","storeName","brandName","orderAmount","itemCountNumber","itemCountUnit","extras"],"properties":{"pickupCode":{"type":["string","null"],"description":"取餐码或取餐号或取件码"},"storeName":{"type":["string","null"],"description":"门店名称"},"brandName":{"type":["string","null"],"description":"品牌名称"},"orderAmount":{"type":["string","null"],"description":"订单金额"},"itemCountNumber":{"type":["integer","null"],"description":"商品数量"},"itemCountUnit":{"type":["string","null"],"description":"商品单位"},"extras":{"type":"object","additionalProperties":{"type":"string"},"description":"附加信息"}}}

大致的说一下我改了些啥吧

在VLM Prompt里我为了正常识别快递的取件码,我写了一些东西

例如

pickupCodeLabel里加入了取件码

还有在orderAmount里加入了如果没有识别到价格就强制输出¥0

因为这样才能在最后正常的输出,才能在岛上正常显示

然后就是让一位数的取餐码自动部位(比如取餐码是9 自动补位为09)因为好像如果是一位数软件无法正常显示岛会显示失败

还有个致命的问题

它只能正常显示最多6位数的 取件码/取餐码

为了不让整个软件残废我加了如果检测到 取件码/取件码为6位时强制输出00,这样至少还能够有个提醒的作用

如果这个提示词无法忙足你可以尝试自己去修改,曲线救国

api的使用

我这里用的api是 v-api大家可以去找免费的

这里推荐使用以下模型

VLM模型-Qwen/Qwen3-VL-32B-Instruct

OCR模型-deepseek-ai/DeepSeek-OCR

LLM模型-deepseek-ai/DeepSeek-V3.2

不建议使用思考模型,因为思考耗时太长可能超时

当然你也可以不用ocr模型,直接使用直连VLM模式,这样可以更省事

到这里也就差不多结束了,如果喜欢这个功能建议就不要更新系统了,因为已经有人把这个bug提交给小米了可能在未来的哪一次更新中就会修复这个bug

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...