Starting April 29, 2025, Gemini 1.5 Pro and Gemini 1.5 Flash models are not available in projects that have no prior usage of these models, including new projects. For details, see
Model versions and lifecycle.
Build, test, and deploy a Langchain chatbot on Reasoning Engine
Stay organized with collections
Save and categorize content based on your preferences.
This sample demonstrates how to build, test, and deploy a Langchain chatbot on Reasoning Engine.
Code sample
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],[],[],[],null,["# Build, test, and deploy a Langchain chatbot on Reasoning Engine\n\nThis sample demonstrates how to build, test, and deploy a Langchain chatbot on Reasoning Engine.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Agent Engine API](/vertex-ai/generative-ai/docs/model-reference/reasoning-engine)\n\nCode sample\n-----------\n\n### Python\n\n\nBefore trying this sample, follow the Python setup instructions in the\n[Vertex AI quickstart using\nclient libraries](/vertex-ai/docs/start/client-libraries).\n\n\nFor more information, see the\n[Vertex AI Python API\nreference documentation](/python/docs/reference/aiplatform/latest).\n\n\nTo authenticate to Vertex AI, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n\n from typing import List\n\n import https://cloud.google.com/python/docs/reference/vertexai/latest/\n from vertexai.preview import https://cloud.google.com/python/docs/reference/vertexai/latest/vertexai.preview.reasoning_engines.html\n\n # TODO(developer): Update and un-comment below lines\n # PROJECT_ID = \"your-project-id\"\n # staging_bucket = \"gs://YOUR_BUCKET_NAME\"\n\n https://cloud.google.com/python/docs/reference/vertexai/latest/.init(\n project=PROJECT_ID, location=\"us-central1\", staging_bucket=staging_bucket\n )\n\n class LangchainApp:\n def __init__(self, project: str, location: str) -\u003e None:\n self.project_id = project\n self.location = location\n\n def set_up(self) -\u003e None:\n from langchain_core.prompts import ChatPromptTemplate\n from langchain_google_vertexai import ChatVertexAI\n\n system = (\n \"You are a helpful assistant that answers questions \"\n \"about Google Cloud.\"\n )\n human = \"{text}\"\n prompt = ChatPromptTemplate.from_messages(\n [(\"system\", system), (\"human\", human)]\n )\n chat = ChatVertexAI(project=self.project_id, location=self.location)\n self.chain = prompt | chat\n\n def query(self, question: str) -\u003e Union[str, List[Union[str, Dict]]]:\n \"\"\"Query the application.\n Args:\n question: The user prompt.\n Returns:\n str: The LLM response.\n \"\"\"\n return self.chain.invoke({\"text\": question}).content\n\n # Locally test\n app = LangchainApp(project=PROJECT_ID, location=\"us-central1\")\n app.set_up()\n print(app.query(\"What is Vertex AI?\"))\n\n # Create a remote app with Reasoning Engine\n # Deployment of the app should take a few minutes to complete.\n reasoning_engine = https://cloud.google.com/python/docs/reference/vertexai/latest/vertexai.preview.reasoning_engines.html.https://cloud.google.com/python/docs/reference/vertexai/latest/vertexai.preview.reasoning_engines.ReasoningEngine.html.create(\n LangchainApp(project=PROJECT_ID, location=\"us-central1\"),\n requirements=[\n \"google-cloud-aiplatform[langchain,reasoningengine]\",\n \"cloudpickle==3.0.0\",\n \"pydantic==2.7.4\",\n ],\n display_name=\"Demo LangChain App\",\n description=\"This is a simple LangChain app.\",\n # sys_version=\"3.10\", # Optional\n extra_packages=[],\n )\n # Example response:\n # Model_name will become a required arg for VertexAIEmbeddings starting...\n # ...\n # Create ReasoningEngine backing LRO: projects/123456789/locations/us-central1/reasoningEngines/...\n # ReasoningEngine created. Resource name: projects/123456789/locations/us-central1/reasoningEngines/...\n # ...\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=generativeaionvertexai)."]]