From 9e17d1a225c7e0df687533166c464624dddae40e Mon Sep 17 00:00:00 2001 From: Lance Martin <122662504+rlancemartin@users.noreply.github.com> Date: Tue, 31 Oct 2023 14:00:22 -0700 Subject: [PATCH] Update Vertex template (#12644) Co-authored-by: Erick Friis --- templates/rag-matching-engine/README.md | 80 +++++++++++++++++++ templates/rag-matching-engine/pyproject.toml | 6 +- .../rag_matching_engine/__init__.py | 3 + 3 files changed, 86 insertions(+), 3 deletions(-) diff --git a/templates/rag-matching-engine/README.md b/templates/rag-matching-engine/README.md index c46fdf53c0..aae9c56e8a 100644 --- a/templates/rag-matching-engine/README.md +++ b/templates/rag-matching-engine/README.md @@ -1 +1,81 @@ + # rag-matching-engine + +This template performs RAG using Google Cloud Platform's Vertex AI with the matching engine. + +It will utilize a previously created index to retrieve relevant documents or contexts based on user-provided questions. + +## Environment Setup + +An index should be created before running the code. + +The process to create this index can be found [here](https://github.com/GoogleCloudPlatform/generative-ai/blob/main/language/use-cases/document-qa/question_answering_documents_langchain_matching_engine.ipynb). + +Environment variables for Vertex should be set: +``` +PROJECT_ID +ME_REGION +GCS_BUCKET +ME_INDEX_ID +ME_ENDPOINT_ID +``` + +## Usage + +To use this package, you should first have the LangChain CLI installed: + +```shell +pip install -U "langchain-cli[serve]" +``` + +To create a new LangChain project and install this as the only package, you can do: + +```shell +langchain app new my-app --package rag-matching-engine +``` + +If you want to add this to an existing project, you can just run: + +```shell +langchain app add rag-matching-engine +``` + +And add the following code to your `server.py` file: +```python +from rag_matching_engine import chain as rag_matching_engine_chain + +add_routes(app, rag_matching_engine_chain, path="/rag-matching-engine") +``` + +(Optional) Let's now configure LangSmith. +LangSmith will help us trace, monitor and debug LangChain applications. +LangSmith is currently in private beta, you can sign up [here](https://smith.langchain.com/). +If you don't have access, you can skip this section + +```shell +export LANGCHAIN_TRACING_V2=true +export LANGCHAIN_API_KEY= +export LANGCHAIN_PROJECT= # if not specified, defaults to "default" +``` + +If you are inside this directory, then you can spin up a LangServe instance directly by: + +```shell +langchain serve +``` + +This will start the FastAPI app with a server is running locally at +[http://localhost:8000](http://localhost:8000) + +We can see all templates at [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) +We can access the playground at [http://127.0.0.1:8000/rag-matching-engine/playground](http://127.0.0.1:8000/rag-matching-engine/playground) + +We can access the template from code with: + +```python +from langserve.client import RemoteRunnable + +runnable = RemoteRunnable("http://localhost:8000/rag-matching-engine") +``` + +For more details on how to connect to the template, refer to the Jupyter notebook `rag_matching_engine`. \ No newline at end of file diff --git a/templates/rag-matching-engine/pyproject.toml b/templates/rag-matching-engine/pyproject.toml index 583734d6c5..7ca7d3349f 100644 --- a/templates/rag-matching-engine/pyproject.toml +++ b/templates/rag-matching-engine/pyproject.toml @@ -1,8 +1,8 @@ [tool.poetry] -name = "rag_matching_engine" +name = "rag-matching-engine" version = "0.0.1" description = "" -authors = [] +authors = ["Leonid Kuligin"] readme = "README.md" [tool.poetry.dependencies] @@ -16,7 +16,7 @@ fastapi = "^0.104.0" sse-starlette = "^1.6.5" [tool.langserve] -export_module = "rag_matching_engine.chain" +export_module = "rag_matching_engine" export_attr = "chain" [build-system] diff --git a/templates/rag-matching-engine/rag_matching_engine/__init__.py b/templates/rag-matching-engine/rag_matching_engine/__init__.py index e69de29bb2..7431c5a128 100644 --- a/templates/rag-matching-engine/rag_matching_engine/__init__.py +++ b/templates/rag-matching-engine/rag_matching_engine/__init__.py @@ -0,0 +1,3 @@ +from rag_matching_engine.chain import chain + +__all__ = ["chain"]