php小編蘋果AI平台B是一個強大的預測請求實例,它需要類型為structpb.Value的參數。這是一個GCP(Google雲端平台)的Go語言客戶端函式庫,特別為aiplatform設計。它為用戶提供了便捷的預測功能,可以在開發過程中快速進行模型預測。透過使用這個函式庫,使用者可以輕鬆地將AI技術整合到他們的應用程式中,並獲得準確、高效的預測結果。
我正在嘗試從 Golang Web 應用程式存取我的 Vertex AI 端點(Web 伺服器/應用程式在雲端運行 建置上運行)。 Web 應用程式有一個表單,我正在提交詳細信息,我的問題是,如何獲取從 Web 應用程式接收到的結構並將其轉換為 aiplatformb.PredictRequest 結構的 Instances 字段中接受的類型?
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{},
我嘗試使用郵遞員從外部存取此端點,下面的請求確認端點已啟動並正在運行。這些值是詳細資訊提交的值
{ "instances": [ [ 29823, 43.5, 1 ] ] }
在多次嘗試使用客戶端程式庫和諮詢文件後,.Predict() 方法[作用於指向PredictionClient 類型的指標]不允許您指定頂點AI 模型端點的架構。因此,解決方案是透過 .RawPredict() 方法傳送請求,因此只有當 golang GCP 用戶端程式庫實作的架構與您部署的模型相符時,序列化 JSON (structpb) 請求才有效。以下是 PredictionClient 的 GCP 文件:
以下是形成和使用 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" )
這是程式碼:
// 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)
以上是aiplatformb.PredictRequest.Instances 需要型別 *structpb.Value (GCP golang 用戶端函式庫;aiplatform)的詳細內容。更多資訊請關注PHP中文網其他相關文章!