【TextIn大模型加速器 + 火山引擎】赋能机器人行业分析与VLA研究

目录

  • 一、TextIn大模型加速器
  • 二、行业报告分析与发展建议
    • [2.1 场景描述](#2.1 场景描述)
    • [2.2 工作流逻辑编排](#2.2 工作流逻辑编排)
    • [2.3 大模型提示词](#2.3 大模型提示词)
    • [2.4 结果展示](#2.4 结果展示)
  • [三、ParseX结合Coze API控制本地机器人](#三、ParseX结合Coze API控制本地机器人)
    • [3.1 场景描述](#3.1 场景描述)
    • [3.2 工作流逻辑编排](#3.2 工作流逻辑编排)
    • [3.3 大模型提示词](#3.3 大模型提示词)
    • [3.4 地图与任务描述](#3.4 地图与任务描述)
    • [3.5 本地调用](#3.5 本地调用)
    • [3.6 结果展示](#3.6 结果展示)

一、TextIn大模型加速器

随着大模型技术的快速发展,大量结构化数据需求日益增大,但网络上绝大多数数据都是非结构化的。在大模型处理过程中,数据前处理阶段的结构化程度,对后续阶段的语义理解与逻辑推理能力有着极大地决定作用。

TextIn解析引擎正从应用工具演变为研究基础设施,不仅加速了大模型在文档智能领域的研究进展,更重要的是,它通过提供真实、复杂、多样化的文档处理场景,推动了大模型在多模态理解、复杂推理和专业领域应用等方面的根本性突破。

核心优势

  • 支持任意复杂布局:将任意版式的文档拆解为语义完整的段落,并按阅读顺序还原,更加适配大模型。
  • 多元素高精度解析:准确提取标题、公式、图表、手写体、印章、跨页段落、页眉页脚、表单字段等各种元素,同时具备行业领先的表格识别能力,轻松解决合并单元格、跨页表格、无线表格等识别难题。
  • 强大的语义理解和上下文感知:捕捉更多版面元素间的语义关系,让大模型更加读懂一份文档。
  • 强大的预处理工具:无缝集成TextIn平台中的图像处理能力,文档带水印、图片有弯曲、模糊,都能搞定。
  • 高精度坐标还原:JSON结果包含高精度的页面、元素、字符级坐标数据,方便人工复核。
  • 极简、智能、灵活的语义抽取:xParse提供prompt模式和Schema模式两种抽取规则定制,帮助您根据业务需要实现更灵活的文档信息精准提取。
  • 开发者友好:提供清晰的API文档和灵活的集成方式,支持FastGPT、Coze、CherryStudio等主流平台。

在体验TextIn xParse的过程中,使用它作为大模型输入端的前处理插件,对文档作结构化处理,并以markdown 和 JSON 的形式输出给后续的大模型,结合火山引擎探索了其在机器人行业报告分析与在VLA研究中的使用。

二、行业报告分析与发展建议

首先是一个比较简单的文档解析工作流,主要是根据提示词对给定文档作定向解析,并根据文档内容给出知道建议。

2.1 场景描述

信息碎片化时代,精准搜索有效信息并梳理总结成为了一件困难的事情,经常大部分时间都花在整理信息上。找到的文献、报告等大多数篇幅很长,人工梳理耗时耗力,有些读下来不是想要的又浪费时间。

所以借助 Coze + TextIn 搭建了一个行业报告分析与发展建议工作流,流程泳道图如下:

2.2 工作流逻辑编排

由于ParseX插件的加持,整个工作流只需要4个节点即可实现该功能:

其中,ParseX节点必要输入为文件路径,app_id和secret_code为TextIn的开发者信息与密钥。

这一步,ParseX作为文档解析预处理引擎,对文档内容进行标准化、增强、优化中间表示,结构识别与标记,并进行内容提取与初分类。针对下一步的大模型处理,降低了大模型的计算负担,提升了大模型的准确性。基本理念就是:让大模型专注于它最擅长的语义理解和推理任务,而将繁琐的、模式化的预处理工作交给专门优化的工具完成。

app_id和secret_code对应TextIn工作台页面的x-ti-app-id和x-ti-secret-code。

大模型选择 豆包·1.6·lite·251015 ,比较轻量化,对于简单任务,不追求速度的话,还是满足的。主要是其他模型消耗的tokens太多了,哈哈。

大模型的输入选择ParseX节点的markdown输出,进行下一步的内容解析。

值得注意的是,ParseX节点不仅有markdown输出,还有更丰富的其他信息。这里只是简单的文档内容解析,对于其他更加复杂的任务,ParseX给出了更加精细的文档信息输出。

2.3 大模型提示词

通过提示词,限定大模型对文档内容的解析方向并给出定制输出。

2.4 结果展示

基于具身智能的智慧工厂创新应用白皮书(2025)(31页)

31页文档,ParseX处理耗时 6s

具身智能复合移动机器人产业发展蓝皮书(2025)(72页)

72页文档,ParseX处理耗时 14s

2025人工智能发展白皮书(144页)

144页文档,ParseX处理耗时 36s

三、ParseX结合Coze API控制本地机器人

TextIn大模型加速器+火山引擎,只能做文档分析吗?

不,能做的还很多,比如可以将意图通过语音或文档的形式输入给云端智能体,通过提示词或更专业的知识库限定智能体的解析方向与输出,打造一个机器人任务规划专家,实现一个从 Language 到 Action 的端到端服务。

3.1 场景描述

目前机器人任务规划通常是平台端处理,交互基本是在平台端的UI界面按照给定的格式填写任务配置。

然而,对于生活场景来说,最理想的人机交互方式是自然语言交互,所以借助这次体验,做了一个简单的从自然语言到动作的demo。流程泳道图如下:

3.2 工作流逻辑编排

该demo实现解析一段导航指令描述,将预言描述转换为机器人可以理解的json格式动作集。当然不仅仅是导航,也可以实现其他执行器的控制,这里仅以导航为例。

由于需要理解地图信息包括图片,这里介入了图片理解插件。任务描述通过ParseX解析后,和地图一起传给imgUnderstand节点进行处理,后续传给大模型进行进一步的语义与意图解析并生成动作集。

3.3 大模型提示词

通过提示词,限定大模型对任务描述的解析方向并给出定制输出。

完整提示词:

复制代码
# 角色:{#InputSlot placeholder="角色名称" mode="input"#}机器人任务规划专家{#/InputSlot#}
{#InputSlot placeholder="角色概述和主要职责的一句话描述" mode="input"#}主要职责为将任务描述分解为机器人可执行的原子动作序列。{#/InputSlot#}

## 目标:
{#InputSlot placeholder="角色的工作目标,如果有多目标可以分点列出,但建议更聚焦1-2个目标" mode="input"#}分析机器人行业技术动向,预测机器人行业发展方向。{#/InputSlot#}
## 技能:
1. {#InputSlot placeholder="为了实现目标,角色需要具备的技能1" mode="input"#}多模态任务理解与解析{#/InputSlot#}
2. {#InputSlot placeholder="为了实现目标,角色需要具备的技能2" mode="input"#}分层任务分解与规划{#/InputSlot#}
3. {#InputSlot placeholder="为了实现目标,角色需要具备的技能3" mode="input"#}资源感知与优化调度{#/InputSlot#}
4. {#InputSlot placeholder="为了实现目标,角色需要具备的技能4" mode="input"#}鲁棒执行与异常处理{#/InputSlot#}

## 工作流:
1. {#InputSlot placeholder="描述角色工作流程的第一步" mode="input"#}分析{{input}}任务的核心目标与约束条件{#/InputSlot#}
2. {#InputSlot placeholder="描述角色工作流程的第二步" mode="input"#}结合{{input}}与{{map}}地图,建立坐标系,单位:m,度{#/InputSlot#}
3. {#InputSlot placeholder="描述角色工作流程的第三步" mode="input"#}结合{{input}}与{{map}}按逻辑顺序分解步骤{#/InputSlot#}
4. {#InputSlot placeholder="描述角色工作流程的第四步" mode="input"#}为每一步分配合适的原子动作{#/InputSlot#}
5. {#InputSlot placeholder="描述角色工作流程的第五步" mode="input"#}考虑异常处理(如物体未找到){#/InputSlot#}

## 输出格式:
{#InputSlot placeholder="如果对角色的输出格式有特定要求,可以在这里强调并举例说明想要的输出格式" mode="input"#}{
  "plan_id": "{{任务唯一标识}}",
  "plan": [
    {
      "step": {{步骤序号}},
      "action": "{{动作类型}}",
      "action_id": "{{步骤唯一ID}}",
      "parameters": {{动作参数对象}},
      "pre_conditions": [
        {
          "type": "{{条件类型}}",
          "key": "{{状态键名}}"?,
          "value": {{期望值}}?,
          "operator": "{{比较符}}"?,
          "tolerance": {{容差}}?,
          "min_confidence": {{置信度}}?
        }
      ],
      "post_conditions": [...],  // 结构同pre_conditions
      "estimated_duration": {{预估秒数}},
      "retry_policy": {
        "max_attempts": {{最大尝试次数}},
        "retry_delay": {{重试延迟秒数}}?,
        "on_failure": "{{备用动作ID}}"?  // 引用fallback_actions中的键
      }
    }
    // ... 更多步骤
  ]
}

其中,parameters` 对象的内容因 `action` 而异。以下是常见动作的参数模板:

navigate_to(导航)
{
    "waypoint_id": "string",       // 【必需】预定义路点ID
    "coordinate": {                // 【必需】路点坐标,与waypoint_id互补说明,单位:m,度
        "x": "number", "y": "number",
        "z": "number", "theta": "number"
    },
    "speed_limit": "number"        // 【可选】速度限制,单位 m/s
}


confirm_position(确认位置)
{
    "waypoint_id": "string",       // 【必需】预定义路点ID
    "coordinate": {                // 【必需】路点坐标,与waypoint_id互补说明,单位:m,度
        "x": "number", "y": "number",
        "z": "number", "theta": "number"
    }
}


scan_area(扫描)
{
    "scan_area_id": "string",          // 【必需】预定义扫描区域ID
    "target_object_class": ["string"], // 【可选】目标物体类型列表
    "scan_mode": "string",             // 【可选】扫描模式,如 "NORMAL", "DEEP"
    "timeout": "integer"               // 【可选】超时时间,单位:秒
}


grasp(抓取)
{
    "object_id": "string",             // 【必需】目标物体ID
    "grasp_pose": {                    // 【可选】抓取位姿
    "x": "number", "y": "number", "z": "number",
    "roll": "number", "pitch": "number", "yaw": "number"
    },
    "force_limit": "number"            // 【可选】抓取力限制,单位:N
}


wait(等待)
{
	"duration": "integer"              // 【必需】等待时长,单位:秒
}

{#/InputSlot#}


## 限制:
- {#InputSlot placeholder="描述角色在互动过程中需要遵循的限制条件1" mode="input"#}原子动作库

1.  navigate_to(location): 导航到地图坐标系中的指定位置(如 `仓库-A区-货架3`)。
2.  grasp(object, quantity): 使用机械臂抓取指定类别和数量的物体(如 `红色螺丝`, `2盒`)。
3.  place(object, location): 将抓取的物体放置到指定位置。
4.  scan_area(area): 使用视觉传感器扫描指定区域,识别和定位目标物体。
5.  confirm_position(): 通过地标或传感器确认已精确到达目标位置。
6.  wait(duration): 等待指定秒数,用于避让或同步。{#/InputSlot#}

- {#InputSlot placeholder="描述角色在互动过程中需要遵循的限制条件2" mode="input"#}地图yaml文件基本参数详解

image: my_map.png
作用:指定地图图像文件
说明:
my_map.png 是实际的地图图像文件(png格式)
每个像素表示该位置是障碍物还是自由空间

mode: trinary
作用:指定地图的占用值解释模式
可选值:
trinary(默认):三值模式
像素值 0-196:自由空间(白色)
像素值 197-252:未知区域(灰色)
像素值 253-255:障碍物(黑色)
scale:缩放模式
像素值线性映射到占用概率
raw:原始模式
直接使用像素值作为占用概率
Nav2 推荐使用:trinary

resolution: 0.050
作用:地图分辨率(米/像素)
说明:
0.050 表示每个像素代表现实世界的 0.05 米(5厘米)
这是地图的比例尺
计算示例:
100像素 × 0.05米/像素 = 5米
地图尺寸为 400×400 像素时:
宽度:400 × 0.05 = 20米
高度:400 × 0.05 = 20米

origin: [-0.966, -2.069, 0]
作用:地图左下角在世界坐标系中的位置
格式:[x, y, yaw]
说明:
-0.966:地图左下角的 X 坐标(米)
-2.069:地图左下角的 Y 坐标(米)
0:地图的旋转角度(弧度),通常为 0
重要:
这是地图坐标系到世界坐标系的变换
图像像素 (0,0) 对应世界坐标 (origin_x, origin_y)
图像像素 (width,height) 对应世界坐标 (origin_x+widthresolution, origin_y+heightresolution)

negate: 0
作用:是否反转图像的黑白意义
可选值:
0:不反转(默认)
黑色像素 = 障碍物
白色像素 = 自由空间
1:反转
黑色像素 = 自由空间
白色像素 = 障碍物
通常设置:0(保持原样)

occupied_thresh: 0.65
作用:判断为障碍物的阈值
范围:0.0 到 1.0
说明:
像素值 > 0.65(65%)被认为是障碍物
在 trinary 模式下:
像素值 253-255(99.2%-100%)> 0.65,所以是障碍物
调整建议:
值调高(如 0.8):更严格,减少误判为障碍物
值调低(如 0.5):更宽松,更多区域被认为是障碍物

free_thresh: 0.196
作用:判断为自由空间的阈值
范围:0.0 到 1.0
说明:
像素值 < 0.196(19.6%)被认为是自由空间
在 trinary 模式下:
像素值 0-196(0%-76.9%)< 0.196,所以是自由空间
注意:必须小于 occupied_thresh
{#/InputSlot#}

3.4 地图与任务描述

使用 tb3_simulation 的环境,需要提前自己建好图,运行导航仿真环境:

bash 复制代码
ros2 launch nav2_bringup tb3_simulation_launch.py slam:=False map:=my_map.yaml

启动环境并初始化定位后,如下图:

示例任务指定机器人行走到地图的右上角区域,描述如下,保存到 command.txt 文件中:

bash 复制代码
地图格式说明:
image: my_map.png
mode: trinary
resolution: 0.025
origin: [-0.966, -2.069, 0]
negate: 0
occupied_thresh: 0.65
free_thresh: 0.196

任务说明:
1.走到地图右上角的区域,停留5s

地图如下,保存到 my_map.png 中,

这里注意,本来地图格式为 my_map.pgm,但Coze的大模型不支持 .pgm 格式,所以妥协了一下,但转换时需要注意不要改变位深度,不好会损失精度。

3.5 本地调用

Coze提供了本地调用API,详见:https://www.coze.cn/open/playground

该工作流python调用示例如下:

python 复制代码
"""
This example describes how to use the workflow interface to chat.
"""

import sys
import json
import parse_plan
# Our official coze sdk for Python [cozepy](https://github.com/coze-dev/coze-py)
from cozepy import COZE_CN_BASE_URL

# Get an access_token through personal access token or oauth.
coze_api_token = 'cztei_xxxxxxxxxxxxxxxxxxxxxxxx'
# The default access is api.coze.com, but if you need to access api.coze.cn,
# please use base_url to configure the api endpoint to access
coze_api_base = COZE_CN_BASE_URL

from cozepy import Coze, TokenAuth, Message, ChatStatus, MessageContentType  # noqa


def word_to_action():
    # Init the Coze client through the access_token.
    coze = Coze(auth=TokenAuth(token=coze_api_token), base_url=coze_api_base)

    # Create a workflow instance in Coze, copy the last number from the web link as the workflow's ID.
    workflow_id = 'xxxxxxxxxxxxxxxxx'

    if len(sys.argv) < 2:
        sys.exit(1)

    command_path = sys.argv[1]
    print(f"uploading command file: {command_path}")
    command = coze.files.upload(file=command_path)
    print(f"uploaded command file: {command.file_name}\n    {command}")

    map_path = sys.argv[2]
    print(f"uploading command file: {map_path}")
    world_map = coze.files.upload(file=map_path)
    print(f"uploaded command file: {world_map.file_name}\n    {world_map}")

    parameters = {
        "input": {"file_id": command.id},
        "map": {"file_id": world_map.id},
    }

    # Call the coze.workflows.runs.create method to create a workflow run. The create method
    # is a non-streaming chat and will return a WorkflowRunResult class.
    workflow = coze.workflows.runs.create(
        workflow_id=workflow_id,
        parameters=parameters
    )
    action = json.loads(json.loads(workflow.data)['output'])

    print("action: ", action)

    return action


if __name__ == "__main__":
    parse_plan.parse_action(word_to_action())

3.6 结果展示

运行脚本后,云端返回规划好的动作集,本地解析后发给机器人执行器:

相关推荐
三掌柜6662 小时前
2025三掌柜赠书活动第四十六期 白话AI安全:32个故事带你读懂AI的攻防博弈
人工智能
猫头虎2 小时前
猫头虎AI分享|可把GitHub代码库变成实时文档中心的一款实用型MCP工具:GitMCP,让AI随时访问最新文档代码,消除代码幻觉
人工智能·github·aigc·ai编程·ai写作·agi·ai-native
IT_陈寒2 小时前
Java 21新特性实战:5个必学的性能优化技巧让你的应用提速40%
前端·人工智能·后端
小毅&Nora2 小时前
【人工智能】【阿里云百炼平台】 ① 大模型全景图:从文本到全模态,一张图看懂AI能力边界(2025版)
人工智能·阿里云·云计算
寻道码路2 小时前
【GitHub周榜】WrenAI:开源SQL AI代理,让Text-to-SQL轻松实现,开启自然语言与数据交互新时代
人工智能·sql·语言模型·开源·github·aigc·ai编程
技术小甜甜2 小时前
[AI] openwebui内网部署网页加载缓慢?一个设置绕过openai连接问题!
人工智能·llm·ollama·openwebui
编码小哥2 小时前
OpenCV轮廓特征分析:面积、周长与形状拟合
人工智能·opencv·计算机视觉
张彦峰ZYF2 小时前
AI赋能原则8解读思考:当 AI 能“完美决策”-为什么动态契约才是安全之钥
人工智能·ai·ai赋能与落地
白日做梦Q2 小时前
联邦学习与隐私保护深度学习:面向分布式场景的研究热点与实践
人工智能·分布式·深度学习