すべてのプロダクト
Search
ドキュメントセンター

Intelligent Media Management:ドキュメント AI アシスタントプラグイン

最終更新日:Mar 01, 2026

このトピックでは、WebOffice ドキュメント AI アシスタントプラグインの機能と使用方法について説明します。

ドキュメント AI アシスタントは、Alibaba の大規模言語モデルである Tongyi を搭載したインテリジェントなドキュメント作成ツールです。このアシスタントは、ドキュメントの編集、推敲、翻訳を効率的に行うのに役立ち、ドキュメント処理の効率と品質を大幅に向上させます。

機能

機能カテゴリ

説明

執筆の継続

選択したテキストからインテリジェントに執筆を継続し、コンテンツ作成のアイデアやインスピレーションを提供します。

要約の生成

選択したテキストの要約を生成し、要点を素早く抽出し、主旨を理解するのに役立ちます。

翻訳

12 言語への翻訳をサポートし、多言語にわたるドキュメント処理のニーズに対応します。

テキストの推敲

文法、スペル、言葉の選択、文構造、全体的なスタイルを最適化することで、テキストの品質と可読性を向上させます。

コンテンツの拡充

AI を使用して選択したコンテンツを拡張し、豊かさと深みを加えます。

トーンの書き換え

選択したコンテンツを異なるトーンで書き換えます。プロフェッショナル、カジュアル、直接的、自信のある、またはフレンドリーから選択できます。

制限事項

  • この機能は現在、PC 版の WebOffice でのみ利用可能です。モバイル H5 ページやミニアプリではサポートされていません。

開発者向けインテグレーション

1. サーバーサイド API のカプセル化

ドキュメント AI アシスタントは、Object Storage Service (OSS) の x-oss-process API 操作を呼び出します。この API 操作を呼び出す前に、IMM プロジェクトを OSS バケットにバインドする必要があります。

image

バインドが完了したら、[Document Mind] タブに移動してクォータをリクエストします:

image

サーバーで API 操作をカプセル化して、/file/get_ai_process_url などのドキュメント AI API 操作の署名付き URL を取得します。

以下のコードは、主要なサーバーサイドロジックの例です:

import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.GeneratePresignedUrlRequest;
import java.net.URL;
import java.util.Date;

public class Demo {
    public static void main(String[] args) throws Throwable {
        // 中国 (杭州) エンドポイントを例として使用します。ご利用のリージョンのエンドポイントを指定してください。
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // エンドポイントに対応するリージョン ID (例: cn-hangzhou) を指定します。
        String region = "cn-hangzhou";
        // プロジェクトコードにアクセス認証情報を保存しないことを強く推奨します。そうしないと、アクセス認証情報が漏洩し、アカウント内のすべてのリソースのセキュリティに脅威をもたらす可能性があります。この例では、環境変数からアクセス認証情報を取得する方法を示しています。この例を実行する前に、環境変数を設定してください。
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // バケット名 (例: examplebucket) を指定します。
        String bucketName = "examplebucket";
        // オブジェクトの完全なパスを指定します。完全なパスにバケット名を含めることはできません。
        String objectName = "exampledir/exampleobject.docx";

        // OSSClient インスタンスを作成します。
        // OSSClient インスタンスが不要になったら、shutdown メソッドを呼び出してリソースを解放します。
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        // V4 署名アルゴリズムの使用を明示的に宣言します。
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(credentialsProvider)
                .clientConfiguration(clientBuilderConfiguration)
                .region(region)
                .build();

        try {
            // 署名付き URL の有効期限を 10 分に設定します。
            Date expiration = new Date(new Date().getTime() + 1000 * 60 * 10 );
            GeneratePresignedUrlRequest req = new GeneratePresignedUrlRequest(bucketName, objectName, HttpMethod.POST);
            req.setExpiration(expiration);
            req.setContentType("text/plain; charset=UTF-8");
            // 注意: Process には空の文字列を渡します。
            // サブリソースパラメーターを追加します。
            req.addQueryParameter("x-oss-process", null);
            URL signedUrl = ossClient.generatePresignedUrl(req);
            System.out.println(signedUrl);
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# 環境変数からアクセス認証情報を取得します。この例を実行する前に、OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())

# バケットが配置されているリージョンのエンドポイントに yourEndpoint を設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
# バケット名 (例: examplebucket) を指定します。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')
# プレビューをリクエストするドキュメントの完全なパスを指定します。完全なパスにバケット名を含めることはできません。
key = 'example.docx'


# 署名付き URL を生成し、有効期限を 10 分に設定します。有効期限は秒単位です。
# 注意: x-oss-process には空の文字列を渡します。
url = bucket.sign_url('POST', key, 10 * 60, headers={'Content-Type': 'text/plain; charset=UTF-8'}, params={'x-oss-process': ''})

print(url)
package main

    import (
        "fmt"
        "os"
        "github.com/aliyun/aliyun-oss-go-sdk/oss"
    )

func main() {
    // 環境変数からアクセス認証情報を取得します。この例を実行する前に、OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
    provider, err := oss.NewEnvironmentVariableCredentialsProvider()
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // OSSClient インスタンスを作成します。
    // バケットが配置されているリージョンのエンドポイントに yourEndpoint を設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。ご利用のリージョンのエンドポイントを指定してください。
    client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider))
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // ファイルが配置されているバケットの名前 (例: examplebucket) を指定します。
    bucketName := "examplebucket"
    bucket, err := client.Bucket(bucketName)
    if err != nil {
    fmt.Println("Error:", err); os.Exit(-1)
    }
    // プレビューをリクエストするドキュメントの完全なパスを指定します。完全なパスにバケット名を含めることはできません。
    ossObjectName := "exampledir/exampleobject.docx"
    // ドキュメントプレビューパラメーターを含むスタイルを設定します。
    // 署名付き URL を生成し、有効期限を 600 秒に設定します。
    // 注意: Process には空の文字列を渡します。
    signedURL, err := bucket.SignURL(ossObjectName, oss.HTTPPost, 600, oss.ContentType("text/plain; charset=UTF-8"), oss.Process(""))
    if err != nil {
    fmt.Println("Error:", err); os.Exit(-1)
    } else {
    fmt.Println(signedURL)
    }
}
const OSS = require('ali-oss');

const client = new OSS({
  // バケットが配置されているリージョンに yourregion を設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、Region を oss-cn-hangzhou に設定します。
  region: 'yourregion',
  // 環境変数からアクセス認証情報を取得します。この例を実行する前に、OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  // バケット名に yourbucketname を設定します。
  bucket: 'yourbucketname'
});
// ドキュメントプレビューパラメーターを含むスタイルを設定します。
// 署名付き URL を生成し、有効期限を 10 分に設定します。
const signUrl = clientsignatureUrl(objectKey, {
  method: 'POST',
  subResource: {
    'x-oss-process': '',  // 注意: ここでは空の文字列を渡します。
  },
  expires: 60*10, // 単位: 秒。
  'Content-Type': 'text/plain; charset=UTF-8',
});
console.log("signUrl="+signUrl);

以下の API 操作には署名が必要です:

2. フロントエンドでの JS-Plugins の使用

  1. ドキュメント編集用の JS-SDK を統合した後、次のスクリプトをインポートします:

<!-- JS SDK をインポート -->
<script src="https://g.alicdn.com/IMM/office-js/1.1.19/aliyun-web-office-sdk.min.js"></script>

<!-- プラグイン SDK をインポート -->
<script src="https://g.alicdn.com/IMM/office-js-plugins/1.3.0/aliyun-web-office-plugins.min.js"><script>

例では、1.1.19 は JS-SDK のバージョン番号です。実際のバージョン番号に置き換えてください。最新バージョンについては、「JS-SDK のバージョン」をご参照ください。

例では、1.3.0 は JS-Plugins のバージョン番号です。実際のバージョン番号に置き換えてください。最新バージョンについては、「JS-SDK プラグインのバージョン」をご参照ください。

  1. プラグインの初期化

aliyun.config メソッドを呼び出して JS-SDK を初期化した後、aliyun.initAIPlugin メソッドを呼び出してドキュメント AI アシスタントプラグインを初期化します。

let ins = aliyun.config({
  ....
})

// インスタンスの準備ができた後、aliyun.initAIPlugin を呼び出します。
await ins.ready();

// AI プラグインを使用します。
aliyun.initAIPlugin({
  sdkInstance: ins, // SDK インスタンスを渡します。
  // aiHelperLink: 'https://www.alibabacloud.com/help/xxxx', // パネル上の AI アシスタントヘルプドキュメントへのリンク。
  async onGetAIProcessUrl({ content_type, content_md5 }){
 
    /** 以下のロジックは x-oss-process URL を取得します。カプセル化されたサーバーサイド API 操作を呼び出す必要があります。 */
    let opt = {
      content_type,
      // content_md5,
      file_name: "test-object.docx",
    };
    let { ai_process_url } = await $.post("/file/get_ai_process_url", opt);
    
    return {
      ai_process_url, // 必須。
      // content_md5, // オプション。このパラメーターが渡されない場合、content_md5 アイテムは署名されません。
    };
  },
  async onFeedback(info){
    // 記録します。
  }
})

2.1. initAIPlugin のパラメーター

フィールド

タイプ

必須

説明

sdkInstance

Object

はい

SDK インスタンス。これは aliyun.config() の戻り値です。

onGetAIProcessUrl

({content_type: string, content_md5:string })=>Promise<{ai_process_url:string,content_md5?:string}>

はい

`x-oss-process` の署名付き URL を取得するメソッド。

aiHelperLink

string

いいえ

パネル上の AI アシスタントヘルプドキュメントへのリンク。

onFeedback

(info:FeedbackInfo)=>void

いいえ

FeedbackInfo パラメーター。

2.2. FeedbackInfo のフィールド

フィールド

タイプ

説明

type

string

有効な値: 'thumb-up'、'thumb-down'

data

object

特定のフィードバック情報。

ユーザーガイド

Word エディターで、[開始] ツールバーの右側にある [ドキュメント AI アシスタント] をクリックするか、キーボードショートカット (Windows では Alt + /、macOS では Control + /) を押します。これにより、ドキュメント AI アシスタントメニューが開き、選択したテキストまたはカーソル位置のテキストを最適化できます。

image