Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

redo intro docs page #3288

Merged
merged 3 commits into from
Nov 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
7 changes: 7 additions & 0 deletions docs/core_docs/docs/contributing.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: Developer Guide
---

import Contributing from "../../../CONTRIBUTING.md";

<Contributing />
88 changes: 57 additions & 31 deletions docs/core_docs/docs/get_started/introduction.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,73 +3,99 @@ title: Introduction
sidebar_position: 0
---

# Introduction

**LangChain** is a framework for developing applications powered by language models. It enables applications that:

- **Are context-aware**: connect a language model to other sources of context (prompt instructions, few shot examples, content to ground it's response in)
- **Reason**: rely on a language model to reason (about how to answer based on provided context, what actions to take, etc)
- **Are context-aware**: connect a language model to sources of context (prompt instructions, few shot examples, content to ground its response in, etc.)
- **Reason**: rely on a language model to reason (about how to answer based on provided context, what actions to take, etc.)

This framework consists of several parts.

- **LangChain Libraries**: The Python and JavaScript libraries. Contains interfaces and integrations for a myriad of components, a basic run time for combining these components into chains and agents, and off-the-shelf implementations of chains and agents.
- **[LangChain Templates](https://python.langchain.com/docs/templates)**: A collection of easily deployable reference architectures for a wide variety of tasks. (_Python only_)
- **[LangServe](https://python.langchain.com/docs/langserve)**: A library for deploying LangChain chains as a REST API. (_Python only_)
- **[LangSmith](https://smith.langchain.com/)**: A developer platform that lets you debug, test, evaluate, and monitor chains built on any LLM framework and seamlessly integrates with LangChain.

![LangChain Diagram](/img/langchain_stack.png)

Together, these products simplify the entire application lifecycle:

- **Develop**: Write your applications in LangChain/LangChain.js. Hit the ground running using Templates for reference.
- **Productionize**: Use LangSmith to inspect, test and monitor your chains, so that you can constantly improve and deploy with confidence.
- **Deploy**: Turn any chain into an API with LangServe.

The main value props of LangChain are:
## LangChain Libraries

1. **Components**: abstractions for working with language models, along with a collection of implementations for each abstraction. Components are modular and easy-to-use, whether you are using the rest of the LangChain framework or not
2. **Off-the-shelf chains**: a structured assembly of components for accomplishing specific higher-level tasks
The main value props of the LangChain packages are:

Off-the-shelf chains make it easy to get started. For more complex applications and nuanced use-cases, components make it easy to customize existing chains or build new ones.
1. **Components**: composable tools and integrations for working with language models. Components are modular and easy-to-use, whether you are using the rest of the LangChain framework or not
2. **Off-the-shelf chains**: built-in assemblages of components for accomplishing higher-level tasks

Off-the-shelf chains make it easy to get started. Components make it easy to customize existing chains and build new ones.

## Get started

[Heres](/docs/get_started/installation) how to install LangChain, set up your environment, and start building.
[Here's](/docs/get_started/installation) how to install LangChain, set up your environment, and start building.

We recommend following our [Quickstart](/docs/get_started/quickstart) guide to familiarize yourself with the framework by building your first LangChain application.

_**Note**: These docs are for the LangChain [JS/TS package](https://github.com/langchain-ai/langchainjs). For documentation on [the Python version](https://github.com/langchain-ai/langchain), [head here](https://python.langchain.com/docs)._
Read up on our [Security](/docs/security) best practices to make sure you're developing safely with LangChain.

## Modules
:::note

LangChain provides standard, extendable interfaces and external integrations for the following modules, listed from least to most complex:
These docs focus on the JS/TS LangChain library. [Head here](https://python.langchain.com) for docs on the Python LangChain library.

#### [Model I/O](/docs/modules/model_io/)
:::

Interface with language models
## LangChain Expression Language (LCEL)

#### [Retrieval](/docs/modules/data_connection/)
LCEL is a declarative way to compose chains. LCEL was designed from day 1 to support putting prototypes in production, with no code changes, from the simplest “prompt + LLM” chain to the most complex chains.

Interface with application-specific data
- **[Overview](/docs/expression_language/)**: LCEL and its benefits
- **[Interface](/docs/expression_language/interface)**: The standard interface for LCEL objects
- **[How-to](/docs/expression_language/how_to/routing)**: Key features of LCEL
- **[Cookbook](/docs/expression_language/cookbook)**: Example code for accomplishing common tasks

#### [Chains](/docs/modules/chains/)
## Modules

Construct sequences of calls
LangChain provides standard, extendable interfaces and integrations for the following modules:

#### [Agents](/docs/modules/agents/)
#### [Model I/O](/docs/modules/model_io/)

Let chains choose which tools to use given high-level directives
Interface with language models

#### [Memory](/docs/modules/memory/)
#### [Retrieval](/docs/modules/data_connection/)

Persist application state between runs of a chain
Interface with application-specific data

#### [Callbacks](/docs/modules/callbacks/)
#### [Agents](/docs/modules/agents/)

Log and stream intermediate steps of any chain
Let models choose which tools to use given high-level directives

## Examples, ecosystem, and resources

### [Use cases](/docs/use_cases/)

Walkthroughs and best-practices for common end-to-end use cases, like:
Walkthroughs and techniques for common end-to-end use cases, like:

- [Chatbots](/docs/use_cases/chatbots/)
- [Answering questions using sources](/docs/use_cases/question_answering/)
- [Analyzing structured data](/docs/use_cases/tabular)
- [Document question answering](/docs/use_cases/question_answering/)
- [RAG](/docs/use_cases/rag/code_understanding)
- [Agents](/docs/use_cases/autonomous_agents/)
- and much more...

### [Guides](/docs/guides/)
### [Integrations](/docs/integrations/platforms/)

LangChain is part of a rich ecosystem of tools that integrate with our framework and build on top of it. Check out our growing list of [integrations](/docs/integrations/platforms/).

### [API reference](https://api.js.langchain.com)

Learn best practices for developing with LangChain.
Head to the reference section for full documentation of all classes and methods in the LangChain and LangChain Experimental packages.

### [Additional resources](/docs/additional_resources/tutorials)
### [Developer's guide](/docs/contributing)

Our community is full of prolific developers, creative builders, and fantastic teachers. Check out [our tutorials section](/docs/additional_resources/tutorials) for guides on how to get started with various concepts, and [Gallery](https://github.com/kyrolabs/awesome-langchain) for a list of awesome LangChain projects, compiled by the folks at [KyroLabs](https://kyrolabs.com).
Check out the developer's guide for guidelines on contributing and help getting your dev environment set up.

### [Community](/docs/community)

Head to the [Community navigator](/docs/community) to find places to ask questions, share feedback, meet other developers, and dream about the future of LLMs.
Head to the [Community navigator](/docs/community) to find places to ask questions, share feedback, meet other developers, and dream about the future of LLM's.
4 changes: 4 additions & 0 deletions docs/core_docs/docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,10 @@ const config = {
to: "/docs/additional_resources/tutorials",
label: "Tutorials",
},
{
to: "/docs/contributing",
label: "Contributing",
},
],
},
{
Expand Down
Binary file added docs/core_docs/static/img/langchain_stack.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.