执行将类或类别分配给文本的分类任务。您可以指定可供选择的类别列表,也可以让模型从其自己的类别中进行选择。
代码示例
C#
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 C# 设置说明执行操作。如需了解详情,请参阅 Vertex AI C# API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
using Google.Cloud.AIPlatform.V1;
using System;
using System.Collections.Generic;
using System.Linq;
using Value = Google.Protobuf.WellKnownTypes.Value;
// Text Classification with a Large Language Model
public class PredictTextClassificationSample
{
public string PredictTextClassification(
string projectId = "your-project-id",
string locationId = "us-central1",
string publisher = "google",
string model = "text-bison@001")
{
// Initialize client that will be used to send requests.
// This client only needs to be created once,
// and can be reused for multiple requests.
var client = new PredictionServiceClientBuilder
{
Endpoint = $"{locationId}-aiplatform.googleapis.com"
}.Build();
// Configure the parent resource.
var endpoint = EndpointName.FromProjectLocationPublisherModel(projectId, locationId, publisher, model);
// Initialize request argument(s).
var content = @"What is the topic for a given news headline?
- business
- entertainment
- health
- sports
- technology
Text: Pixel 7 Pro Expert Hands On Review, the Most Helpful Google Phones.
The answer is: technology
Text: Quit smoking?
The answer is: health
Text: Roger Federer reveals why he touched Rafael Nadals hand while they were crying
The answer is: sports
Text: Business relief from Arizona minimum-wage hike looking more remote
The answer is: business
Text: #TomCruise has arrived in Bari, Italy for #MissionImpossible.
The answer is: entertainment
Text: CNBC Reports Rising Digital Profit as Print Advertising Falls
The answer is:";
var instances = new List<Value>
{
Value.ForStruct(new()
{
Fields =
{
["content"] = Value.ForString(content),
}
})
};
var parameters = Value.ForStruct(new()
{
Fields =
{
{ "temperature", new Value { NumberValue = 0 } },
{ "maxDecodeSteps", new Value { NumberValue = 5 } },
{ "topP", new Value { NumberValue = 0 } },
{ "topK", new Value { NumberValue = 1 } }
}
});
// Make the request.
var response = client.Predict(endpoint, instances, parameters);
// Parse and return the content.
var responseContent = response.Predictions.First().StructValue.Fields["content"].StringValue;
Console.WriteLine($"Content: {responseContent}");
return responseContent;
}
}
Java
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Java 设置说明执行操作。如需了解详情,请参阅 Vertex AI Java API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
import com.google.cloud.aiplatform.v1.EndpointName;
import com.google.cloud.aiplatform.v1.PredictResponse;
import com.google.cloud.aiplatform.v1.PredictionServiceClient;
import com.google.cloud.aiplatform.v1.PredictionServiceSettings;
import com.google.protobuf.Value;
import com.google.protobuf.util.JsonFormat;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
// Text Classification with a Large Language Model
public class PredictTextClassificationSample {
public static void main(String[] args) throws IOException {
// TODO(developer): Replace these variables before running the sample.
String instance =
"{ \"content\": \"What is the topic for a given news headline?\n"
+ "- business\n"
+ "- entertainment\n"
+ "- health\n"
+ "- sports\n"
+ "- technology\n"
+ "\n"
+ "Text: Pixel 7 Pro Expert Hands On Review, the Most Helpful Google Phones.\n"
+ "The answer is: technology\n"
+ "\n"
+ "Text: Quit smoking?\n"
+ "The answer is: health\n"
+ "\n"
+ "Text: Roger Federer reveals why he touched Rafael Nadals hand while they were"
+ " crying\n"
+ "The answer is: sports\n"
+ "\n"
+ "Text: Business relief from Arizona minimum-wage hike looking more remote\n"
+ "The answer is: business\n"
+ "\n"
+ "Text: #TomCruise has arrived in Bari, Italy for #MissionImpossible.\n"
+ "The answer is: entertainment\n"
+ "\n"
+ "Text: CNBC Reports Rising Digital Profit as Print Advertising Falls\n"
+ "The answer is:\"}";
String parameters =
"{\n"
+ " \"temperature\": 0,\n"
+ " \"maxDecodeSteps\": 5,\n"
+ " \"topP\": 0,\n"
+ " \"topK\": 1\n"
+ "}";
String project = "YOUR_PROJECT_ID";
String publisher = "google";
String model = "text-bison@001";
predictTextClassification(instance, parameters, project, publisher, model);
}
static void predictTextClassification(
String instance, String parameters, String project, String publisher, String model)
throws IOException {
PredictionServiceSettings predictionServiceSettings =
PredictionServiceSettings.newBuilder()
.setEndpoint("us-central1-aiplatform.googleapis.com:443")
.build();
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests.
try (PredictionServiceClient predictionServiceClient =
PredictionServiceClient.create(predictionServiceSettings)) {
String location = "us-central1";
final EndpointName endpointName =
EndpointName.ofProjectLocationPublisherModelName(project, location, publisher, model);
Value.Builder instanceValue = Value.newBuilder();
JsonFormat.parser().merge(instance, instanceValue);
List<Value> instances = new ArrayList<>();
instances.add(instanceValue.build());
Value.Builder parameterValueBuilder = Value.newBuilder();
JsonFormat.parser().merge(parameters, parameterValueBuilder);
Value parameterValue = parameterValueBuilder.build();
PredictResponse predictResponse =
predictionServiceClient.predict(endpointName, instances, parameterValue);
System.out.println("Predict Response");
}
}
}
Node.js
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Node.js 设置说明执行操作。如需了解详情,请参阅 Vertex AI Node.js API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
/**
* TODO(developer): Uncomment these variables before running the sample.\
* (Not necessary if passing values as arguments)
*/
// const project = 'YOUR_PROJECT_ID';
// const location = 'YOUR_PROJECT_LOCATION';
const aiplatform = require('@google-cloud/aiplatform');
// Imports the Google Cloud Prediction service client
const {PredictionServiceClient} = aiplatform.v1;
// Import the helper module for converting arbitrary protobuf.Value objects.
const {helpers} = aiplatform;
// Specifies the location of the api endpoint
const clientOptions = {
apiEndpoint: 'us-central1-aiplatform.googleapis.com',
};
const publisher = 'google';
const model = 'text-bison@001';
// Instantiates a client
const predictionServiceClient = new PredictionServiceClient(clientOptions);
async function callPredict() {
// Configure the parent resource
const endpoint = `projects/${project}/locations/${location}/publishers/${publisher}/models/${model}`;
const instance = {
content: `What is the topic for a given news headline?
- business
- entertainment
- health
- sports
- technology
Text: Pixel 7 Pro Expert Hands On Review, the Most Helpful Google Phones.
The answer is: technology
Text: Quit smoking?
The answer is: health
Text: Best soccer game of the season?
The answer is: sports
Text: This stock continues to soar.
The answer is: business
Text: What movie should I watch this week?
The answer is: entertainment
Text: Airlines expect to make $10 billion this year despite economic slowdown
The answer is:
`,
};
const instanceValue = helpers.toValue(instance);
const instances = [instanceValue];
const parameter = {
temperature: 0.2,
maxOutputTokens: 5,
topP: 0,
topK: 1,
};
const parameters = helpers.toValue(parameter);
const request = {
endpoint,
instances,
parameters,
};
// Predict request
const [response] = await predictionServiceClient.predict(request);
console.log('Get text classification response');
const predictions = response.predictions;
console.log('\tPredictions :');
for (const prediction of predictions) {
console.log(`\t\tPrediction : ${JSON.stringify(prediction)}`);
}
}
callPredict();
Python
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Python 设置说明执行操作。如需了解详情,请参阅 Vertex AI Python API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
def classify_news_items() -> str:
"""Text Classification Example with a Large Language Model"""
from vertexai.language_models import TextGenerationModel
model = TextGenerationModel.from_pretrained("text-bison@002")
parameters = {
"temperature": 0.2,
"max_output_tokens": 5,
"top_p": 0,
"top_k": 1,
}
response = model.predict(
"""What is the topic for a given news headline?
- business
- entertainment
- health
- sports
- technology
Text: Pixel 7 Pro Expert Hands On Review, the Most Helpful Google Phones.
The answer is: technology
Text: Quit smoking?
The answer is: health
Text: Roger Federer reveals why he touched Rafael Nadals hand while they were crying
The answer is: sports
Text: Business relief from Arizona minimum-wage hike looking more remote
The answer is: business
Text: #TomCruise has arrived in Bari, Italy for #MissionImpossible.
The answer is: entertainment
Text: CNBC Reports Rising Digital Profit as Print Advertising Falls
The answer is:
""",
**parameters,
)
print(response.text)
return response.text
后续步骤
如需搜索和过滤其他 Google Cloud 产品的代码示例,请参阅 Google Cloud 示例浏览器。