Panggil PutDataPipelineConfiguration menggunakan OSS Go SDK V2 untuk membuat aturan pipa data (DataPipeline). Setelah aturan dibuat, OSS secara otomatis memanggil Alibaba Cloud Model Studio untuk melakukan penyematan (vectorize) data mentah di bucket sumber dan menuliskan vektor tersebut ke indeks yang ditentukan di bucket vektor.
Prasyarat
OSS Go SDK V2 telah diinstal. Anda dapat menginstalnya dengan menjalankan
go get github.com/aliyun/alibabacloud-oss-go-sdk-v2.Kredensial akses dikonfigurasi melalui variabel lingkungan. Contoh dalam topik ini menggunakan
credentials.NewEnvironmentVariableCredentialsProvider()untuk membaca kredensial dari variabel lingkunganOSS_ACCESS_KEY_IDdanOSS_ACCESS_KEY_SECRET.
Kode contoh
package main
import (
"context"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/dataprocess"
)
func main() {
region := "cn-hangzhou"
role := "acs:ram::<AccountId>:role/my-data-pipeline-role"
apiKey := "sk-xxxx"
dataPipelineName := "my-data-pipeline"
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := dataprocess.NewClient(cfg)
result, err := client.PutDataPipelineConfiguration(context.TODO(), &dataprocess.PutDataPipelineConfigurationRequest{
DataPipelineName: oss.Ptr(dataPipelineName),
Role: oss.Ptr(role),
DataPipelineConfiguration: &dataprocess.DataPipelineConfiguration{
DataPipelineDescription: oss.Ptr("Vectorize business data using the BERT multimodal model"), // Lakukan penyematan data bisnis menggunakan model multimodal BERT
Sources: []dataprocess.DataPipelineSource{
{
InputBucket: oss.Ptr("bucket"),
InputDataScope: oss.Ptr("All"),
FilterConfiguration: &dataprocess.DataPipelineSourceFilterConfiguration{
PrefixSet: []string{"prefix1"},
ObjectMediaTypes: []string{"text"},
},
},
},
DataPipelineEmbeddingConfiguration: &dataprocess.DataPipelineEmbeddingConfiguration{
ApiKey: oss.Ptr(apiKey),
EmbeddingProvider: oss.Ptr("bailian"),
FPS: oss.Ptr(float64(1)),
Model: oss.Ptr("qwen2.5-vl-embedding"),
},
Destination: &dataprocess.DataPipelineDestination{
VectorBucketName: oss.Ptr("my-vector-bucket"),
VectorIndexNames: []string{"index"},
VectorKeyPrefix: oss.Ptr("prefix"),
ObjectTagToMetadata: []string{"key1"},
UsermetaToMetadata: []string{"x-oss-meta-key1"},
},
DataPipelineError: &dataprocess.DataPipelineError{
ErrorMode: oss.Ptr("ignoreAndRecord"),
ErrorBucket: oss.Ptr("my-error-bucket"),
ErrorPrefix: oss.Ptr("error-output/"),
},
},
})
if err != nil {
log.Fatalf("failed to put pipeline configuration %v", err) // Gagal menetapkan konfigurasi pipa
}
log.Printf("put pipeline configuration result:%#v\n", result) // Hasil penetapan konfigurasi pipa:
}
Referensi
Untuk kode contoh lengkap, lihat put_data_pipeline_configuration.go.