Build LLM-powered applications using LangChain
This page introduces how to build LLM-powered applications using LangChain. The overviews on this page link to procedure guides in GitHub.
What is LangChain?
LangChain is an LLM orchestration framework that helps developers build generative AI applications or retrieval-augmented generation (RAG) workflows. It provides the structure, tools, and components to streamline complex LLM workflows.
For more information about LangChain, see the Google LangChain page. For more information about the LangChain framework, see the LangChain product documentation.
LangChain components for Bigtable
Bigtable offers the following LangChain interfaces:
Learn how to use LangChain with the LangChain Quickstart for Bigtable. This quickstart creates an application that accesses a Netflix Movie dataset so that users can interact with movie data.
Vector store for Bigtable
You can use the vector store to save text documents along with their vector embeddings and other metadata in a Bigtable table. This lets you:
- Search your documents with techniques such as the vector similarity search or the maximal marginal relevance (MMR) search.
- Perform extra filtering on the vector search results with the documents' metadata.
For more information, see the LangChain vector stores topic.
Vector store procedure guide
The Bigtable guide for vector stores shows you how to do the following:
- Install the integration package and LangChain
- Set up the embedding service
- Create and configure the Bigtable store
- Customize the connection and authentication
- Query the store with the kNN algorithm and filter the results by document metadata
Key-value store for Bigtable
Bigtable provides a key-value store for LangChain in the form of a ByteStore class that lets you work with documents or embeddings stored as byte objects. This approach can help you significantly reduce costs and latency when performing tasks such as caching and indexing embeddings for repeated queries.
For more information, see the LangChain key-value stores topic.
Key-value store procedure guide
The Bigtable guide for key-value stores shows you how to do the following:
- Install the integration package and LangChain
- Initialize the required engine and tables
- Customize the connection and authentication
- How to use BigtableByteStoreas a caching layer for vector embeddings
Document loader for Bigtable
The document loader saves, loads, and deletes a LangChain Document objects. For example, you can load data for processing into embeddings and either store it in vector store or use it as a tool to provide specific context to chains.
To load documents from document loader in Bigtable, use the BigtableLoader class. BigtableLoader methods return one or more documents from a table. Use the BigtableSaver class to save and delete documents.
For more information, see the LangChain Document loaders topic.
Document loader procedure guide
The Bigtable guide for document loader shows you how to do the following:
- Install the integration package and LangChain
- Load documents from a table
- Add a filter to the loader
- Customize the connection and authentication
- Customize Document construction by specifying customer content and metadata
- How to use and customize a BigtableSaverto store and delete documents
Chat message history for Bigtable
Question and answer applications require a history of the things said in the conversation to give the application context for answering further questions from the user. The LangChain ChatMessageHistory class lets the application save messages and retrieve them when needed to formulate further answers. A message can be a question, an answer, a statement, a greeting or any other piece of text that the user or application gives during the conversation. ChatMessageHistory stores each message and chains messages together for each conversation.
Bigtable extends this class with BigtableChatMessageHistory.
Chat message history procedure guide
The Bigtable guide for chat message history shows you how to do the following:
- Install LangChain and authenticate to Google Cloud
- Initialize Bigtable schema
- Initialize the BigtableChatMessageHistoryclass to add and delete messages
- Use a client to customize the connection and authentication