You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
langchain/templates
Tyler Hutcherson 4209457bdc
Redis langserve template (#12443)
Add Redis langserve template! Eventually will add semantic caching to
this too. But I was struggling to get that to work for some reason with
the LCEL implementation here.

- **Description:** Introduces the Redis LangServe template. A simple RAG
based app built on top of Redis that allows you to chat with company's
public financial data (Edgar 10k filings)
  - **Issue:** None
- **Dependencies:** The template contains the poetry project
requirements to run this template
  - **Tag maintainer:** @baskaryan @Spartee 
  - **Twitter handle:** @tchutch94

**Note**: this requires the commit here that deletes the
`_aget_relevant_documents()` method from the Redis retriever class that
wasn't implemented. That was breaking the langserve app.

---------

Co-authored-by: Sam Partee <sam.partee@redis.com>
11 months ago
..
anthropic-functions Templates (#12294) 11 months ago
anthropic-iterative-search Format Templates (#12396) 11 months ago
cassandra-entomology-rag Format Templates (#12396) 11 months ago
cassandra-synonym-caching Format Templates (#12396) 11 months ago
csv-agent Format Templates (#12396) 11 months ago
elastic-query-generator Format Templates (#12396) 11 months ago
extraction-openai-functions Fix templates typos (#12428) 11 months ago
hyde Format Templates (#12396) 11 months ago
llama2-functions Add invoke example to LLaMA2 function template notebook (#12437) 11 months ago
neo4j-cypher Format Templates (#12396) 11 months ago
neo4j-cypher-ft Format Templates (#12396) 11 months ago
neo4j-generation Format Templates (#12396) 11 months ago
neo4j-parent Format Templates (#12396) 11 months ago
openai-functions-agent Format Templates (#12396) 11 months ago
rag-aws-bedrock Updated the Bedrock rag template (#12462) 11 months ago
rag-chroma Clean-up template READMEs (#12403) 11 months ago
rag-chroma-private AWS Bedrock RAG template (#12450) 11 months ago
rag-conversation Clean-up template READMEs (#12403) 11 months ago
rag-elasticsearch Format Templates (#12396) 11 months ago
rag-fusion Format Templates (#12396) 11 months ago
rag-pinecone AWS Bedrock RAG template (#12450) 11 months ago
rag-pinecone-multi-query AWS Bedrock RAG template (#12450) 11 months ago
rag-pinecone-rerank Format Templates (#12396) 11 months ago
rag-redis Redis langserve template (#12443) 11 months ago
rag-semi-structured Format Templates (#12396) 11 months ago
rag-supabase Format Templates (#12396) 11 months ago
rag-weaviate Add Weaviate RAG template (#12460) 11 months ago
rewrite-retrieve-read Format Templates (#12396) 11 months ago
self-query-supabase Format Templates (#12396) 11 months ago
sql-llama2 Update SQL templates (#12464) 11 months ago
sql-llamacpp Update llama.cpp and Ollama templates (#12466) 11 months ago
sql-ollama Update llama.cpp and Ollama templates (#12466) 11 months ago
stepback-qa-prompting Format Templates (#12396) 11 months ago
summarize-anthropic Clean-up template READMEs (#12403) 11 months ago
xml-agent Format Templates (#12396) 11 months ago
.gitignore Adds linter in templates (#12321) 11 months ago
CONTRIBUTING.md add docs for templates (#12346) 11 months ago
INDEX.md add docs for templates (#12346) 11 months ago
Makefile Format Templates (#12396) 11 months ago
README.md cli updates 2 (#12447) 11 months ago
poetry.lock Format Templates (#12396) 11 months ago
pyproject.toml Format Templates (#12396) 11 months ago

README.md

LangServe Templates

Templates for a fully functioning app that can be hosted by LangServe.

Some other helpful docs:

  • [Templates]

Usage

To use, first install the LangChain CLI.

pip install -U "langchain-cli[serve]"

Next, create a new LangChain project:

langchain serve new my-app

This will create a new directory called my-app with two folders:

  • app: This is where LangServe code will live
  • packages: This is where your chains or agents will live

To pull in an existing template as a package, you first need to go into your new project:

cd my-app

And you can the add a template as a project

langchain serve add $PROJECT_NAME

This will pull in the specified template into packages/$PROJECT_NAME

You then need to install this package so you can use it in the langserve app:

pip install -e packages/$PROJECT_NAME

We install it with -e so that if you modify the template at all (which you likely will) the changes are updated.

In order to have LangServe use this project, you then need to modify app/server.py. Specifically, you should add something like:

from fastapi import FastAPI
from langserve import add_routes
# This depends on the structure of the package you install
from my_project import chain

app = FastAPI()

add_routes(app, chain)

You can then spin up production-ready endpoints, along with a playground, by running:

langchain start

Adding a template

See here