Loading
0

办公文档平台ONLYOFFICE如何使用AI进行金融图表的描述识别

随着协同办公与智能辅助编辑的需求增长,现代办公套件中的 AI 能力正在不断拓展。除了常规文本生成和语法检查等基础功能之外,开发者和高级用户希望让 AI 在更具体、定制化的场景中发挥作用,比如根据图像自动生成描述文字。办公文档平台ONLYOFFICE在其 AI 插件体系中提供了灵活的扩展机制,允许开发者定义自有功能并纳入其 AI 智能体处理流程。

>> 最新版本办公文档平台ONLYOFFICE 下载<<

AI描述图像的最终呈现

AI 描述图像的基本目标十分直观:选定文档中的一张图像,输入简要指令,然后得到由 AI 生成、写入到合适位置的文字。这个文字可以是图像标题、说明段落,也可以是面向辅助访问的替代文本。为了避免模型对用户意图做出模糊假设,这个功能依赖于明确的用户提示,从而确保生成结果与用户需求紧密对齐。

为了让 ONLYOFFICE 的 AI 引擎能够识别并调度该功能,需要将其提交为一个 RegisteredFunction。这个结构包含函数名称、参数定义和实际调用示例,是函数在插件体系中注册的基本格式。

函数定义与结构

函数被设定了一个输入参数 prompt(字符串类型),用于接收用户的指令,例如「为这张图生成一句简短说明」。该定义同样提供了多个典型调用示例,便于 AI 引擎和终端用户参考操作。

在代码层面,describeImage 定义如下:

  let func = new RegisteredFunction({
    name: "describeImage",
    description:
      "Allows users to select an image and generate a meaningful title, description, caption, or alt text for it using AI.",
    parameters: {
      type: "object",
      properties: {
        prompt: {
          type: "string",
          description:
            "instruction for the AI (e.g., 'Add a short title for this chart.')",
        },
      },
      required: ["prompt"],
    },
    examples: [
      {
        prompt: "Add a short title for this chart.",
        arguments: { prompt: "Add a short title for this chart." },
      },
      {
        prompt: "Write me a 1-2 sentence description of this photo.",
        arguments: {
          prompt: "Write me a 1-2 sentence description of this photo.",
        },
      },
      {
        prompt: "Generate a descriptive caption for this organizational chart.",
        arguments: {
          prompt:
            "Generate a descriptive caption for this organizational chart.",
        },
      },
      {
        prompt: "Provide accessibility-friendly alt text for this infographic.",
        arguments: {
          prompt:
            "Provide accessibility-friendly alt text for this infographic.",
        },
      },
    ],
  });

图像提取逻辑

要生成针对图像的文本,第一步是获取用户选中的图像数据。在 ONLYOFFICE 中,文档中的图像被称为 “drawings”。通过插件 API 调用 GetImageDataFromSelection 方法可以获得当前聚焦图像的 Base64 编码和尺寸信息:

    let imageData = await new Promise((resolve) => {
        window.Asc.plugin.executeMethod(
          "GetImageDataFromSelection",
          [],
          function (result) {
            resolve(result);
          }
        );
      });

其中返回的数据里包括如 "src":"data:image/png;base64,…" 格式的 Base64 字符串,这部分信息随后会作为 AI 请求的一部分发送出去。在处理过程中,还需要过滤掉占位符图像。例如 ONLYOFFICE 使用一个极小的白色矩形作为空白占位符,对这种情况要做特殊比对后跳过,否则会导致生成无意义的结果。

构建 AI 输入

一旦图像被成功提取,下一步是将图像数据和用户提示组合成 AI 引擎可理解的请求结构:

let messages = [
  {
    role: "user",
    content: [
      { type: "text", text: argPrompt },
      {
        type: "image_url",
        image_url: { url: imageData.src, detail: "high" },
      },
    ],
  },
];

在这段结构中,text提供了用户指令,例如“为该图生成解释性标题”;image_url则包含图像本身。通过detail:"high"表示希望模型尽可能以高分辨率分析图像。AI 模型通常能够处理 Base64 编码的数据,因此直接使用从文档中提取的字符串就足够,不需要先上传至服务器再传递 URL,这样的设计也减少了数据泄露或额外传输的风险。

发送请求与实时收集

构建好请求结构后,通过插件引擎的 chatRequest 方法发送消息,并实时收集 AI 输出:

let requestEngine = AI.Request.create(AI.ActionType.Chat);
await requestEngine.chatRequest(messages, false, async function (data) {
  …
});

将输出写回到文档

AI 返回的文字最终要写入到文档中,这里会根据用户是否选中图像分为两种情况:

  • 如果选中了图像,则在图像下方插入一段文字;
  • 如果未选中,则在当前光标位置后的段落位置插入。

示例代码如下:

async function insertMessage(message) {
      console.log("describeImage: insertMessage called", message);
      Asc.scope._message = String(message || "");
      await Asc.Editor.callCommand(function () {
        const msg = Asc.scope._message || "";
        const doc = Api.GetDocument();
        const selected =
          (doc.GetSelectedDrawings && doc.GetSelectedDrawings()) || [];
        if (selected.length > 0) {
          for (let i = 0; i < selected.length; i++) {
            const drawing = selected[i];
            const para = Api.CreateParagraph();
            para.AddText(msg);
            drawing.InsertParagraph(para, "after", true);
          }
        } else {
          const para = Api.CreateParagraph();
          para.AddText(msg);
          let range = doc.GetCurrentParagraph();
          range.InsertParagraph(para, "after", true);
        }
        Asc.scope._message = "";
      }, true);

AI图像描述与金融行业

在金融行业的数据报告与分析流程中,这类利用 AI 自动识别图表并生成描述文字的能力具有显著价值。金融文档中通常包含大量图表,如价格趋势图、收益率曲线、资产配置饼图及季度指标柱状图等,人工手动编写与审校这些图表说明既耗时又易出现遗漏。

借助 ONLYOFFICE 的图像识别与文本生成机制,用户可以让系统根据图像内容自动生成清晰、可读的解释文字,进而加快季报、分析报告或策略建议书的撰写效率。对于投资研究,通过自动化生成图表标题与注释,不仅减轻了重复劳动,还能将注意力集中在深层次数据洞察上。

在合规审查场景中,图像识别功能还可辅助梳理图表关联的风险提示或合规要点,保持报告在不同时间段或业务单元之间表述的一致性,提升内容的沟通效果。

通过 ONLYOFFICE 提供的自定义 AI 功能,我们能够高效地将文档中的图像自动转化为精准的文字说明,从定义函数元数据、提取图像内容、构建提示结构,到校验模型支持、发送请求与写回结果,每一步都围绕提升办公编辑体验展开。特别是在财经报告、数据分析、信息无障碍支持等实际场景下,该功能不仅节省了传统手动编辑的时间,还增强了图表解释的清晰度和一致性。结合金融行业对图表说明的专业要求,这一能力能有效辅助风险分析、投资策略撰写和内部汇报等关键业务流程。