editor php Apple AI Platform B ialah contoh permintaan ramalan yang kuat, yang memerlukan parameter jenis structpb.Value. Ini ialah pustaka klien bahasa Go untuk GCP (Google Cloud Platform), yang direka khas untuk aiplatform. Ia menyediakan pengguna dengan fungsi ramalan yang mudah untuk membuat ramalan model dengan cepat semasa proses pembangunan. Dengan menggunakan perpustakaan ini, pengguna boleh dengan mudah mengintegrasikan teknologi AI ke dalam aplikasi mereka dan memperoleh hasil ramalan yang tepat dan cekap.
Saya cuba mengakses titik akhir Vertex AI saya daripada aplikasi web Golang (pelayan web/aplikasi berjalan pada cloud run + build). Aplikasi web mempunyai borang di mana saya menyerahkan butiran, soalan saya ialah, bagaimana saya boleh mendapatkan struktur yang diterima daripada aplikasi web dan menukarnya kepada jenis yang diterima dalam medan Contoh bagi struktur aiplatformb.PredictRequest?
type Submission struct { MonthlyIncome int Age int Passport int } var Details = Submission{} Ctx := context.Background() C, err := aiplatform.NewPredictionClient(Ctx) if err != nil { log.Fatalf("Error 1: %v", err) } defer C.Close() reqs := &aiplatformpb.PredictRequest{ Endpoint: "{{my endpoint that is formatted correctly}", Instances: []*structpb.Value{},
Saya cuba mengakses titik akhir ini secara luaran menggunakan Posmen dan permintaan di bawah mengesahkan titik tamat sedang aktif dan berjalan. Nilai ini adalah nilai yang dikemukakan oleh butiran
{ "instances": [ [ 29823, 43.5, 1 ] ] }
Selepas banyak percubaan menggunakan perpustakaan pelanggan dan merujuk dokumentasi, kaedah .Predict() [bertindak pada penunjuk kepada jenis PredictionClient] tidak membenarkan anda menentukan skema titik akhir model AI puncak. Jadi penyelesaiannya ialah menghantar permintaan melalui kaedah .RawPredict(), jadi permintaan JSON (structpb) bersiri hanya akan berfungsi jika skema yang dilaksanakan oleh perpustakaan klien GCP golang sepadan dengan model yang anda gunakan. Berikut ialah dokumentasi GCP untuk PredictionClient:
Berikut ialah perpustakaan yang diperlukan untuk membentuk dan menggunakan kaedah RawPredict():
import ( "context" "fmt" "log" "reflect" "strconv" aiplatform "cloud.google.com/go/aiplatform/apiv1" "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" "google.golang.org/api/option" "google.golang.org/genproto/googleapis/api/httpbody" )
Ini kodnya:
// Get the form values from the web applicaiton income, _ := strconv.Atoi(r.FormValue("MonthlyIncome")) age, _ := strconv.Atoi(r.FormValue("Age")) passport, _ := strconv.Atoi(r.FormValue("Passport")) //create our struct from the form values Details = Submission{ MonthlyIncome: income, Age: age, Passport: passport, } v := reflect.ValueOf(Details) body = "" for i := 0; i < v.NumField(); i++ { body = body + fmt.Sprintf("%v", v.Field(i).Interface()) + "," } if last := len(body) - 1; last >= 0 && body[last] == ',' { body = body[:last] } Requestb = pre + body + post log.Println("The request string was:", Requestb) // structure the body of the raw request Raw := &httpbody.HttpBody{} Raw.Data = []byte(Requestb) // indentify the post request using the raw body and the endpoint reqs := &aiplatformpb.RawPredictRequest{ // Note GCP Project ID, Region, and endpoint ID Endpoint: "projects/<PROJECT-HERE>/locations/<REGDION-HERE>/endpoints/<ENDPOINT-ID-HERE>", HttpBody: Raw, } // CTX gets the credentials of the application service account - NOTE THE REGION Ctx := context.Background() C, err := aiplatform.NewPredictionClient(Ctx, option.WithEndpoint("<REGION-HERE>-aiplatform.googleapis.com:443")) if err != nil { log.Println("Error 1, connectrion:", err) } defer C.Close() // gets the response using the credentials of the application service account resp, err := C.RawPredict(Ctx, reqs) if err != nil { log.Fatalf("Error 2, response: %v", err) } log.Println(resp) RespString := fmt.Sprintf("%+v", resp) log.Println("The Response String was:", resp)
Atas ialah kandungan terperinci aiplatformb.PredictRequest.Instances memerlukan jenis *structpb.Value (pustaka klien GCP golang; aiplatform). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!