Compare commits

..

11 Commits

Author SHA1 Message Date
Philip Kiely - Baseten
95bcf68802 add kwargs support for Baseten models (#8091)
This bugfix PR adds kwargs support to Baseten model invocations so that
e.g. the following script works properly:

```python
chatgpt_chain = LLMChain(
    llm=Baseten(model="MODEL_ID"),
    prompt=prompt,
    verbose=False,
    memory=ConversationBufferWindowMemory(k=2),
    llm_kwargs={"max_length": 4096}
)
```
2023-07-21 13:56:27 -07:00
Harrison Chase
8dcabd9205 bump releases rc0 (#8097) 2023-07-21 13:54:57 -07:00
Bagatur
58f65fcf12 use top nav docs (#8090) 2023-07-21 13:52:03 -07:00
Harrison Chase
0faba034b1 add experimental release action (#8096) 2023-07-21 13:38:35 -07:00
Harrison Chase
d353d668e4 remove CVEs (#8092)
This PR aims to move all code with CVEs into `langchain.experimental`.
Note that we are NOT yet removing from the core `langchain` package - we
will give people a week to migrate here.

See MIGRATE.md for how to migrate

Zero changes to functionality

Vulnerabilities this addresses:

PALChain:
- https://security.snyk.io/vuln/SNYK-PYTHON-LANGCHAIN-5752409
- https://security.snyk.io/vuln/SNYK-PYTHON-LANGCHAIN-5759265

SQLDatabaseChain
- https://security.snyk.io/vuln/SNYK-PYTHON-LANGCHAIN-5759268

`load_prompt` (Python files only)
- https://security.snyk.io/vuln/SNYK-PYTHON-LANGCHAIN-5725807
2023-07-21 13:32:39 -07:00
Bagatur
08c658d3f8 fix api ref (#8083) 2023-07-21 12:37:21 -07:00
Harrison Chase
344cbd9c90 update contributor guide (#8088) 2023-07-21 12:01:05 -07:00
Harrison Chase
17c06ee456 cr 2023-07-21 10:48:00 -07:00
Harrison Chase
da04760de1 Harrison/move experimental (#8084) 2023-07-21 10:36:28 -07:00
Harrison Chase
f35db9f43e (WIP) set up experimental (#7959) 2023-07-21 09:20:24 -07:00
c-bata
623b321e75 Fix allowed_search_types in VectorStoreRetriever (#8064)
Unexpectedly changed at
6792a3557d

<!-- Thank you for contributing to LangChain!

Replace this comment with:
  - Description: a description of the change, 
  - Issue: the issue # it fixes (if applicable),
  - Dependencies: any dependencies required for this change,
- Tag maintainer: for a quicker response, tag the relevant maintainer
(see below),
- Twitter handle: we announce bigger features on Twitter. If your PR
gets announced and you'd like a mention, we'll gladly shout you out!

Please make sure you're PR is passing linting and testing before
submitting. Run `make format`, `make lint` and `make test` to check this
locally.

If you're adding a new integration, please include:
1. a test for the integration, preferably unit tests that do not rely on
network access,
  2. an example notebook showing its use.

Maintainer responsibilities:
  - General / Misc / if you don't know who to tag: @baskaryan
  - DataLoaders / VectorStores / Retrievers: @rlancemartin, @eyurtsev
  - Models / Prompts: @hwchase17, @baskaryan
  - Memory: @hwchase17
  - Agents / Tools / Toolkits: @hinthornw
  - Tracing / Callbacks: @agola11
  - Async: @agola11

If no one reviews your PR within a few days, feel free to @-mention the
same people again.

See contribution guidelines for more information on how to write/run
tests, lint, etc:
https://github.com/hwchase17/langchain/blob/master/.github/CONTRIBUTING.md
 -->

I guess `allowed_search_types` is unexpectedly changed in
6792a3557d,
so that we cannot specify `similarity_score_threshold` here.

```python
class VectorStoreRetriever(BaseRetriever):
    ...
    allowed_search_types: ClassVar[Collection[str]] = (
        "similarity",
        "similarityatscore_threshold",
        "mmr",
    )

    @root_validator()
    def validate_search_type(cls, values: Dict) -> Dict:
        """Validate search type."""
        search_type = values["search_type"]
        if search_type not in cls.allowed_search_types:
            raise ValueError(...)
        if search_type == "similarity_score_threshold":
            ... # UNREACHABLE CODE
```

VectorStores Maintainers: @rlancemartin @eyurtsev
2023-07-21 08:39:36 -07:00
1743 changed files with 20755 additions and 12319 deletions

View File

@@ -2,7 +2,7 @@ version: '3'
services:
langchain:
build:
dockerfile: dev.Dockerfile
dockerfile: libs/langchain/dev.Dockerfile
context: ..
volumes:
# Update this to wherever you want VS Code to mount the folder of your project

View File

@@ -69,6 +69,14 @@ This project uses [Poetry](https://python-poetry.org/) as a dependency manager.
3. Tell Poetry to use the virtualenv python environment (`poetry config virtualenvs.prefer-active-python true`)
4. Continue with the following steps.
There are two separate projects in this repository:
- `langchain`: core langchain code, abstractions, and use cases
- `langchain.experimental`: more experimental code
Each of these has their OWN development environment.
In order to run any of the commands below, please move into their respective directories.
For example, to contribute to `langchain` run `cd libs/langchain` before getting started with the below.
To install requirements:
```bash
@@ -248,6 +256,9 @@ When you run `poetry install`, the `langchain` package is installed as editable
## Documentation
While the code is split between `langchain` and `langchain.experimental`, the documentation is one holistic thing.
This covers how to get started contributing to documentation.
### Contribute Documentation
The docs directory contains Documentation and API Reference.

View File

@@ -52,11 +52,13 @@ runs:
- name: Check Poetry File
shell: bash
working-directory: ${{ inputs.working-directory }}
run: |
poetry check
- name: Check lock file
shell: bash
working-directory: ${{ inputs.working-directory }}
run: |
poetry lock --check

View File

@@ -1,15 +1,21 @@
name: lint
on:
push:
branches: [master]
pull_request:
workflow_call:
inputs:
working-directory:
required: true
type: string
description: "From which folder this pipeline executes"
env:
POETRY_VERSION: "1.4.2"
jobs:
build:
defaults:
run:
working-directory: ${{ inputs.working-directory }}
runs-on: ubuntu-latest
strategy:
matrix:
@@ -31,6 +37,10 @@ jobs:
- name: Install dependencies
run: |
poetry install
- name: Install langchain editable
if: ${{ inputs.working-directory != 'langchain' }}
run: |
pip install -e ../langchain
- name: Analysing the code with our lint
run: |
make lint

View File

@@ -1,13 +1,12 @@
name: release
on:
pull_request:
types:
- closed
branches:
- master
paths:
- 'pyproject.toml'
workflow_call:
inputs:
working-directory:
required: true
type: string
description: "From which folder this pipeline executes"
env:
POETRY_VERSION: "1.4.2"
@@ -18,6 +17,9 @@ jobs:
${{ github.event.pull_request.merged == true }}
&& ${{ contains(github.event.pull_request.labels.*.name, 'release') }}
runs-on: ubuntu-latest
defaults:
run:
working-directory: ${{ inputs.working-directory }}
steps:
- uses: actions/checkout@v3
- name: Install poetry

View File

@@ -1,16 +1,25 @@
name: test
on:
push:
branches: [master]
pull_request:
workflow_dispatch:
workflow_call:
inputs:
working-directory:
required: true
type: string
description: "From which folder this pipeline executes"
test_type:
type: string
description: "Test types to run"
default: '["core", "extended"]'
env:
POETRY_VERSION: "1.4.2"
jobs:
build:
defaults:
run:
working-directory: ${{ inputs.working-directory }}
runs-on: ubuntu-latest
strategy:
matrix:
@@ -19,9 +28,7 @@ jobs:
- "3.9"
- "3.10"
- "3.11"
test_type:
- "core"
- "extended"
test_type: ${{ fromJSON(inputs.test_type) }}
name: Python ${{ matrix.python-version }} ${{ matrix.test_type }}
steps:
- uses: actions/checkout@v3
@@ -29,6 +36,7 @@ jobs:
uses: "./.github/actions/poetry_setup"
with:
python-version: ${{ matrix.python-version }}
working-directory: ${{ inputs.working-directory }}
poetry-version: "1.4.2"
cache-key: ${{ matrix.test_type }}
install-command: |
@@ -39,6 +47,10 @@ jobs:
echo "Running extended tests, installing dependencies with poetry..."
poetry install -E extended_testing
fi
- name: Install langchain editable
if: ${{ inputs.working-directory != 'langchain' }}
run: |
pip install -e ../langchain
- name: Run ${{matrix.test_type}} tests
run: |
if [ "${{ matrix.test_type }}" == "core" ]; then

27
.github/workflows/langchain_ci.yml vendored Normal file
View File

@@ -0,0 +1,27 @@
---
name: libs/langchain CI
on:
push:
branches: [ master ]
pull_request:
paths:
- '.github/workflows/_lint.yml'
- '.github/workflows/_test.yml'
- '.github/workflows/langchain_ci.yml'
- 'libs/langchain/**'
workflow_dispatch: # Allows to trigger the workflow manually in GitHub UI
jobs:
lint:
uses:
./.github/workflows/_lint.yml
with:
working-directory: libs/langchain
secrets: inherit
test:
uses:
./.github/workflows/_test.yml
with:
working-directory: libs/langchain
secrets: inherit

View File

@@ -0,0 +1,29 @@
---
name: libs/langchain-experimental CI
on:
push:
branches: [ master ]
pull_request:
paths:
- '.github/workflows/_lint.yml'
- '.github/workflows/_test.yml'
- '.github/workflows/langchain_experimental_ci.yml'
- 'libs/langchain/**'
- 'libs/experimental/**'
workflow_dispatch: # Allows to trigger the workflow manually in GitHub UI
jobs:
lint:
uses:
./.github/workflows/_lint.yml
with:
working-directory: libs/experimental
secrets: inherit
test:
uses:
./.github/workflows/_test.yml
with:
working-directory: libs/experimental
test_type: '["core"]'
secrets: inherit

View File

@@ -0,0 +1,20 @@
---
name: libs/langchain-experimental Release
on:
pull_request:
types:
- closed
branches:
- master
paths:
- 'libs/experimental/pyproject.toml'
workflow_dispatch: # Allows to trigger the workflow manually in GitHub UI
jobs:
release:
uses:
./.github/workflows/_release.yml
with:
working-directory: libs/experimental
secrets: inherit

20
.github/workflows/langchain_release.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
---
name: libs/langchain Release
on:
pull_request:
types:
- closed
branches:
- master
paths:
- 'libs/langchain/pyproject.toml'
workflow_dispatch: # Allows to trigger the workflow manually in GitHub UI
jobs:
release:
uses:
./.github/workflows/_release.yml
with:
working-directory: libs/langchain
secrets: inherit

View File

@@ -24,6 +24,6 @@ sphinx:
# Optionally declare the Python requirements required to build your docs
python:
install:
- requirements: docs/requirements.txt
- requirements: docs/api_reference/requirements.txt
- method: pip
path: .

47
MIGRATE.md Normal file
View File

@@ -0,0 +1,47 @@
# Migrating to `langchain.experimental`
We are moving any experimental components of langchain, or components with vulnerability issues, into `langchain.experimental`.
This guide covers how to migrate.
## Installation
Previously:
`pip install -U langchain`
Now:
`pip install -U langchain langchain.experimental`
## PALChain
Previously:
`from langchain.chains import PALChain`
Now:
`from langchain.experimental.pal_chain import PALChain`
## SQLDatabaseChain
Previously:
`from langchain.chains import SQLDatabaseChain`
Now:
`from langchain.experimental.sql import SQLDatabaseChain`
## `load_prompt` for Python files
Note: this only applies if you want to load Python files as prompts.
If you want to load json/yaml files, no change is needed.
Previously:
`from langchain.prompts import load_prompt`
Now:
`from langchain.experimental.prompts import load_prompt`

View File

@@ -1,18 +1,8 @@
.PHONY: all clean docs_build docs_clean docs_linkcheck api_docs_build api_docs_clean api_docs_linkcheck format lint test tests test_watch integration_tests docker_tests help extended_tests
.PHONY: all clean docs_build docs_clean docs_linkcheck api_docs_build api_docs_clean api_docs_linkcheck
# Default target executed when no arguments are given to make.
all: help
######################
# TESTING AND COVERAGE
######################
# Run unit tests and generate a coverage report.
coverage:
poetry run pytest --cov \
--cov-config=.coveragerc \
--cov-report xml \
--cov-report term-missing:skip-covered
######################
# DOCUMENTATION
@@ -41,46 +31,6 @@ api_docs_clean:
api_docs_linkcheck:
poetry run linkchecker docs/api_reference/_build/html/index.html
# Define a variable for the test file path.
TEST_FILE ?= tests/unit_tests/
test:
poetry run pytest --disable-socket --allow-unix-socket $(TEST_FILE)
tests:
poetry run pytest --disable-socket --allow-unix-socket $(TEST_FILE)
extended_tests:
poetry run pytest --disable-socket --allow-unix-socket --only-extended tests/unit_tests
test_watch:
poetry run ptw --now . -- tests/unit_tests
integration_tests:
poetry run pytest tests/integration_tests
docker_tests:
docker build -t my-langchain-image:test .
docker run --rm my-langchain-image:test
######################
# LINTING AND FORMATTING
######################
# Define a variable for Python and notebook files.
PYTHON_FILES=.
lint format: PYTHON_FILES=.
lint_diff format_diff: PYTHON_FILES=$(shell git diff --name-only --diff-filter=d master | grep -E '\.py$$|\.ipynb$$')
lint lint_diff:
poetry run mypy $(PYTHON_FILES)
poetry run black $(PYTHON_FILES) --check
poetry run ruff .
format format_diff:
poetry run black $(PYTHON_FILES)
poetry run ruff --select I --fix $(PYTHON_FILES)
spell_check:
poetry run codespell --toml pyproject.toml
@@ -97,12 +47,3 @@ help:
@echo 'docs_build - build the documentation'
@echo 'docs_clean - clean the documentation build artifacts'
@echo 'docs_linkcheck - run linkchecker on the documentation'
@echo 'format - run code formatters'
@echo 'lint - run linters'
@echo 'test - run unit tests'
@echo 'tests - run unit tests'
@echo 'test TEST_FILE=<test_file> - run all tests in file'
@echo 'extended_tests - run only extended unit tests'
@echo 'test_watch - run unit tests in watch mode'
@echo 'integration_tests - run integration tests'
@echo 'docker_tests - run unit tests in docker'

View File

@@ -3,8 +3,8 @@
⚡ Building applications with LLMs through composability ⚡
[![Release Notes](https://img.shields.io/github/release/hwchase17/langchain)](https://github.com/hwchase17/langchain/releases)
[![lint](https://github.com/hwchase17/langchain/actions/workflows/lint.yml/badge.svg)](https://github.com/hwchase17/langchain/actions/workflows/lint.yml)
[![test](https://github.com/hwchase17/langchain/actions/workflows/test.yml/badge.svg)](https://github.com/hwchase17/langchain/actions/workflows/test.yml)
[![CI](https://github.com/hwchase17/langchain/actions/workflows/langchain_ci.yml/badge.svg)](https://github.com/hwchase17/langchain/actions/workflows/langchain_ci.yml)
[![Experimental CI](https://github.com/hwchase17/langchain/actions/workflows/langchain_experimental_ci.yml/badge.svg)](https://github.com/hwchase17/langchain/actions/workflows/langchain_experimental_ci.yml)
[![Downloads](https://static.pepy.tech/badge/langchain/month)](https://pepy.tech/project/langchain)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Twitter](https://img.shields.io/twitter/url/https/twitter.com/langchainai.svg?style=social&label=Follow%20%40LangChainAI)](https://twitter.com/langchainai)

View File

@@ -17,8 +17,9 @@ import sys
import toml
sys.path.insert(0, os.path.abspath("."))
sys.path.insert(0, os.path.abspath("../../libs/langchain"))
with open("../../pyproject.toml") as f:
with open("../../libs/langchain/pyproject.toml") as f:
data = toml.load(f)
# -- Project information -----------------------------------------------------

View File

@@ -4,7 +4,7 @@ import re
from pathlib import Path
ROOT_DIR = Path(__file__).parents[2].absolute()
PKG_DIR = ROOT_DIR / "langchain"
PKG_DIR = ROOT_DIR / "libs" / "langchain" / "langchain"
WRITE_FILE = Path(__file__).parent / "api_reference.rst"

View File

@@ -1,3 +1,4 @@
-e libs/langchain
autodoc_pydantic==1.8.0
myst_parser
nbsphinx==0.8.9
@@ -9,6 +10,4 @@ sphinx-panels
toml
myst_nb
sphinx_copybutton
pydata-sphinx-theme==0.13.1
nbdoc
urllib3<2
pydata-sphinx-theme==0.13.1

View File

@@ -1,10 +0,0 @@
---
sidebar_position: 0
---
# Integrations
Visit the [Integrations Hub](https://integrations.langchain.com) to further explore, upvote and request integrations across key LangChain components.
import DocCardList from "@theme/DocCardList";
<DocCardList />

View File

@@ -148,6 +148,28 @@ const config = {
navbar: {
title: "🦜️🔗 LangChain",
items: [
{
to: "/docs/get_started/introduction",
label: "Docs",
position: "left",
},
{
type: 'docSidebar',
position: 'left',
sidebarId: 'use_cases',
label: 'Use cases',
},
{
type: 'docSidebar',
position: 'left',
sidebarId: 'integrations',
label: 'Integrations',
},
{
href: "https://api.python.langchain.com",
label: "API",
position: "left",
},
{
to: "https://smith.langchain.com",
label: "LangSmith",
@@ -161,8 +183,9 @@ const config = {
// Please keep GitHub link to the right for consistency.
{
href: "https://github.com/hwchase17/langchain",
label: "GitHub",
position: "right",
position: 'right',
className: 'header-github-link',
'aria-label': 'GitHub repository',
},
],
},

View File

@@ -20,7 +20,7 @@
module.exports = {
// By default, Docusaurus generates a sidebar from the docs folder structure
sidebar: [
docs: [
{
type: "category",
label: "Get started",
@@ -30,7 +30,7 @@ module.exports = {
link: {
type: 'generated-index',
description: 'Get started with LangChain',
slug: "get_started",
slug: "get_started",
},
},
{
@@ -44,17 +44,6 @@ module.exports = {
id: "modules/index"
},
},
{
type: "category",
label: "Use cases",
collapsed: true,
items: [{ type: "autogenerated", dirName: "use_cases" }],
link: {
type: 'generated-index',
description: 'Walkthroughs of common end-to-end use cases',
slug: "use_cases",
},
},
{
type: "category",
label: "Guides",
@@ -63,7 +52,7 @@ module.exports = {
link: {
type: 'generated-index',
description: 'Design guides for key parts of the development process',
slug: "guides",
slug: "guides",
},
},
{
@@ -73,7 +62,7 @@ module.exports = {
items: [{ type: "autogenerated", dirName: "ecosystem" }],
link: {
type: 'generated-index',
slug: "ecosystem",
slug: "ecosystem",
},
},
{
@@ -83,18 +72,32 @@ module.exports = {
items: [{ type: "autogenerated", dirName: "additional_resources" }, { type: "link", label: "Gallery", href: "https://github.com/kyrolabs/awesome-langchain" }],
link: {
type: 'generated-index',
slug: "additional_resources",
slug: "additional_resources",
},
},
],
integrations: [
{
type: "html",
value: "<hr>",
defaultStyle: true,
type: "category",
label: "Integrations",
collapsible: false,
items: [{ type: "autogenerated", dirName: "integrations" }],
link: {
type: 'generated-index',
slug: "integrations",
},
},
],
use_cases: [
{
type: "link",
href: "https://api.python.langchain.com",
label: "API reference",
type: "category",
label: "Use cases",
collapsible: false,
items: [{ type: "autogenerated", dirName: "use_cases" }],
link: {
type: 'generated-index',
slug: "use_cases",
},
},
],
};

View File

@@ -139,4 +139,22 @@
.hidden {
display: none !important;
}
.header-github-link:hover {
opacity: 0.6;
}
.header-github-link::before {
content: '';
width: 24px;
height: 24px;
display: flex;
background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")
no-repeat;
}
[data-theme='dark'] .header-github-link::before {
background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='white' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")
no-repeat;
}

View File

@@ -6,539 +6,551 @@
},
{
"source": "/en/latest/integrations/agent_with_wandb_tracing.html",
"destination": "/docs/ecosystem/integrations/agent_with_wandb_tracing"
"destination": "/docs/integrations/agent_with_wandb_tracing"
},
{
"source": "/en/latest/integrations/ai21.html",
"destination": "/docs/ecosystem/integrations/ai21"
"destination": "/docs/integrations/ai21"
},
{
"source": "/en/latest/integrations/aim_tracking.html",
"destination": "/docs/ecosystem/integrations/aim_tracking"
"destination": "/docs/integrations/aim_tracking"
},
{
"source": "/en/latest/integrations/airbyte.html",
"destination": "/docs/ecosystem/integrations/airbyte"
"destination": "/docs/integrations/airbyte"
},
{
"source": "/en/latest/integrations/aleph_alpha.html",
"destination": "/docs/ecosystem/integrations/aleph_alpha"
"destination": "/docs/integrations/aleph_alpha"
},
{
"source": "/en/latest/integrations/analyticdb.html",
"destination": "/docs/ecosystem/integrations/analyticdb"
"destination": "/docs/integrations/analyticdb"
},
{
"source": "/en/latest/integrations/annoy.html",
"destination": "/docs/ecosystem/integrations/annoy"
"destination": "/docs/integrations/annoy"
},
{
"source": "/en/latest/integrations/anyscale.html",
"destination": "/docs/ecosystem/integrations/anyscale"
"destination": "/docs/integrations/anyscale"
},
{
"source": "/en/latest/integrations/apify.html",
"destination": "/docs/ecosystem/integrations/apify"
"destination": "/docs/integrations/apify"
},
{
"source": "/en/latest/integrations/argilla.html",
"destination": "/docs/ecosystem/integrations/argilla"
"destination": "/docs/integrations/argilla"
},
{
"source": "/en/latest/integrations/arxiv.html",
"destination": "/docs/ecosystem/integrations/arxiv"
"destination": "/docs/integrations/arxiv"
},
{
"source": "/en/latest/integrations/atlas.html",
"destination": "/docs/ecosystem/integrations/atlas"
"destination": "/docs/integrations/atlas"
},
{
"source": "/en/latest/integrations/awadb.html",
"destination": "/docs/ecosystem/integrations/awadb"
"destination": "/docs/integrations/awadb"
},
{
"source": "/en/latest/integrations/aws_s3.html",
"destination": "/docs/ecosystem/integrations/aws_s3"
"destination": "/docs/integrations/aws_s3"
},
{
"source": "/en/latest/integrations/azlyrics.html",
"destination": "/docs/ecosystem/integrations/azlyrics"
"destination": "/docs/integrations/azlyrics"
},
{
"source": "/en/latest/integrations/azure_blob_storage.html",
"destination": "/docs/ecosystem/integrations/azure_blob_storage"
"destination": "/docs/integrations/azure_blob_storage"
},
{
"source": "/en/latest/integrations/azure_cognitive_search_.html",
"destination": "/docs/ecosystem/integrations/azure_cognitive_search_"
"destination": "/docs/integrations/azure_cognitive_search_"
},
{
"source": "/en/latest/integrations/azure_openai.html",
"destination": "/docs/ecosystem/integrations/azure_openai"
"destination": "/docs/integrations/azure_openai"
},
{
"source": "/en/latest/integrations/bananadev.html",
"destination": "/docs/ecosystem/integrations/bananadev"
"destination": "/docs/integrations/bananadev"
},
{
"source": "/en/latest/ecosystem/baseten.html",
"destination": "/docs/ecosystem/integrations/baseten"
"destination": "/docs/integrations/baseten"
},
{
"source": "/en/latest/integrations/beam.html",
"destination": "/docs/ecosystem/integrations/beam"
"destination": "/docs/integrations/beam"
},
{
"source": "/en/latest/integrations/amazon_bedrock.html",
"destination": "/docs/ecosystem/integrations/bedrock"
"destination": "/docs/integrations/bedrock"
},
{
"source": "/en/latest/integrations/bilibili.html",
"destination": "/docs/ecosystem/integrations/bilibili"
"destination": "/docs/integrations/bilibili"
},
{
"source": "/en/latest/integrations/blackboard.html",
"destination": "/docs/ecosystem/integrations/blackboard"
"destination": "/docs/integrations/blackboard"
},
{
"source": "/en/latest/integrations/cassandra.html",
"destination": "/docs/ecosystem/integrations/cassandra"
"destination": "/docs/integrations/cassandra"
},
{
"source": "/en/latest/integrations/cerebriumai.html",
"destination": "/docs/ecosystem/integrations/cerebriumai"
"destination": "/docs/integrations/cerebriumai"
},
{
"source": "/en/latest/integrations/chroma.html",
"destination": "/docs/ecosystem/integrations/chroma"
"destination": "/docs/integrations/chroma"
},
{
"source": "/en/latest/integrations/clearml_tracking.html",
"destination": "/docs/ecosystem/integrations/clearml_tracking"
"destination": "/docs/integrations/clearml_tracking"
},
{
"source": "/en/latest/integrations/cohere.html",
"destination": "/docs/ecosystem/integrations/cohere"
"destination": "/docs/integrations/cohere"
},
{
"source": "/en/latest/integrations/college_confidential.html",
"destination": "/docs/ecosystem/integrations/college_confidential"
"destination": "/docs/integrations/college_confidential"
},
{
"source": "/en/latest/integrations/comet_tracking.html",
"destination": "/docs/ecosystem/integrations/comet_tracking"
"destination": "/docs/integrations/comet_tracking"
},
{
"source": "/en/latest/integrations/confluence.html",
"destination": "/docs/ecosystem/integrations/confluence"
"destination": "/docs/integrations/confluence"
},
{
"source": "/en/latest/integrations/ctransformers.html",
"destination": "/docs/ecosystem/integrations/ctransformers"
"destination": "/docs/integrations/ctransformers"
},
{
"source": "/en/latest/integrations/databerry.html",
"destination": "/docs/ecosystem/integrations/chaindesk"
"destination": "/docs/integrations/chaindesk"
},
{
"source": "/docs/ecosystem/integrations/databerry",
"destination": "/docs/ecosystem/integrations/chaindesk"
"source": "/docs/integrations/databerry",
"destination": "/docs/integrations/chaindesk"
},
{
"source": "/en/latest/integrations/databricks/databricks.html",
"destination": "/docs/ecosystem/integrations/databricks"
"destination": "/docs/integrations/databricks"
},
{
"source": "/en/latest/integrations/databricks.html",
"destination": "/docs/ecosystem/integrations/databricks"
"destination": "/docs/integrations/databricks"
},
{
"source": "/en/latest/integrations/deepinfra.html",
"destination": "/docs/ecosystem/integrations/deepinfra"
"destination": "/docs/integrations/deepinfra"
},
{
"source": "/en/latest/integrations/deeplake.html",
"destination": "/docs/ecosystem/integrations/deeplake"
"destination": "/docs/integrations/deeplake"
},
{
"source": "/en/latest/integrations/diffbot.html",
"destination": "/docs/ecosystem/integrations/diffbot"
"destination": "/docs/integrations/diffbot"
},
{
"source": "/en/latest/integrations/discord.html",
"destination": "/docs/ecosystem/integrations/discord"
"destination": "/docs/integrations/discord"
},
{
"source": "/en/latest/integrations/docugami.html",
"destination": "/docs/ecosystem/integrations/docugami"
"destination": "/docs/integrations/docugami"
},
{
"source": "/en/latest/integrations/duckdb.html",
"destination": "/docs/ecosystem/integrations/duckdb"
"destination": "/docs/integrations/duckdb"
},
{
"source": "/en/latest/integrations/elasticsearch.html",
"destination": "/docs/ecosystem/integrations/elasticsearch"
"destination": "/docs/integrations/elasticsearch"
},
{
"source": "/en/latest/integrations/evernote.html",
"destination": "/docs/ecosystem/integrations/evernote"
"destination": "/docs/integrations/evernote"
},
{
"source": "/en/latest/integrations/facebook_chat.html",
"destination": "/docs/ecosystem/integrations/facebook_chat"
"destination": "/docs/integrations/facebook_chat"
},
{
"source": "/en/latest/integrations/figma.html",
"destination": "/docs/ecosystem/integrations/figma"
"destination": "/docs/integrations/figma"
},
{
"source": "/en/latest/integrations/forefrontai.html",
"destination": "/docs/ecosystem/integrations/forefrontai"
"destination": "/docs/integrations/forefrontai"
},
{
"source": "/en/latest/integrations/git.html",
"destination": "/docs/ecosystem/integrations/git"
"destination": "/docs/integrations/git"
},
{
"source": "/en/latest/integrations/gitbook.html",
"destination": "/docs/ecosystem/integrations/gitbook"
"destination": "/docs/integrations/gitbook"
},
{
"source": "/en/latest/integrations/google_bigquery.html",
"destination": "/docs/ecosystem/integrations/google_bigquery"
"destination": "/docs/integrations/google_bigquery"
},
{
"source": "/en/latest/integrations/google_cloud_storage.html",
"destination": "/docs/ecosystem/integrations/google_cloud_storage"
"destination": "/docs/integrations/google_cloud_storage"
},
{
"source": "/en/latest/integrations/google_drive.html",
"destination": "/docs/ecosystem/integrations/google_drive"
"destination": "/docs/integrations/google_drive"
},
{
"source": "/en/latest/integrations/google_search.html",
"destination": "/docs/ecosystem/integrations/google_search"
"destination": "/docs/integrations/google_search"
},
{
"source": "/en/latest/integrations/google_serper.html",
"destination": "/docs/ecosystem/integrations/google_serper"
"destination": "/docs/integrations/google_serper"
},
{
"source": "/en/latest/integrations/gooseai.html",
"destination": "/docs/ecosystem/integrations/gooseai"
"destination": "/docs/integrations/gooseai"
},
{
"source": "/en/latest/integrations/gpt4all.html",
"destination": "/docs/ecosystem/integrations/gpt4all"
"destination": "/docs/integrations/gpt4all"
},
{
"source": "/en/latest/integrations/graphsignal.html",
"destination": "/docs/ecosystem/integrations/graphsignal"
"destination": "/docs/integrations/graphsignal"
},
{
"source": "/en/latest/integrations/gutenberg.html",
"destination": "/docs/ecosystem/integrations/gutenberg"
"destination": "/docs/integrations/gutenberg"
},
{
"source": "/en/latest/integrations/hacker_news.html",
"destination": "/docs/ecosystem/integrations/hacker_news"
"destination": "/docs/integrations/hacker_news"
},
{
"source": "/en/latest/integrations/hazy_research.html",
"destination": "/docs/ecosystem/integrations/hazy_research"
"destination": "/docs/integrations/hazy_research"
},
{
"source": "/en/latest/integrations/helicone.html",
"destination": "/docs/ecosystem/integrations/helicone"
"destination": "/docs/integrations/helicone"
},
{
"source": "/en/latest/integrations/huggingface.html",
"destination": "/docs/ecosystem/integrations/huggingface"
"destination": "/docs/integrations/huggingface"
},
{
"source": "/en/latest/integrations/ifixit.html",
"destination": "/docs/ecosystem/integrations/ifixit"
"destination": "/docs/integrations/ifixit"
},
{
"source": "/en/latest/integrations/imsdb.html",
"destination": "/docs/ecosystem/integrations/imsdb"
"destination": "/docs/integrations/imsdb"
},
{
"source": "/en/latest/integrations/jina.html",
"destination": "/docs/ecosystem/integrations/jina"
"destination": "/docs/integrations/jina"
},
{
"source": "/en/latest/integrations/lancedb.html",
"destination": "/docs/ecosystem/integrations/lancedb"
"destination": "/docs/integrations/lancedb"
},
{
"source": "/en/latest/integrations/langchain_decorators.html",
"destination": "/docs/ecosystem/integrations/langchain_decorators"
"destination": "/docs/integrations/langchain_decorators"
},
{
"source": "/en/latest/integrations/llamacpp.html",
"destination": "/docs/ecosystem/integrations/llamacpp"
"destination": "/docs/integrations/llamacpp"
},
{
"source": "/en/latest/integrations/mediawikidump.html",
"destination": "/docs/ecosystem/integrations/mediawikidump"
"destination": "/docs/integrations/mediawikidump"
},
{
"source": "/en/latest/integrations/metal.html",
"destination": "/docs/ecosystem/integrations/metal"
"destination": "/docs/integrations/metal"
},
{
"source": "/en/latest/integrations/microsoft_onedrive.html",
"destination": "/docs/ecosystem/integrations/microsoft_onedrive"
"destination": "/docs/integrations/microsoft_onedrive"
},
{
"source": "/en/latest/integrations/microsoft_powerpoint.html",
"destination": "/docs/ecosystem/integrations/microsoft_powerpoint"
"destination": "/docs/integrations/microsoft_powerpoint"
},
{
"source": "/en/latest/integrations/microsoft_word.html",
"destination": "/docs/ecosystem/integrations/microsoft_word"
"destination": "/docs/integrations/microsoft_word"
},
{
"source": "/en/latest/integrations/milvus.html",
"destination": "/docs/ecosystem/integrations/milvus"
"destination": "/docs/integrations/milvus"
},
{
"source": "/en/latest/integrations/mlflow_tracking.html",
"destination": "/docs/ecosystem/integrations/mlflow_tracking"
"destination": "/docs/integrations/mlflow_tracking"
},
{
"source": "/en/latest/integrations/modal.html",
"destination": "/docs/ecosystem/integrations/modal"
"destination": "/docs/integrations/modal"
},
{
"source": "/en/latest/ecosystem/modelscope.html",
"destination": "/docs/ecosystem/integrations/modelscope"
"destination": "/docs/integrations/modelscope"
},
{
"source": "/en/latest/integrations/modern_treasury.html",
"destination": "/docs/ecosystem/integrations/modern_treasury"
"destination": "/docs/integrations/modern_treasury"
},
{
"source": "/en/latest/integrations/momento.html",
"destination": "/docs/ecosystem/integrations/momento"
"destination": "/docs/integrations/momento"
},
{
"source": "/en/latest/integrations/myscale.html",
"destination": "/docs/ecosystem/integrations/myscale"
"destination": "/docs/integrations/myscale"
},
{
"source": "/en/latest/integrations/nlpcloud.html",
"destination": "/docs/ecosystem/integrations/nlpcloud"
"destination": "/docs/integrations/nlpcloud"
},
{
"source": "/en/latest/integrations/notion.html",
"destination": "/docs/ecosystem/integrations/notion"
"destination": "/docs/integrations/notion"
},
{
"source": "/en/latest/integrations/obsidian.html",
"destination": "/docs/ecosystem/integrations/obsidian"
"destination": "/docs/integrations/obsidian"
},
{
"source": "/en/latest/integrations/openai.html",
"destination": "/docs/ecosystem/integrations/openai"
"destination": "/docs/integrations/openai"
},
{
"source": "/en/latest/integrations/opensearch.html",
"destination": "/docs/ecosystem/integrations/opensearch"
"destination": "/docs/integrations/opensearch"
},
{
"source": "/en/latest/integrations/openweathermap.html",
"destination": "/docs/ecosystem/integrations/openweathermap"
"destination": "/docs/integrations/openweathermap"
},
{
"source": "/en/latest/integrations/petals.html",
"destination": "/docs/ecosystem/integrations/petals"
"destination": "/docs/integrations/petals"
},
{
"source": "/en/latest/integrations/pgvector.html",
"destination": "/docs/ecosystem/integrations/pgvector"
"destination": "/docs/integrations/pgvector"
},
{
"source": "/en/latest/integrations/pinecone.html",
"destination": "/docs/ecosystem/integrations/pinecone"
"destination": "/docs/integrations/pinecone"
},
{
"source": "/en/latest/integrations/pipelineai.html",
"destination": "/docs/ecosystem/integrations/pipelineai"
"destination": "/docs/integrations/pipelineai"
},
{
"source": "/en/latest/integrations/predictionguard.html",
"destination": "/docs/ecosystem/integrations/predictionguard"
"destination": "/docs/integrations/predictionguard"
},
{
"source": "/en/latest/integrations/promptlayer.html",
"destination": "/docs/ecosystem/integrations/promptlayer"
"destination": "/docs/integrations/promptlayer"
},
{
"source": "/en/latest/integrations/psychic.html",
"destination": "/docs/ecosystem/integrations/psychic"
"destination": "/docs/integrations/psychic"
},
{
"source": "/en/latest/integrations/qdrant.html",
"destination": "/docs/ecosystem/integrations/qdrant"
"destination": "/docs/integrations/qdrant"
},
{
"source": "/en/latest/integrations/ray_serve.html",
"destination": "/docs/ecosystem/integrations/ray_serve"
"destination": "/docs/integrations/ray_serve"
},
{
"source": "/en/latest/integrations/rebuff.html",
"destination": "/docs/ecosystem/integrations/rebuff"
"destination": "/docs/integrations/rebuff"
},
{
"source": "/en/latest/integrations/reddit.html",
"destination": "/docs/ecosystem/integrations/reddit"
"destination": "/docs/integrations/reddit"
},
{
"source": "/en/latest/integrations/redis.html",
"destination": "/docs/ecosystem/integrations/redis"
"destination": "/docs/integrations/redis"
},
{
"source": "/en/latest/integrations/replicate.html",
"destination": "/docs/ecosystem/integrations/replicate"
"destination": "/docs/integrations/replicate"
},
{
"source": "/en/latest/integrations/roam.html",
"destination": "/docs/ecosystem/integrations/roam"
"destination": "/docs/integrations/roam"
},
{
"source": "/en/latest/integrations/runhouse.html",
"destination": "/docs/ecosystem/integrations/runhouse"
"destination": "/docs/integrations/runhouse"
},
{
"source": "/en/latest/integrations/rwkv.html",
"destination": "/docs/ecosystem/integrations/rwkv"
"destination": "/docs/integrations/rwkv"
},
{
"source": "/en/latest/integrations/sagemaker_endpoint.html",
"destination": "/docs/ecosystem/integrations/sagemaker_endpoint"
"destination": "/docs/integrations/sagemaker_endpoint"
},
{
"source": "/en/latest/integrations/searx.html",
"destination": "/docs/ecosystem/integrations/searx"
"destination": "/docs/integrations/searx"
},
{
"source": "/en/latest/integrations/serpapi.html",
"destination": "/docs/ecosystem/integrations/serpapi"
"destination": "/docs/integrations/serpapi"
},
{
"source": "/en/latest/integrations/shaleprotocol.html",
"destination": "/docs/ecosystem/integrations/shaleprotocol"
"destination": "/docs/integrations/shaleprotocol"
},
{
"source": "/en/latest/integrations/sklearn.html",
"destination": "/docs/ecosystem/integrations/sklearn"
"destination": "/docs/integrations/sklearn"
},
{
"source": "/en/latest/integrations/slack.html",
"destination": "/docs/ecosystem/integrations/slack"
"destination": "/docs/integrations/slack"
},
{
"source": "/en/latest/integrations/spacy.html",
"destination": "/docs/ecosystem/integrations/spacy"
"destination": "/docs/integrations/spacy"
},
{
"source": "/en/latest/integrations/spreedly.html",
"destination": "/docs/ecosystem/integrations/spreedly"
"destination": "/docs/integrations/spreedly"
},
{
"source": "/en/latest/integrations/stochasticai.html",
"destination": "/docs/ecosystem/integrations/stochasticai"
"destination": "/docs/integrations/stochasticai"
},
{
"source": "/en/latest/integrations/stripe.html",
"destination": "/docs/ecosystem/integrations/stripe"
"destination": "/docs/integrations/stripe"
},
{
"source": "/en/latest/integrations/tair.html",
"destination": "/docs/ecosystem/integrations/tair"
"destination": "/docs/integrations/tair"
},
{
"source": "/en/latest/integrations/telegram.html",
"destination": "/docs/ecosystem/integrations/telegram"
"destination": "/docs/integrations/telegram"
},
{
"source": "/en/latest/integrations/tomarkdown.html",
"destination": "/docs/ecosystem/integrations/tomarkdown"
"destination": "/docs/integrations/tomarkdown"
},
{
"source": "/en/latest/integrations/trello.html",
"destination": "/docs/ecosystem/integrations/trello"
"destination": "/docs/integrations/trello"
},
{
"source": "/en/latest/integrations/twitter.html",
"destination": "/docs/ecosystem/integrations/twitter"
"destination": "/docs/integrations/twitter"
},
{
"source": "/en/latest/integrations/unstructured.html",
"destination": "/docs/ecosystem/integrations/unstructured"
"destination": "/docs/integrations/unstructured"
},
{
"source": "/en/latest/integrations/vectara/vectara_chat.html",
"destination": "/docs/ecosystem/integrations/vectara/vectara_chat"
"destination": "/docs/integrations/vectara/vectara_chat"
},
{
"source": "/en/latest/integrations/vectara/vectara_text_generation.html",
"destination": "/docs/ecosystem/integrations/vectara/vectara_text_generation"
"destination": "/docs/integrations/vectara/vectara_text_generation"
},
{
"source": "/en/latest/integrations/vespa.html",
"destination": "/docs/ecosystem/integrations/vespa"
"destination": "/docs/integrations/vespa"
},
{
"source": "/en/latest/integrations/wandb_tracking.html",
"destination": "/docs/ecosystem/integrations/wandb_tracking"
"destination": "/docs/integrations/wandb_tracking"
},
{
"source": "/en/latest/integrations/weather.html",
"destination": "/docs/ecosystem/integrations/weather"
"destination": "/docs/integrations/weather"
},
{
"source": "/en/latest/integrations/weaviate.html",
"destination": "/docs/ecosystem/integrations/weaviate"
"destination": "/docs/integrations/weaviate"
},
{
"source": "/en/latest/integrations/whatsapp.html",
"destination": "/docs/ecosystem/integrations/whatsapp"
"destination": "/docs/integrations/whatsapp"
},
{
"source": "/en/latest/integrations/whylabs_profiling.html",
"destination": "/docs/ecosystem/integrations/whylabs_profiling"
"destination": "/docs/integrations/whylabs_profiling"
},
{
"source": "/en/latest/integrations/wikipedia.html",
"destination": "/docs/ecosystem/integrations/wikipedia"
"destination": "/docs/integrations/wikipedia"
},
{
"source": "/en/latest/integrations/wolfram_alpha.html",
"destination": "/docs/ecosystem/integrations/wolfram_alpha"
"destination": "/docs/integrations/wolfram_alpha"
},
{
"source": "/en/latest/integrations/writer.html",
"destination": "/docs/ecosystem/integrations/writer"
"destination": "/docs/integrations/writer"
},
{
"source": "/en/latest/integrations/yeagerai.html",
"destination": "/docs/ecosystem/integrations/yeagerai"
"destination": "/docs/integrations/yeagerai"
},
{
"source": "/en/latest/integrations/youtube.html",
"destination": "/docs/ecosystem/integrations/youtube"
"destination": "/docs/integrations/youtube"
},
{
"source": "/en/latest/integrations/zep.html",
"destination": "/docs/ecosystem/integrations/zep"
"destination": "/docs/integrations/zep"
},
{
"source": "/en/latest/integrations/zilliz.html",
"destination": "/docs/ecosystem/integrations/zilliz"
"destination": "/docs/integrations/zilliz"
},
{
"source": "/docs/ecosystem/integrations/:path*",
"destination": "/docs/integrations/:path*"
},
{
"source": "/docs/ecosystem/integrations/",
"destination": "/docs/integrations/"
},
{
"source": "/docs/ecosystem/integrations",
"destination": "/docs/integrations"
},
{
"source": "/en/latest/ecosystem/deployments.html",

View File

@@ -4,7 +4,7 @@ cd ..
python3 --version
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt
python3 -m pip install -r vercel_requirements.txt
cp -r extras/* docs_skeleton/docs
cd docs_skeleton
nbdoc_build

Some files were not shown because too many files have changed in this diff Show More