Using with Langchain 🦜🔗#

LlamaIndex provides both Tool abstractions for a Langchain agent as well as a memory module.

The API reference of the Tool abstractions + memory modules are here.

Use any data loader as a Langchain Tool#

LlamaIndex allows you to use any data loader within the LlamaIndex core repo or in LlamaHub as an “on-demand” data query Tool within a LangChain agent.

The Tool will 1) load data using the data loader, 2) index the data, and 3) query the data and return the response in an ad-hoc manner.

Resources

Use a query engine as a Langchain Tool#

LlamaIndex provides Tool abstractions so that you can use a LlamaIndex query engine along with a Langchain agent.

For instance, you can choose to create a “Tool” from an QueryEngine directly as follows:

from llama_index.core.langchain_helpers.agents import (
    IndexToolConfig,
    LlamaIndexTool,
)

tool_config = IndexToolConfig(
    query_engine=query_engine,
    name=f"Vector Index",
    description=f"useful for when you want to answer queries about X",
    tool_kwargs={"return_direct": True},
)

tool = LlamaIndexTool.from_tool_config(tool_config)

Llama Demo Notebook: Tool + Memory module#

We provide another demo notebook showing how you can build a chat agent with the following components.

  • Using LlamaIndex as a generic callable tool with a Langchain agent

  • Using LlamaIndex as a memory module; this allows you to insert arbitrary amounts of conversation history with a Langchain chatbot!

Please see the notebook here.