Fehlerbehebung bei der Bereitstellung einer Anwendung

In diesem Dokument wird beschrieben, wie Sie Fehler beheben können, die beim Bereitstellen einer Anwendung auftreten können.

Fehler bei vordefinierten Vorlagen

Wenn während der Bereitstellung Probleme mit der LangchainAgent-Vorlage auftreten, kann dies an einem der Probleme in diesem Abschnitt liegen.

Fehler beim Model Builder oder Runnable Builder

Problem:

Möglicherweise erhalten Sie eine Fehlermeldung, die so aussieht:

AttributeError: 'LangchainAgent' object has no attribute '_model_builder'

oder

AttributeError: 'LangchainAgent' object has no attribute '_runnable_builder'

Mögliche Ursache:

Dies kann passieren, wenn Sie eine Version von google-cloud-aiplatform verwendet haben, die nach 1.50.0 liegt, um die LangchainAgent in Ihrer Entwicklungsumgebung zu definieren, diese jedoch mit einer früheren Version bereitstellen als 1.51.0 in requirements=. Führen Sie folgenden Befehl in Ihrem Terminal aus, um zu prüfen, welche Version Sie in Ihrer Entwicklungsumgebung verwenden:

pip show google-cloud-aiplatform

Empfohlene Lösung:

Wenn Sie eine Version von google-cloud-aiplatform vor Version 1.51.0 verwenden, geben Sie beim Bereitstellen der Inferenzmaschine in requirements= eine Version von google-cloud-aiplatform vor Version 1.51.0 an.

Wenn Sie eine Version von google-cloud-aiplatform nach Version 1.50.0 verwenden, geben Sie beim Bereitstellen der Begründung eine Version von google-cloud-aiplatform nach der Version 1.50.0 in requirements= an Engine.

Interne Serverfehler

Problem:

Möglicherweise erhalten Sie eine Fehlermeldung, die so aussieht:

InternalServerError: 500 Revision XXX is not ready and cannot serve traffic.

Leider ist dies ein Sammelfehler für alle Probleme mit dem Container zur Laufzeit. Die mögliche Ursache ist einer von vielen möglichen Fehlern.

Mögliche Ursache(n)

  • Schmutziger Zustand auf LangchainAgent. Dies kann passieren, wenn .set_up() auf einem LangchainAgent aufgerufen wurde, bevor die Bereitstellung in der Logik-Engine erfolgt.
  • Inkonsistente Paketversionen. Dies kann auftreten, wenn sich die in der Entwicklungsumgebung installierten Pakete von den Paketen unterscheiden, die in der Remoteumgebung in der Logik-Engine installiert sind.

Empfohlene Lösunge(n)

  • Modifizierter Zustand für LangchainAgent. Erstellen Sie eine neue Instanz der LangchainAgent oder entfernen Sie agent.set_up() aus dem Code, bevor Sie die Reasoning Engine bereitstellen.
  • Nicht übereinstimmende Paketspezifikationen Weitere Informationen finden Sie im Abschnitt zur Behebung von Serialisierungsfehlern.

Serialisierungsfehler

Im Allgemeinen ist es wichtig, dass die "local"- und "remote"-Umgebungen bei der Bereitstellung in der Logik-Engine synchron sind. Sie können dies sicherstellen, indem Sie requirements= angeben, wenn Sie die Reasoning Engine bereitstellen.

Wenn Sie Probleme mit der Serialisierung haben (Fehler im Zusammenhang mit „pickle“ oder „Pickling“ sind Synonyme für „Serialisierung“), kann dies an einem der in diesem Abschnitt beschriebenen Probleme liegen.

Pydantic-Version

Problem:

Möglicherweise erhalten Sie eine Fehlermeldung, die so aussieht:

PicklingError: Can't pickle <cyfunction str_validator at 0x7ca030133d30>: it's
not the same object as pydantic.validators.str_validator

Mögliche Ursache:

Dies kann auftreten, wenn Ihr pydantic-Paket älter als Version 2.6.4 ist. Führen Sie folgenden Befehl in Ihrem Terminal aus, um zu prüfen, welche Version Sie verwenden:

pip show pydantic

Empfohlene Lösung:

Führen Sie im Terminal den folgenden Befehl aus, um das Paket zu aktualisieren:

pip install pydantic --upgrade

Führen Sie den folgenden Befehl in Ihrem Terminal aus, um zu prüfen, ob Sie die Version 2.6.4 oder höher verwenden:

pip show pydantic

Wenn Sie sich in einer Notebookinstanz befinden, z. B. ein Jupyter, Colab oder Workbench, müssen Sie möglicherweise Ihre Laufzeit neu starten, um die aktualisierten Pakete verwenden zu können.

Cloudpickle-Version

Problem:

Möglicherweise erhalten Sie eine Fehlermeldung, die so aussieht:

AttributeError: Can't get attribute '_class_setstate' on <module 'cloudpickle.cloudpickle'
from '/usr/local/lib/python3.10/site-packages/cloudpickle/cloudpickle.py'>

Mögliche Ursache:

Das kann passieren, wenn die Version Ihres cloudpickle-Pakets in Ihrer Entwicklungs- und Ihrer Bereitstellungsumgebung unterschiedlich ist. Führen Sie den folgenden Befehl in Ihrem Terminal aus, um zu prüfen, welche Version Sie in der Entwicklung verwenden:

pip show cloudpickle

Empfohlene Lösung:

Stellen Sie dieselbe Version von cloudpickle in beiden Umgebungen bereit (d. h. in Ihrer lokalen Entwicklungsumgebung und in der aus der Ferne bereitgestellten Umgebung der KI-gestützten Entscheidungsfindung), indem Sie beim Bereitstellen der KI-gestützten Entscheidungsfindung requirements= angeben.

Interne Serverfehler

Problem:

Möglicherweise erhalten Sie eine Fehlermeldung, die so aussieht:

InternalServerError: 500 Revision XXX is not ready and cannot serve traffic.

Mögliche Ursache:

Das kann passieren, wenn sich sys_version= von der Entwicklungsumgebung unterscheidet, wenn Sie die Bereitstellung in der Inferenzmaschine ausführen.

Empfohlene Lösung:

Entfernen Sie gegebenenfalls sys_version= aus den Eingabeargumenten, wenn Sie die Bereitstellung in einer Logik-Engine vornehmen. Sollten weiterhin Probleme auftreten, melden Sie den Fehler.

Cloud Storage-Bucket-Fehler

Wenn Probleme mit dem Cloud Storage-Staging-Bucket auftreten, der zum Zeitpunkt der Bereitstellung zum Erfassen und Hochladen Ihres Bots verwendet wird, kann das an einem der folgenden Probleme liegen:

Berechtigungsfehler

Empfohlene Lösung:

Wenn Sie einen bereits vorhandenen Bucket verwenden möchten, achten Sie darauf, dass das Hauptkonto, das für die Verwendung von Vertex AI authentifiziert ist (entweder Sie selbst oder ein Dienstkonto), Storage Admin-Zugriff auf den Bucket hat, und gewähren Sie Berechtigungen für das Von Google verwaltetes Dienstkonto für Logik-Engines.

Alternativ können Sie bei der Bereitstellung in der Argument-Engine einen neuen Bucket angeben und das Reasoning Engine-Client-SDK erstellt den Bucket mit den erforderlichen Berechtigungen.

Wenn weiterhin Probleme auftreten, melden Sie den Fehler.

Unterverzeichnis des Cloud Storage-Buckets wird nicht erstellt

Problem:

Möglicherweise erhalten Sie eine Fehlermeldung, die so aussieht:

NotFound: 404 Can not copy from \"gs://[LOCATION]-*/reasoning_engine/reasoning_engine.pkl\" to \"gs://*/code.pkl\", check if the source object and target bucket exist.

(Der 404-Fehler tritt auf, wenn das System versucht, in einen nicht vorhandenen Ordner zu kopieren.)

Mögliche Ursache:

Das liegt wahrscheinlich an einem Problem mit der Stringinterpolation in google-cloud-aiplatform-Versionen, die älter als 1.49.0 sind. Dieser Fehler wurde in höheren Versionen behoben. Führen Sie in Ihrem Terminal den folgenden Befehl aus, um zu prüfen, welche Version von google-cloud-aiplatform Sie verwenden:

pip show google-cloud-aiplatform

Empfohlene Lösung:

Führen Sie im Terminal den folgenden Befehl aus, um das Paket zu aktualisieren:

pip install google-cloud-aiplatform --upgrade

Prüfen Sie, ob Sie die Version 1.49.0 oder höher von google-cloud-aiplatform verwenden. Führen Sie dazu den folgenden Befehl in Ihrem Terminal aus:

pip show google-cloud-aiplatform

Wenn Sie eine Notebookinstanz nutzen, z. B. Jupyter, Colab oder Workbench, müssen Sie möglicherweise Ihre Laufzeit neu starten, bevor Sie die aktualisierten Pakete verwenden können.