O recurso de reformulação inteligente de tom de documento ajusta o tom e reescreve o conteúdo para torná-lo mais profissional, descontraído ou direto.
Pré-requisitos
Vincule um projeto do Intelligent Media Management (IMM) a um bucket do Object Storage Service (OSS). Para obter mais informações sobre como vincular um projeto no console do OSS, consulte Getting started. Para vincular um projeto por meio de uma operação de API, consulte AttachOSSBucket.
Observações de uso
A reformulação inteligente de tom de documento suporta apenas processamento síncrono com o parâmetro
x-oss-process.Envie as requisições pelo método POST.
O sistema nega acesso anônimo.
Você precisa das permissões adequadas para usar este recurso. Para mais detalhes, consulte permissions.
Parâmetros
Ação: doc/rephrase
A tabela a seguir descreve os parâmetros.
Parâmetro | Tipo | Obrigatório | Descrição |
tone | string | Sim | Tom alvo para a reformulação do documento. Valores válidos:
|
content | string | Sim | Conteúdo a ser reformulado. O conteúdo deve estar codificado em Base64 seguro para URL. Nota O tamanho máximo é de 19.500 bytes. |
format | string | Não | Método de retorno dos dados. Valores válidos:
|
A tabela a seguir descreve os parâmetros de resposta.
Parâmetro | Tipo | Descrição |
RequestId | string | ID da requisição. |
Output | struct | Resultado da saída. Nós filhos: Text, FinishReason |
Text | string | Resultado obtido após o processamento da requisição. Nó pai: Output |
FinishReason | string | Indica o status atual do processo de geração. Valores válidos:
Nó pai: Output |
Usar a API REST
Ao usar a API REST para reformular um documento, especifique um nome de arquivo. Esse nome serve apenas como espaço reservado. O recurso utiliza o valor do parâmetro content como texto a ser reformulado.
Usar o modo regular para reformular um documento
Método de processamento
Arquivo a processar: example.doc
Texto a reformular: "Os Quatro Grandes Romances Clássicos, também conhecidos como as Quatro Grandes Obras-Primas da literatura chinesa, são os quatro romances clássicos chineses em capítulos: 'Romance dos Três Reinos', 'Jornada ao Oeste', 'Margem da Água' e 'Sonho da Câmara Vermelha'."
Tom alvo: straightforward
Exemplo de processamento
POST /example.doc?x-oss-process HTTP/1.1
Host: doc-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
x-oss-process=doc/rephrase,tone_straightforward,content_5Zub5aSn5ZCN6JGX77yM5Y2z5Zub5aSn5bCP6K-05ZCN6JGX77yM5piv5oyH44CK5LiJ5Zu95ryU5LmJ44CL44CB44CK6KW_5ri46K6w44CL44CB44CK5rC05rWS5Lyg44CL44CB44CK57qi5qW85qKm44CLNOmDqOS4reWbveWPpOWFuOeroOWbnuWwj-ivtOOAgg==
Resposta de exemplo
HTTP/1.1 200 OK
Server: AliyunOSS
Date: Thu, 10 Aug 2023 11:09:00 GMT
Content-Type: application/json;charset=UTF-8
Connection: close
Vary: Accept-Encoding
x-oss-request-id: 65969DD74479D83039EBE00E
x-oss-server-time: 2010
Content-Encoding: gzip
{
"RequestId":"65969DD74479D83039EBE00E",
"Output":{
"Text":"China's Four Great Classical Novels, which are four very famous novels, refer to these four ancient Chinese epic chapter-based novels: 'Romance of the Three Kingdoms', 'Journey to the West', 'Water Margin', and 'Dream of the Red Chamber'.",
"FinishReason":"stop"
}
}
Usar SSE para reformular um documento
Método de processamento
Arquivo a processar: example.doc
Texto a reformular: "Os Quatro Grandes Romances Clássicos, também conhecidos como as Quatro Grandes Obras-Primas da literatura chinesa, são os quatro romances clássicos chineses em capítulos: 'Romance dos Três Reinos', 'Jornada ao Oeste', 'Margem da Água' e 'Sonho da Câmara Vermelha'."
Tom alvo: straightforward
Método de resposta: event-stream
Exemplo de processamento
POST /example.doc?x-oss-process HTTP/1.1
Host: doc-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
x-oss-process=doc/rephrase,tone_straightforward,format_event-stream,content_5Zub5aSn5ZCN6JGX77yM5Y2z5Zub5aSn5bCP6K-05ZCN6JGX77yM5piv5oyH44CK5LiJ5Zu95ryU5LmJ44CL44CB44CK6KW_5ri46K6w44CL44CB44CK5rC05rWS5Lyg44CL44CB44CK57qi5qW85qKm44CLNOmDqOS4reWbveWPpOWFuOeroOWbnuWwj-ivtOOAgg==
Resposta de exemplo
HTTP/1.1 200 OK
Server: AliyunOSS
Date: Thu, 10 Aug 2023 11:20:11 GMT
Content-Type: text/event-stream;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
x-oss-request-id: 65969D744479D83837AEE00E
x-oss-server-time: 587
id: 0
event: Result
data: {"RequestId":"65969D744479D83837AEE00E","Output":{"Text":"China's","FinishReason":"null"}}
id: 1
event: Result
data: {"RequestId":"65969D744479D83837AEE00E","Output":{"Text":"China's Four Great","FinishReason":"null"}}
id: 2
event: Result
data: {"RequestId":"65969D744479D83837AEE00E","Output":{"Text":"China's Four Great Classical","FinishReason":"null"}}
id: 3
event: Result
data: {"RequestId":"65969D744479D83837AEE00E","Output":{"Text":"China's Four Great Classical Novels, which are four","FinishReason":"null"}}
id: 4
event: Result
data: {"RequestId":"65969D744479D83837AEE00E","Output":{"Text":"China's Four Great Classical Novels, which are four very famous novels, refer to 'Romance of the Three","FinishReason":"null"}}
id: 5
event: Result
data: {"RequestId":"65969D744479D83837AEE00E","Output":{"Text":"China's Four Great Classical Novels, which are four very famous novels, refer to 'Romance of the Three Kingdoms' and 'Journey to the West","FinishReason":"null"}}
id: 6
event: Result
data: {"RequestId":"65969D744479D83837AEE00E","Output":{"Text":"China's Four Great Classical Novels, which are four very famous novels, refer to 'Romance of the Three Kingdoms', 'Journey to the West', 'Water Margin', and","FinishReason":"null"}}
id: 7
event: Result
data: {"RequestId":"65969D744479D83837AEE00E","Output":{"Text":"China's Four Great Classical Novels, which are four very famous novels, refer to 'Romance of the Three Kingdoms', 'Journey to the West', 'Water Margin', and 'Dream of the Red Chamber', these four classic ancient Chinese","FinishReason":"null"}}
id: 8
event: Result
data: {"RequestId":"65969D744479D83837AEE00E","Output":{"Text":"China's Four Great Classical Novels, which are four very famous novels, refer to 'Romance of the Three Kingdoms', 'Journey to the West', 'Water Margin', and 'Dream of the Red Chamber', these four classic ancient Chinese epic novels.","FinishReason":"null"}}
id: 9
event: Result
data: {"RequestId":"65969D744479D83837AEE00E","Output":{"Text":"China's Four Great Classical Novels, which are four very famous novels, refer to 'Romance of the Three Kingdoms', 'Journey to the West', 'Water Margin', and 'Dream of the Red Chamber', these four classic ancient Chinese epic novels.","FinishReason":"stop"}}
Usar SDKs
Os exemplos de código a seguir mostram como reformular um documento usando parâmetros em kits de desenvolvimento de software (SDKs) comuns. Para usar outros SDKs, adapte o código com base nestes exemplos.
Java
É necessário o Java SDK 3.17.4 ou posterior.
import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.common.utils.BinaryUtil;
import com.aliyun.oss.common.utils.IOUtils;
import com.aliyun.oss.model.GenericResult;
import com.aliyun.oss.model.ProcessObjectRequest;
import java.io.IOException;
import java.util.Formatter;
public class Demo {
public static void main(String[] args) throws ClientException, com.aliyuncs.exceptions.ClientException {
// Set yourEndpoint to the endpoint of the region where your bucket is located.
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Specify the Alibaba Cloud region ID, for example, cn-hangzhou.
String region = "cn-hangzhou";
// Obtain access credentials from environment variables. Before you run this code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are set.
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Specify the bucket name.
String bucketName = "examplebucket";
// Specify the filename, which is used as a placeholder. The content of this file is not read during intelligent document tone rephrasing.
String key ="example.docx";
// Specify the text content to rephrase.
String content = "yourTxt";
String encodeContent = BinaryUtil.toBase64String(content.getBytes()).replaceAll("\\+","-")
.replaceAll("/","_").replaceAll("=","");
// Create an OSSClient instance.
// When the OSSClient instance is no longer needed, call the shutdown method to release resources.
ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(credentialsProvider)
.clientConfiguration(clientBuilderConfiguration)
.region(region)
.build();
try {
StringBuilder sbStyle = new StringBuilder();
Formatter styleFormatter = new Formatter(sbStyle);
// Build the processing instruction for intelligent document tone rephrasing.
styleFormatter.format("doc/rephrase,tone_straightforward,content_%s",
encodeContent);
System.out.println(sbStyle.toString());
ProcessObjectRequest request = new ProcessObjectRequest(bucketName, key, sbStyle.toString());
GenericResult processResult = ossClient.processObject(request);
String json = IOUtils.readStreamAsString(processResult.getResponse().getContent(), "UTF-8");
processResult.getResponse().getContent().close();
System.out.println(json);
} 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());
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}
PHP
É necessário o PHP SDK 2.7.0 ou posterior.
<?php
// Obtain access credentials from environment variables. Before you run this code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are set.
$ak = getenv('OSS_ACCESS_KEY_ID');
$sk = getenv('OSS_ACCESS_KEY_SECRET');
// Specify the bucket name, for example, examplebucket.
$bucket = 'examplebucket';
// Specify the filename, which is used only as a placeholder. The content of this file is not read during intelligent document tone rephrasing.
$objectKey = 'example.docx';
// Specify the text content to rephrase.
$txt = "yourTxt";
$base64url = str_replace(['+', '/', '='], ['-', '_', ''], base64_encode($txt));
// Build the instruction for intelligent document tone rephrasing.
$body = sprintf("x-oss-process=doc/rephrase,tone_straightforward,content_%s", $base64url);
$httpVerb = 'POST';
$contentMd5 = base64_encode(md5($body, true));
$contentType = '';
$date = gmdate('D, d M Y H:i:s T');
$stringToSign = $httpVerb . "\n" . $contentMd5 . "\n" . $contentType . "\n" . $date . "\n" . "/{$bucket}/{$objectKey}?x-oss-process";
$signature = base64_encode(hash_hmac('sha1', $stringToSign, $sk, true));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://{$bucket}.oss-cn-hangzhou.aliyuncs.com/{$objectKey}?x-oss-process");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Date: ' . $date,
'Authorization: OSS ' . $ak . ':' . $signature,
'Content-Type: ' . $contentType,
'Content-Md5:' . $contentMd5,
));
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
$response = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($response === false) {
echo "Error: " . curl_error($ch);
} else {
if ($httpcode == 200) {
var_dump($response);
} else {
echo "Error: HTTP code " . $httpcode;
}
}
Go
É necessário o Go SDK 3.0.2 ou posterior.
package main
import (
"encoding/base64"
"encoding/json"
"fmt"
"io"
"os"
"strings"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
type TextData struct {
RequestId string `json:"RequestId"`
Output struct {
Text string `json:"Text"`
FinishReason string `json:"FinishReason"`
} `json:"Output"`
}
func main() {
// Obtain temporary access credentials from environment variables. Before you run this code, make sure that the OSS_ACCESS_KEY_ID, OSS_ACCESS_KEY_SECRET, and OSS_SESSION_TOKEN environment variables are set.
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// Create an OSSClient instance.
client, err := oss.New("https://oss-cn-hangzhou.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider), oss.AuthVersion(oss.AuthV4), oss.Region("cn-hangzhou"))
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// Specify the bucket name, for example, examplebucket.
bucketName := "examplebucket"
bucket, err := client.Bucket(bucketName)
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
params := make(map[string]interface{})
params["x-oss-process"] = nil
// Specify the text content to rephrase.
txt := "yourTxt"
// Build the processing instruction for intelligent document tone rephrasing.
data := fmt.Sprintf("x-oss-process=doc/rephrase,tone_straightforward,content_%v", base64.URLEncoding.EncodeToString([]byte(txt)))
// example.docx is a file in the bucket used as a placeholder. The content of this file is not read during intelligent document tone rephrasing.
response, err := bucket.Do("POST", "example.docx", params, nil, strings.NewReader(data), nil)
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
defer response.Body.Close()
jsonData, err := io.ReadAll(response.Body)
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
var text TextData
err = json.Unmarshal(jsonData, &text)
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
fmt.Printf("RequestId:%v\n", text.RequestId)
fmt.Printf("Text:%v\n", text.Output.Text)
fmt.Printf("FinishReason:%v\n", text.Output.FinishReason)
}