{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Google Cloud Platform Vertex AI PaLM \n", "\n", "Note: This is seperate from the Google PaLM integration, it exposes [Vertex AI PaLM API](https://cloud.google.com/vertex-ai/docs/generative-ai/learn/overview) on Google Cloud. \n", "\n", "By default, Google Cloud [does not use](https://cloud.google.com/vertex-ai/docs/generative-ai/data-governance#foundation_model_development) Customer Data to train its foundation models as part of Google Cloud`s AI/ML Privacy Commitment. More details about how Google processes data can also be found in [Google's Customer Data Processing Addendum (CDPA)](https://cloud.google.com/terms/data-processing-addendum).\n", "\n", "To use Vertex AI PaLM you must have the `google-cloud-aiplatform` Python package installed and either:\n", "- Have credentials configured for your environment (gcloud, workload identity, etc...)\n", "- Store the path to a service account JSON file as the GOOGLE_APPLICATION_CREDENTIALS environment variable\n", "\n", "This codebase uses the `google.auth` library which first looks for the application credentials variable mentioned above, and then looks for system-level auth.\n", "\n", "For more information, see: \n", "- https://cloud.google.com/docs/authentication/application-default-credentials#GAC\n", "- https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#module-google.auth\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "tags": [] }, "outputs": [], "source": [ "#!pip install google-cloud-aiplatform" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from langchain.llms import VertexAI\n", "from langchain import PromptTemplate, LLMChain" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "template = \"\"\"Question: {question}\n", "\n", "Answer: Let's think step by step.\"\"\"\n", "\n", "prompt = PromptTemplate(template=template, input_variables=[\"question\"])" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "llm = VertexAI()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "llm_chain = LLMChain(prompt=prompt, llm=llm)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'Justin Bieber was born on March 1, 1994. The Super Bowl in 1994 was won by the San Francisco 49ers.\\nThe final answer: San Francisco 49ers.'" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "question = \"What NFL team won the Super Bowl in the year Justin Beiber was born?\"\n", "\n", "llm_chain.run(question)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "You can now leverage the Codey API for code generation within Vertex AI. The model names are:\n", "- code-bison: for code suggestion\n", "- code-gecko: for code completion" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2023-06-17T21:16:53.149438Z", "iopub.status.busy": "2023-06-17T21:16:53.149065Z", "iopub.status.idle": "2023-06-17T21:16:53.421824Z", "shell.execute_reply": "2023-06-17T21:16:53.421136Z", "shell.execute_reply.started": "2023-06-17T21:16:53.149415Z" }, "tags": [] }, "outputs": [], "source": [ "llm = VertexAI(model_name=\"code-bison\")" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2023-06-17T21:17:11.179077Z", "iopub.status.busy": "2023-06-17T21:17:11.178686Z", "iopub.status.idle": "2023-06-17T21:17:11.182499Z", "shell.execute_reply": "2023-06-17T21:17:11.181895Z", "shell.execute_reply.started": "2023-06-17T21:17:11.179052Z" }, "tags": [] }, "outputs": [], "source": [ "llm_chain = LLMChain(prompt=prompt, llm=llm)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2023-06-17T21:18:47.024785Z", "iopub.status.busy": "2023-06-17T21:18:47.024230Z", "iopub.status.idle": "2023-06-17T21:18:49.352249Z", "shell.execute_reply": "2023-06-17T21:18:49.351695Z", "shell.execute_reply.started": "2023-06-17T21:18:47.024762Z" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "'```python\\ndef is_prime(n):\\n \"\"\"\\n Determines if a number is prime.\\n\\n Args:\\n n: The number to be tested.\\n\\n Returns:\\n True if the number is prime, False otherwise.\\n \"\"\"\\n\\n # Check if the number is 1.\\n if n == 1:\\n return False\\n\\n # Check if the number is 2.\\n if n == 2:\\n return True\\n\\n'" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "question = \"Write a python function that identifies if the number is a prime number?\"\n", "\n", "llm_chain.run(question)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.1" }, "vscode": { "interpreter": { "hash": "cc99336516f23363341912c6723b01ace86f02e26b4290be1efc0677e2e2ec24" } } }, "nbformat": 4, "nbformat_minor": 4 }