langchain/templates
Jacob Lezberg 64e1df3d3a
infra: Update package version to apply CVE-related patch (#19490)
- **Description:** [CVE
2024-21503](https://www.cve.org/CVERecord?id=CVE-2024-21503) was
recently identified. The python linter "black" suffers from a potential
Regex-related denial of service attack. Updated version from the
vulnerable 24.2.0 to the patched 24.3.0.
- **Issue:** N/A
- **Dependencies:** The 'black' package in both `langchain` (top-level)
and `templates/python-lint`.

Co-authored-by: Bagatur <22008038+baskaryan@users.noreply.github.com>
2024-03-25 07:11:23 +00:00
..
anthropic-iterative-search templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
basic-critique-revise templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
bedrock-jcvd templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
cassandra-entomology-rag templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
cassandra-synonym-caching templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
chain-of-note-wiki templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
chat-bot-feedback templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
cohere-librarian templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
csv-agent templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
docs pinecone[patch], docs: PineconeVectorStore, release 0.0.3 (#17896) 2024-02-22 08:24:08 -08:00
elastic-query-generator templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
extraction-anthropic-functions template: bump more lockfiles (#19003) 2024-03-13 01:43:33 +00:00
extraction-openai-functions templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
gemini-functions-agent templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
guardrails-output-parser templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
hybrid-search-weaviate templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
hyde templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
llama2-functions templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
mongo-parent-document-retrieval templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
neo4j-advanced-rag templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
neo4j-cypher templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
neo4j-cypher-ft templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
neo4j-cypher-memory templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
neo4j-generation templates: Switch neo4j generation template to LLMGraphTransformer (#19024) 2024-03-14 16:00:42 -07:00
neo4j-parent templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
neo4j-semantic-layer templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
neo4j-semantic-ollama templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
neo4j-vector-memory templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
nvidia-rag-canonical templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
openai-functions-agent templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
openai-functions-agent-gmail template: bump more lockfiles (#19003) 2024-03-13 01:43:33 +00:00
openai-functions-tool-retrieval-agent Update README.md (#19172) 2024-03-16 15:23:25 -07:00
pii-protected-chatbot templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
pirate-speak templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
pirate-speak-configurable templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
plate-chain templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
propositional-retrieval templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
python-lint infra: Update package version to apply CVE-related patch (#19490) 2024-03-25 07:11:23 +00:00
rag-astradb templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
rag-aws-bedrock templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
rag-aws-kendra templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-chroma templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-chroma-multi-modal templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-chroma-multi-modal-multi-vector templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-chroma-private templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-codellama-fireworks templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-conversation templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
rag-conversation-zep templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-elasticsearch templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
rag-fusion templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
rag-gemini-multi-modal templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-google-cloud-sensitive-data-protection templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-google-cloud-vertexai-search templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-gpt-crawler templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-jaguardb templates: Added template for JaguarDB (#16757) 2024-03-19 02:36:24 +00:00
rag-lancedb templates: fix rag-lancedb dep (#19010) 2024-03-13 04:36:24 +00:00
rag-lantern templates: Add rag lantern template (#16523) 2024-03-19 02:34:46 +00:00
rag-matching-engine templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-momento-vector-index templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-mongo templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
rag-multi-index-fusion templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-multi-index-router templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-multi-modal-local templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-multi-modal-mv-local templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-ollama-multi-query templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-opensearch templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-pinecone templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
rag-pinecone-multi-query templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
rag-pinecone-rerank templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-redis templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-redis-multi-modal-multi-vector templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-self-query templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
rag-semi-structured templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-singlestoredb templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-supabase templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
rag-timescale-conversation templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
rag-timescale-hybrid-search-time templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rag-vectara templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
rag-vectara-multiquery templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
rag-weaviate templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
research-assistant templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
retrieval-agent templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
retrieval-agent-fireworks templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
rewrite-retrieve-read templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
robocorp-action-server templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
self-query-qdrant templates: update qdrant self query (#19218) 2024-03-18 19:59:08 +00:00
self-query-supabase templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
shopping-assistant templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
skeleton-of-thought templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
solo-performance-prompting-agent templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
sql-llama2 templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
sql-llamacpp templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
sql-ollama templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
sql-pgvector templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
sql-research-assistant templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
stepback-qa-prompting templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
summarize-anthropic templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
vertexai-chuck-norris templates, cli: more security deps (#19006) 2024-03-12 20:48:56 -07:00
xml-agent templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
.gitignore Adds linter in templates (#12321) 2023-10-26 13:55:07 -07:00
Makefile core[patch], langchain[patch]: fix required deps (#14373) 2023-12-07 14:24:58 -08:00
poetry.lock templates: bump lockfile deps (#19001) 2024-03-13 01:25:45 +00:00
pyproject.toml infra, multiple: Upgrade configuration for Ruff v0.2.0 (#16905) 2024-02-09 14:28:02 -08:00
README.md Batch update of alt text and title attributes for images in md/mdx files across repo (#15357) 2024-01-12 14:37:48 -08:00

LangChain Templates

LangChain Templates are the easiest and fastest way to build a production-ready LLM application. These templates serve as a set of reference architectures for a wide variety of popular LLM use cases. They are all in a standard format which make it easy to deploy them with LangServe.

🚩 We will be releasing a hosted version of LangServe for one-click deployments of LangChain applications. Sign up here to get on the waitlist.

Quick Start

To use, first install the LangChain CLI.

pip install -U langchain-cli

Next, create a new LangChain project:

langchain app 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. In this getting started guide, we will add a simple pirate-speak project. All this project does is convert user input into pirate speak.

langchain app add pirate-speak

This will pull in the specified template into packages/pirate-speak

You will then be prompted if you want to install it. This is the equivalent of running pip install -e packages/pirate-speak. You should generally accept this (or run that same command afterwards). We install it with -e so that if you modify the template at all (which you likely will) the changes are updated.

After that, it will ask you if you want to generate route code for this project. This is code you need to add to your app to start using this chain. If we accept, we will see the following code generated:

from pirate_speak.chain import chain as pirate_speak_chain

add_routes(app, pirate_speak_chain, path="/pirate-speak")

You can now edit the template you pulled down. You can change the code files in packages/pirate-speak to use a different model, different prompt, different logic. Note that the above code snippet always expects the final chain to be importable as from pirate_speak.chain import chain, so you should either keep the structure of the package similar enough to respect that or be prepared to update that code snippet.

Once you have done as much of that as you want, it is In order to have LangServe use this project, you then need to modify app/server.py. Specifically, you should add the above code snippet to app/server.py so that file looks like:

from fastapi import FastAPI
from langserve import add_routes
from pirate_speak.chain import chain as pirate_speak_chain

app = FastAPI()

add_routes(app, pirate_speak_chain, path="/pirate-speak")

(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. If you don't have access, you can skip this section

export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=<your-api-key>
export LANGCHAIN_PROJECT=<your-project>  # if not specified, defaults to "default"

For this particular application, we will use OpenAI as the LLM, so we need to export our OpenAI API key:

export OPENAI_API_KEY=sk-...

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

langchain serve

This now gives a fully deployed LangServe application. For example, you get a playground out-of-the-box at http://127.0.0.1:8000/pirate-speak/playground/:

Screenshot of the LangServe Playground interface with input and output fields demonstrating pirate speak conversion.

Access API documentation at http://127.0.0.1:8000/docs

Screenshot of the API documentation interface showing available endpoints for the pirate-speak application.

Use the LangServe python or js SDK to interact with the API as if it were a regular Runnable.

from langserve import RemoteRunnable

api = RemoteRunnable("http://127.0.0.1:8000/pirate-speak")
api.invoke({"text": "hi"})

That's it for the quick start! You have successfully downloaded your first template and deployed it with LangServe.

Additional Resources

Index of Templates

Explore the many templates available to use - from advanced RAG to agents.

Contributing

Want to contribute your own template? It's pretty easy! These instructions walk through how to do that.

Launching LangServe from a Package

You can also launch LangServe from a package directly (without having to create a new project). These instructions cover how to do that.