このトピックでは、WebOffice ドキュメント AI アシスタントプラグインの機能と使用方法について説明します。
ドキュメント AI アシスタントは、Alibaba の大規模言語モデルである Tongyi を搭載したインテリジェントなドキュメント作成ツールです。このアシスタントは、ドキュメントの編集、推敲、翻訳を効率的に行うのに役立ち、ドキュメント処理の効率と品質を大幅に向上させます。
機能
機能カテゴリ | 説明 |
執筆の継続 | 選択したテキストからインテリジェントに執筆を継続し、コンテンツ作成のアイデアやインスピレーションを提供します。 |
要約の生成 | 選択したテキストの要約を生成し、要点を素早く抽出し、主旨を理解するのに役立ちます。 |
翻訳 | 12 言語への翻訳をサポートし、多言語にわたるドキュメント処理のニーズに対応します。 |
テキストの推敲 | 文法、スペル、言葉の選択、文構造、全体的なスタイルを最適化することで、テキストの品質と可読性を向上させます。 |
コンテンツの拡充 | AI を使用して選択したコンテンツを拡張し、豊かさと深みを加えます。 |
トーンの書き換え | 選択したコンテンツを異なるトーンで書き換えます。プロフェッショナル、カジュアル、直接的、自信のある、またはフレンドリーから選択できます。 |
制限事項
この機能は現在、PC 版の WebOffice でのみ利用可能です。モバイル H5 ページやミニアプリではサポートされていません。
開発者向けインテグレーション
1. サーバーサイド API のカプセル化
ドキュメント AI アシスタントは、Object Storage Service (OSS) の x-oss-process API 操作を呼び出します。この API 操作を呼び出す前に、IMM プロジェクトを OSS バケットにバインドする必要があります。

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

サーバーで 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 の使用
ドキュメント編集用の 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 プラグインのバージョン」をご参照ください。
プラグインの初期化
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 インスタンス。これは |
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 アシスタントメニューが開き、選択したテキストまたはカーソル位置のテキストを最適化できます。
