Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request to vertex ai generateContent, return error 503 unavailable #8030

Open
jordi5107 opened this issue Jan 22, 2025 · 2 comments
Open

Request to vertex ai generateContent, return error 503 unavailable #8030

jordi5107 opened this issue Jan 22, 2025 · 2 comments

Comments

@jordi5107
Copy link

Hi,
im implementing the prediction ia services, using php sdk for google Cloud platform,but when im doing the request, service return 503 UNAVAILABLE code 14, but if i use a curl petition to the test the same thing, return ok results.
Variable $model is like projects/{project}/locations/{location}/publishers/google/models/*

function generate_content_sample(string $model): void
{
    $predictionServiceClient = new PredictionServiceClient();

    $contentsParts = new Part();
    $contentsParts->setText("loremp ipsum"); 

    $contentsParts = [new Part()];
    $content = (new Content())
        ->setRole('user')
        ->setParts($contentsParts);

    $contents = [$content,];
    $request = (new GenerateContentRequest())
        ->setModel($model)
        ->setContents($contents);

    try {
        $response = $predictionServiceClient->generateContent($request);
        printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
    } catch (ApiException $ex) {
        printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
    }
}

That service is used in a controller like this

public function generate(Request $request)
{
    try {
        $vertexAIService = new VertexAIService();

        $projectId = 'Lorem ipsum';
        $locationId = 'Lorem ipsum';
        $modelId = 'Lorem ipsum';

        $formattedEndpoint = sprintf(
            "projects/%s/locations/%s/publishers/google/models/%s",
            $projectId,
            $locationId,
            $modelId
        );

        // $content = WebScrapingController::scrape($request->url);
        // $prompt = $request->prompt . ': ' . $content;

        $response = $vertexAIService->generate_content_sample($formattedEndpoint, "Lorem ipsum");

        FacadesLog::debug('Response: ' . $response);

        return response()->json([
            'response' => $response
        ]);
    } catch (Exception $e) {
        return response()->json([
            'error' => $e->getMessage()
        ], 500);
    }

Result code

Call failed with message: {
"message": "<!DOCTYPE html>\n<html lang=en>\n  <meta charset=utf-8>\n  <meta name=viewport content=\"initial-scale=1, minimum-scale=1, width=device-width\">\n  <title>Error 503 (Server Error)!!1<\/title>\n  <style>\n    *{margin:0;padding:0}html,code{font:15px\/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(\/\/www.google.com\/images\/errors\/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(\/\/www.google.com\/images\/branding\/googlelogo\/1x\/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(\/\/www.google.com\/images\/branding\/googlelogo\/2x\/googlelogo_color_150x54dp.png) no-repeat 0% 0%\/100% 100%;-moz-border-image:url(\/\/www.google.com\/images\/branding\/googlelogo\/2x\/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(\/\/www.google.com\/images\/branding\/googlelogo\/2x\/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}\n  <\/style>\n  <a href=\/\/www.google.com\/><span id=logo aria-label=Google><\/span><\/a>\n  <p><b>503.<\/b> <ins>That\u2019s an error.<\/ins>\n  <p>The service you requested is not available at this time.<p>Service error -27.  <ins>That\u2019s all we know.<\/ins>\n",
"code": 14,
"status": "UNAVAILABLE",
"details": []

I use the oficial libraries "google/apiclient": "^2.18", "google/cloud-ai-platform": "^1.13",

Also, that code works perfectly like three or 4 days ago and now suddenly return that error

@Mike-LA-UK
Copy link

Mike-LA-UK commented Jan 23, 2025

Hi Jordi,

Responded to your stackoverflow a couple of days ago, we've worked out what's going on in the support case but the wheels of Google sometimes turn slowly so might be a while before there's a proper fix.

For now you can just instantiate your prediction service client as below -

$vertex_ai = new \Google\Cloud\AIPlatform\V1\Client\PredictionServiceClient([ 'projectId' => '###your-project-id###', 'apiEndpoint' => 'us-central1-aiplatform.googleapis.com' ]);

From what we've worked out the generic endpoint has been deprecated or modified without the PHP library being updated in advance, so it's currently failing in some places. If you just hard set the apiEndpoint it should work. Bear in mind that experimental models may require us-central1 specifically.
Let me know if that gets you up and working!

@jordi5107
Copy link
Author

Hi Mike,
thanks for sharing that solution, now works perfectly !!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants