Compare commits

..

13 Commits

Author SHA1 Message Date
Eugene Yurtsev
84527fc502 another lint 2024-11-22 16:53:01 -05:00
Eugene Yurtsev
464cd320cb lint 2024-11-22 16:50:45 -05:00
Eugene Yurtsev
8dd8b41b6c qx 2024-11-22 16:48:07 -05:00
Eugene Yurtsev
caaa03c0a6 qxqx 2024-11-22 16:45:25 -05:00
Eugene Yurtsev
906a0b2972 x 2024-11-22 16:45:02 -05:00
Eugene Yurtsev
8511241b87 x 2024-11-22 16:37:06 -05:00
Eugene Yurtsev
fd7860e508 x 2024-11-22 16:35:04 -05:00
Eugene Yurtsev
33b3e22083 x 2024-11-22 16:30:34 -05:00
Eugene Yurtsev
c0c6d61fa5 x 2024-11-22 16:25:22 -05:00
Eugene Yurtsev
7ea38acf2d x 2024-11-22 16:24:12 -05:00
Eugene Yurtsev
557f85d7fd x 2024-11-22 16:21:07 -05:00
Eugene Yurtsev
6119424343 x 2024-11-22 16:19:25 -05:00
Eugene Yurtsev
34fcd93b33 qx 2024-11-22 15:44:05 -05:00
449 changed files with 13916 additions and 20513 deletions

View File

@@ -22,7 +22,7 @@ body:
if there's another way to solve your problem:
[LangChain documentation with the integrated search](https://python.langchain.com/docs/get_started/introduction),
[API Reference](https://python.langchain.com/api_reference/),
[API Reference](https://api.python.langchain.com/en/stable/),
[GitHub search](https://github.com/langchain-ai/langchain),
[LangChain Github Discussions](https://github.com/langchain-ai/langchain/discussions),
[LangChain Github Issues](https://github.com/langchain-ai/langchain/issues?q=is%3Aissue),

View File

@@ -16,7 +16,7 @@ body:
if there's another way to solve your problem:
[LangChain documentation with the integrated search](https://python.langchain.com/docs/get_started/introduction),
[API Reference](https://python.langchain.com/api_reference/),
[API Reference](https://api.python.langchain.com/en/stable/),
[GitHub search](https://github.com/langchain-ai/langchain),
[LangChain Github Discussions](https://github.com/langchain-ai/langchain/discussions),
[LangChain Github Issues](https://github.com/langchain-ai/langchain/issues?q=is%3Aissue),

View File

@@ -21,7 +21,7 @@ body:
place to ask your question:
[LangChain documentation with the integrated search](https://python.langchain.com/docs/get_started/introduction),
[API Reference](https://python.langchain.com/api_reference/),
[API Reference](https://api.python.langchain.com/en/stable/),
[GitHub search](https://github.com/langchain-ai/langchain),
[LangChain Github Discussions](https://github.com/langchain-ai/langchain/discussions),
[LangChain Github Issues](https://github.com/langchain-ai/langchain/issues?q=is%3Aissue),

View File

@@ -32,8 +32,18 @@ IGNORED_PARTNERS = [
"huggingface",
]
# Cap python version at 3.12 for some packages with dependencies that are not yet
# compatible with python 3.13 (mostly hf tokenizers).
PY_312_MAX_PACKAGES = [
"libs/partners/huggingface", # https://github.com/pytorch/pytorch/issues/130249
f"libs/partners/{integration}"
for integration in [
"chroma",
"couchbase",
"huggingface",
"mistralai",
"nomic",
"qdrant",
]
]
@@ -124,11 +134,10 @@ def _get_configs_for_single_dir(job: str, dir_: str) -> List[Dict[str, str]]:
elif dir_ in PY_312_MAX_PACKAGES:
py_versions = ["3.9", "3.12"]
elif dir_ == "libs/langchain" and job == "extended-tests":
py_versions = ["3.9", "3.13"]
elif dir_ == "libs/community" and job == "extended-tests":
py_versions = ["3.9", "3.12"]
elif dir_ in ["libs/community", "libs/langchain"] and job == "extended-tests":
# community extended test resolution in 3.12 is slow
# even in uv
py_versions = ["3.9", "3.11"]
elif dir_ == "libs/community" and job == "compile-integration-tests":
# community integration deps are slow in 3.12
@@ -272,9 +281,6 @@ if __name__ == "__main__":
# TODO: update to include all packages that rely on standard-tests (all partner packages)
# note: won't run on external repo partners
dirs_to_run["lint"].add("libs/standard-tests")
dirs_to_run["test"].add("libs/standard-tests")
dirs_to_run["lint"].add("libs/cli")
dirs_to_run["test"].add("libs/cli")
dirs_to_run["test"].add("libs/partners/mistralai")
dirs_to_run["test"].add("libs/partners/openai")
dirs_to_run["test"].add("libs/partners/anthropic")
@@ -282,9 +288,8 @@ if __name__ == "__main__":
dirs_to_run["test"].add("libs/partners/groq")
elif file.startswith("libs/cli"):
dirs_to_run["lint"].add("libs/cli")
dirs_to_run["test"].add("libs/cli")
# todo: add cli makefile
pass
elif file.startswith("libs/partners"):
partner_dir = file.split("/")[2]
if os.path.isdir(f"libs/partners/{partner_dir}") and [

View File

@@ -13,7 +13,7 @@ on:
description: "Python version to use"
env:
POETRY_VERSION: "1.8.4"
POETRY_VERSION: "1.7.1"
jobs:
build:
@@ -21,7 +21,6 @@ jobs:
run:
working-directory: ${{ inputs.working-directory }}
runs-on: ubuntu-latest
timeout-minutes: 20
name: "poetry run pytest -m compile tests/integration_tests #${{ inputs.python-version }}"
steps:
- uses: actions/checkout@v4

View File

@@ -12,7 +12,7 @@ on:
description: "Python version to use"
env:
POETRY_VERSION: "1.8.4"
POETRY_VERSION: "1.7.1"
jobs:
build:

View File

@@ -13,7 +13,7 @@ on:
description: "Python version to use"
env:
POETRY_VERSION: "1.8.4"
POETRY_VERSION: "1.7.1"
WORKDIR: ${{ inputs.working-directory == '' && '.' || inputs.working-directory }}
# This env var allows us to get inline annotations when ruff has complaints.
@@ -23,7 +23,6 @@ jobs:
build:
name: "make lint #${{ inputs.python-version }}"
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v4

View File

@@ -21,7 +21,7 @@ on:
env:
PYTHON_VERSION: "3.11"
POETRY_VERSION: "1.8.4"
POETRY_VERSION: "1.7.1"
jobs:
build:
@@ -167,7 +167,6 @@ jobs:
- release-notes
- test-pypi-publish
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
@@ -192,12 +191,7 @@ jobs:
poetry-version: ${{ env.POETRY_VERSION }}
working-directory: ${{ inputs.working-directory }}
- uses: actions/download-artifact@v4
with:
name: dist
path: ${{ inputs.working-directory }}/dist/
- name: Import dist package
- name: Import published package
shell: bash
working-directory: ${{ inputs.working-directory }}
env:
@@ -213,7 +207,15 @@ jobs:
# - attempt install again after 5 seconds if it fails because there is
# sometimes a delay in availability on test pypi
run: |
poetry run pip install dist/*.whl
poetry run pip install \
--extra-index-url https://test.pypi.org/simple/ \
"$PKG_NAME==$VERSION" || \
( \
sleep 15 && \
poetry run pip install \
--extra-index-url https://test.pypi.org/simple/ \
"$PKG_NAME==$VERSION" \
)
# Replace all dashes in the package name with underscores,
# since that's how Python imports packages with dashes in the name.
@@ -222,10 +224,10 @@ jobs:
poetry run python -c "import $IMPORT_NAME; print(dir($IMPORT_NAME))"
- name: Import test dependencies
run: poetry install --with test --no-root
run: poetry install --with test
working-directory: ${{ inputs.working-directory }}
# Overwrite the local version of the package with the built version
# Overwrite the local version of the package with the test PyPI version.
- name: Import published package (again)
working-directory: ${{ inputs.working-directory }}
shell: bash
@@ -233,7 +235,9 @@ jobs:
PKG_NAME: ${{ needs.build.outputs.pkg-name }}
VERSION: ${{ needs.build.outputs.version }}
run: |
poetry run pip install dist/*.whl
poetry run pip install \
--extra-index-url https://test.pypi.org/simple/ \
"$PKG_NAME==$VERSION"
- name: Run unit tests
run: make tests

View File

@@ -13,7 +13,7 @@ on:
description: "Python version to use"
env:
POETRY_VERSION: "1.8.4"
POETRY_VERSION: "1.7.1"
jobs:
build:
@@ -21,7 +21,6 @@ jobs:
run:
working-directory: ${{ inputs.working-directory }}
runs-on: ubuntu-latest
timeout-minutes: 20
name: "make test #${{ inputs.python-version }}"
steps:
- uses: actions/checkout@v4

View File

@@ -9,12 +9,11 @@ on:
description: "Python version to use"
env:
POETRY_VERSION: "1.8.4"
POETRY_VERSION: "1.7.1"
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 20
name: "check doc imports #${{ inputs.python-version }}"
steps:
- uses: actions/checkout@v4

View File

@@ -18,7 +18,7 @@ on:
description: "Pydantic version to test."
env:
POETRY_VERSION: "1.8.4"
POETRY_VERSION: "1.7.1"
jobs:
build:
@@ -26,7 +26,6 @@ jobs:
run:
working-directory: ${{ inputs.working-directory }}
runs-on: ubuntu-latest
timeout-minutes: 20
name: "make test # pydantic: ~=${{ inputs.pydantic-version }}, python: ${{ inputs.python-version }}, "
steps:
- uses: actions/checkout@v4

View File

@@ -14,7 +14,7 @@ on:
description: "Release from a non-master branch (danger!)"
env:
POETRY_VERSION: "1.8.4"
POETRY_VERSION: "1.7.1"
PYTHON_VERSION: "3.10"
jobs:

View File

@@ -5,7 +5,7 @@ on:
schedule:
- cron: '0 13 * * *'
env:
POETRY_VERSION: "1.8.4"
POETRY_VERSION: "1.8.1"
PYTHON_VERSION: "3.11"
jobs:
@@ -73,7 +73,7 @@ jobs:
working-directory: langchain
run: |
python -m uv pip install $(ls ./libs/partners | xargs -I {} echo "./libs/partners/{}")
python -m uv pip install libs/core libs/langchain libs/text-splitters libs/community libs/experimental libs/standard-tests
python -m uv pip install libs/core libs/langchain libs/text-splitters libs/community libs/experimental
python -m uv pip install -r docs/api_reference/requirements.txt
- name: Set Git config

View File

@@ -17,7 +17,7 @@ concurrency:
cancel-in-progress: true
env:
POETRY_VERSION: "1.8.4"
POETRY_VERSION: "1.7.1"
jobs:
build:
@@ -119,7 +119,6 @@ jobs:
job-configs: ${{ fromJson(needs.build.outputs.extended-tests) }}
fail-fast: false
runs-on: ubuntu-latest
timeout-minutes: 20
defaults:
run:
working-directory: ${{ matrix.job-configs.working-directory }}

View File

@@ -15,7 +15,7 @@ on:
- cron: '0 13 * * *'
env:
POETRY_VERSION: "1.8.4"
POETRY_VERSION: "1.7.1"
jobs:
build:

View File

@@ -2,60 +2,32 @@ name: Scheduled tests
on:
workflow_dispatch: # Allows to trigger the workflow manually in GitHub UI
inputs:
working-directory-force:
type: string
description: "From which folder this pipeline executes - defaults to all in matrix - example value: libs/partners/anthropic"
python-version-force:
type: string
description: "Python version to use - defaults to 3.9 and 3.11 in matrix - example value: 3.9"
schedule:
- cron: '0 13 * * *'
env:
POETRY_VERSION: "1.8.4"
DEFAULT_LIBS: '["libs/partners/openai", "libs/partners/anthropic", "libs/partners/fireworks", "libs/partners/groq", "libs/partners/mistralai", "libs/partners/google-vertexai", "libs/partners/google-genai", "libs/partners/aws"]'
POETRY_VERSION: "1.7.1"
jobs:
compute-matrix:
if: github.repository_owner == 'langchain-ai' || github.event_name != 'schedule'
runs-on: ubuntu-latest
name: Compute matrix
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Set matrix
id: set-matrix
env:
DEFAULT_LIBS: ${{ env.DEFAULT_LIBS }}
WORKING_DIRECTORY_FORCE: ${{ github.event.inputs.working-directory-force || '' }}
PYTHON_VERSION_FORCE: ${{ github.event.inputs.python-version-force || '' }}
run: |
# echo "matrix=..." where matrix is a json formatted str with keys python-version and working-directory
# python-version should default to 3.9 and 3.11, but is overridden to [PYTHON_VERSION_FORCE] if set
# working-directory should default to DEFAULT_LIBS, but is overridden to [WORKING_DIRECTORY_FORCE] if set
python_version='["3.9", "3.11"]'
working_directory="$DEFAULT_LIBS"
if [ -n "$PYTHON_VERSION_FORCE" ]; then
python_version="[\"$PYTHON_VERSION_FORCE\"]"
fi
if [ -n "$WORKING_DIRECTORY_FORCE" ]; then
working_directory="[\"$WORKING_DIRECTORY_FORCE\"]"
fi
matrix="{\"python-version\": $python_version, \"working-directory\": $working_directory}"
echo $matrix
echo "matrix=$matrix" >> $GITHUB_OUTPUT
build:
if: github.repository_owner == 'langchain-ai' || github.event_name != 'schedule'
name: Python ${{ matrix.python-version }} - ${{ matrix.working-directory }}
runs-on: ubuntu-latest
needs: [compute-matrix]
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
python-version: ${{ fromJSON(needs.compute-matrix.outputs.matrix).python-version }}
working-directory: ${{ fromJSON(needs.compute-matrix.outputs.matrix).working-directory }}
python-version:
- "3.9"
- "3.11"
working-directory:
- "libs/partners/openai"
- "libs/partners/anthropic"
- "libs/partners/fireworks"
- "libs/partners/groq"
- "libs/partners/mistralai"
- "libs/partners/google-vertexai"
- "libs/partners/google-genai"
- "libs/partners/aws"
steps:
- uses: actions/checkout@v4

View File

@@ -69,11 +69,7 @@ lint lint_package lint_tests:
poetry run ruff check docs cookbook
poetry run ruff format docs cookbook cookbook --diff
poetry run ruff check --select I docs cookbook
git --no-pager grep 'from langchain import' docs cookbook | grep -vE 'from langchain import (hub)' && echo "Error: no importing langchain from root in docs, except for hub" && exit 1 || exit 0
git --no-pager grep 'api.python.langchain.com' -- docs/docs ':!docs/docs/additional_resources/arxiv_references.mdx' ':!docs/docs/integrations/document_loaders/sitemap.ipynb' || exit 0 && \
echo "Error: you should link python.langchain.com/api_reference, not api.python.langchain.com in the docs" && \
exit 1
git grep 'from langchain import' docs/docs cookbook | grep -vE 'from langchain import (hub)' && exit 1 || exit 0
## format: Format the project files.
format format_diff:

View File

@@ -38,19 +38,18 @@ conda install langchain -c conda-forge
For these applications, LangChain simplifies the entire application lifecycle:
- **Open-source libraries**: Build your applications using LangChain's open-source [building blocks](https://python.langchain.com/docs/concepts/#langchain-expression-language-lcel), [components](https://python.langchain.com/docs/concepts/), and [third-party integrations](https://python.langchain.com/docs/integrations/providers/).
Use [LangGraph](https://langchain-ai.github.io/langgraph/) to build stateful agents with first-class streaming and human-in-the-loop support.
- **Productionization**: Inspect, monitor, and evaluate your apps with [LangSmith](https://docs.smith.langchain.com/) so that you can constantly optimize and deploy with confidence.
- **Deployment**: Turn your LangGraph applications into production-ready APIs and Assistants with [LangGraph Platform](https://langchain-ai.github.io/langgraph/cloud/).
- **Deployment**: Turn your LangGraph applications into production-ready APIs and Assistants with [LangGraph Cloud](https://langchain-ai.github.io/langgraph/cloud/).
### Open-source libraries
- **`langchain-core`**: Base abstractions and LangChain Expression Language.
- **Integration packages** (e.g. **`langchain-openai`**, **`langchain-anthropic`**, etc.): Important integrations have been split into lightweight packages that are co-maintained by the LangChain team and the integration developers.
- **`langchain-community`**: Third party integrations.
- Some integrations have been further split into **partner packages** that only rely on **`langchain-core`**. Examples include **`langchain_openai`** and **`langchain_anthropic`**.
- **`langchain`**: Chains, agents, and retrieval strategies that make up an application's cognitive architecture.
- **`langchain-community`**: Third-party integrations that are community maintained.
- **[LangGraph](https://langchain-ai.github.io/langgraph)**: Build robust and stateful multi-actor applications with LLMs by modeling steps as edges and nodes in a graph. Integrates smoothly with LangChain, but can be used without it. To learn more about LangGraph, check out our first LangChain Academy course, *Introduction to LangGraph*, available [here](https://academy.langchain.com/courses/intro-to-langgraph).
- **[`LangGraph`](https://langchain-ai.github.io/langgraph/)**: A library for building robust and stateful multi-actor applications with LLMs by modeling steps as edges and nodes in a graph. Integrates smoothly with LangChain, but can be used without it. To learn more about LangGraph, check out our first LangChain Academy course, *Introduction to LangGraph*, available [here](https://academy.langchain.com/courses/intro-to-langgraph).
### Productionization:
@@ -58,7 +57,7 @@ For these applications, LangChain simplifies the entire application lifecycle:
### Deployment:
- **[LangGraph Platform](https://langchain-ai.github.io/langgraph/cloud/)**: Turn your LangGraph applications into production-ready APIs and Assistants.
- **[LangGraph Cloud](https://langchain-ai.github.io/langgraph/cloud/)**: Turn your LangGraph applications into production-ready APIs and Assistants.
![Diagram outlining the hierarchical organization of the LangChain framework, displaying the interconnected parts across multiple layers.](docs/static/svg/langchain_stack_112024.svg#gh-light-mode-only "LangChain Architecture Overview")
![Diagram outlining the hierarchical organization of the LangChain framework, displaying the interconnected parts across multiple layers.](docs/static/svg/langchain_stack_112024_dark.svg#gh-dark-mode-only "LangChain Architecture Overview")
@@ -124,7 +123,7 @@ Please see [here](https://python.langchain.com) for full documentation, which in
- [Tutorials](https://python.langchain.com/docs/tutorials/): If you're looking to build something specific or are more of a hands-on learner, check out our tutorials. This is the best place to get started.
- [How-to guides](https://python.langchain.com/docs/how_to/): Answers to “How do I….?” type questions. These guides are goal-oriented and concrete; they're meant to help you complete a specific task.
- [Conceptual guide](https://python.langchain.com/docs/concepts/): Conceptual explanations of the key parts of the framework.
- [API Reference](https://python.langchain.com/api_reference/): Thorough documentation of every class and method.
- [API Reference](https://api.python.langchain.com): Thorough documentation of every class and method.
## 🌐 Ecosystem

View File

@@ -1,30 +1,5 @@
# Security Policy
LangChain has a large ecosystem of integrations with various external resources like local and remote file systems, APIs and databases. These integrations allow developers to create versatile applications that combine the power of LLMs with the ability to access, interact with and manipulate external resources.
## Best practices
When building such applications developers should remember to follow good security practices:
* [**Limit Permissions**](https://en.wikipedia.org/wiki/Principle_of_least_privilege): Scope permissions specifically to the application's need. Granting broad or excessive permissions can introduce significant security vulnerabilities. To avoid such vulnerabilities, consider using read-only credentials, disallowing access to sensitive resources, using sandboxing techniques (such as running inside a container), specifying proxy configurations to control external requests, etc. as appropriate for your application.
* **Anticipate Potential Misuse**: Just as humans can err, so can Large Language Models (LLMs). Always assume that any system access or credentials may be used in any way allowed by the permissions they are assigned. For example, if a pair of database credentials allows deleting data, its safest to assume that any LLM able to use those credentials may in fact delete data.
* [**Defense in Depth**](https://en.wikipedia.org/wiki/Defense_in_depth_(computing)): No security technique is perfect. Fine-tuning and good chain design can reduce, but not eliminate, the odds that a Large Language Model (LLM) may make a mistake. Its best to combine multiple layered security approaches rather than relying on any single layer of defense to ensure security. For example: use both read-only permissions and sandboxing to ensure that LLMs are only able to access data that is explicitly meant for them to use.
Risks of not doing so include, but are not limited to:
* Data corruption or loss.
* Unauthorized access to confidential information.
* Compromised performance or availability of critical resources.
Example scenarios with mitigation strategies:
* A user may ask an agent with access to the file system to delete files that should not be deleted or read the content of files that contain sensitive information. To mitigate, limit the agent to only use a specific directory and only allow it to read or write files that are safe to read or write. Consider further sandboxing the agent by running it in a container.
* A user may ask an agent with write access to an external API to write malicious data to the API, or delete data from that API. To mitigate, give the agent read-only API keys, or limit it to only use endpoints that are already resistant to such misuse.
* A user may ask an agent with access to a database to drop a table or mutate the schema. To mitigate, scope the credentials to only the tables that the agent needs to access and consider issuing READ-ONLY credentials.
If you're building applications that access external resources like file systems, APIs
or databases, consider speaking with your company's security team to determine how to best
design and secure your applications.
## Reporting OSS Vulnerabilities
LangChain is partnered with [huntr by Protect AI](https://huntr.com/) to provide
@@ -39,7 +14,7 @@ Before reporting a vulnerability, please review:
1) In-Scope Targets and Out-of-Scope Targets below.
2) The [langchain-ai/langchain](https://python.langchain.com/docs/contributing/repo_structure) monorepo structure.
3) The [Best practicies](#best-practices) above to
3) LangChain [security guidelines](https://python.langchain.com/docs/security) to
understand what we consider to be a security vulnerability vs. developer
responsibility.
@@ -58,13 +33,13 @@ The following packages and repositories are eligible for bug bounties:
All out of scope targets defined by huntr as well as:
- **langchain-experimental**: This repository is for experimental code and is not
eligible for bug bounties (see [package warning](https://pypi.org/project/langchain-experimental/)), bug reports to it will be marked as interesting or waste of
eligible for bug bounties, bug reports to it will be marked as interesting or waste of
time and published with no bounty attached.
- **tools**: Tools in either langchain or langchain-community are not eligible for bug
bounties. This includes the following directories
- libs/langchain/langchain/tools
- libs/community/langchain_community/tools
- Please review the [best practices](#best-practices)
- langchain/tools
- langchain-community/tools
- Please review our [security guidelines](https://python.langchain.com/docs/security)
for more details, but generally tools interact with the real world. Developers are
expected to understand the security implications of their code and are responsible
for the security of their tools.
@@ -72,7 +47,7 @@ All out of scope targets defined by huntr as well as:
case basis, but likely will not be eligible for a bounty as the code is already
documented with guidelines for developers that should be followed for making their
application secure.
- Any LangSmith related repositories or APIs (see [Reporting LangSmith Vulnerabilities](#reporting-langsmith-vulnerabilities)).
- Any LangSmith related repositories or APIs see below.
## Reporting LangSmith Vulnerabilities

View File

@@ -63,5 +63,4 @@ Notebook | Description
[oracleai_demo.ipynb](https://github.com/langchain-ai/langchain/tree/master/cookbook/oracleai_demo.ipynb) | This guide outlines how to utilize Oracle AI Vector Search alongside Langchain for an end-to-end RAG pipeline, providing step-by-step examples. The process includes loading documents from various sources using OracleDocLoader, summarizing them either within or outside the database with OracleSummary, and generating embeddings similarly through OracleEmbeddings. It also covers chunking documents according to specific requirements using Advanced Oracle Capabilities from OracleTextSplitter, and finally, storing and indexing these documents in a Vector Store for querying with OracleVS.
[rag-locally-on-intel-cpu.ipynb](https://github.com/langchain-ai/langchain/tree/master/cookbook/rag-locally-on-intel-cpu.ipynb) | Perform Retrieval-Augmented-Generation (RAG) on locally downloaded open-source models using langchain and open source tools and execute it on Intel Xeon CPU. We showed an example of how to apply RAG on Llama 2 model and enable it to answer the queries related to Intel Q1 2024 earnings release.
[visual_RAG_vdms.ipynb](https://github.com/langchain-ai/langchain/tree/master/cookbook/visual_RAG_vdms.ipynb) | Performs Visual Retrieval-Augmented-Generation (RAG) using videos and scene descriptions generated by open source models.
[contextual_rag.ipynb](https://github.com/langchain-ai/langchain/tree/master/cookbook/contextual_rag.ipynb) | Performs contextual retrieval-augmented generation (RAG) prepending chunk-specific explanatory context to each chunk before embedding.
[rag-agents-locally-on-intel-cpu.ipynb](https://github.com/langchain-ai/langchain/tree/master/cookbook/local_rag_agents_intel_cpu.ipynb) | Build a RAG agent locally with open source models that routes questions through one of two paths to find answers. The agent generates answers based on documents retrieved from either the vector database or retrieved from web search. If the vector database lacks relevant information, the agent opts for web search. Open-source models for LLM and embeddings are used locally on an Intel Xeon CPU to execute this pipeline.
[contextual_rag.ipynb](https://github.com/langchain-ai/langchain/tree/master/cookbook/contextual_rag.ipynb) | Performs contextual retrieval-augmented generation (RAG) prepending chunk-specific explanatory context to each chunk before embedding.

File diff suppressed because one or more lines are too long

View File

@@ -47,7 +47,6 @@ generate-files:
$(PYTHON) scripts/partner_pkg_table.py $(INTERMEDIATE_DIR)
curl https://raw.githubusercontent.com/langchain-ai/langserve/main/README.md | sed 's/<=/\&lt;=/g' > $(INTERMEDIATE_DIR)/langserve.md
cp ../SECURITY.md $(INTERMEDIATE_DIR)/security.md
$(PYTHON) scripts/resolve_local_links.py $(INTERMEDIATE_DIR)/langserve.md https://github.com/langchain-ai/langserve/tree/main/
copy-infra:
@@ -60,7 +59,6 @@ copy-infra:
cp package.json $(OUTPUT_NEW_DIR)
cp sidebars.js $(OUTPUT_NEW_DIR)
cp -r static $(OUTPUT_NEW_DIR)
cp -r ../libs/cli/langchain_cli/integration_template $(OUTPUT_NEW_DIR)/src/theme
cp yarn.lock $(OUTPUT_NEW_DIR)
render:
@@ -82,7 +80,6 @@ build: install-py-deps generate-files copy-infra render md-sync append-related
vercel-build: install-vercel-deps build generate-references
rm -rf docs
mv $(OUTPUT_NEW_DOCS_DIR) docs
cp -r ../libs/cli/langchain_cli/integration_template src/theme
rm -rf build
mkdir static/api_reference
git clone --depth=1 https://github.com/langchain-ai/langchain-api-docs-html.git

View File

@@ -80,8 +80,6 @@
html {
--pst-font-family-base: 'Inter';
--pst-font-family-heading: 'Inter Tight', sans-serif;
--pst-icon-versionmodified-deprecated: var(--pst-icon-exclamation-triangle);
}
/*******************************************************************************
@@ -94,7 +92,7 @@ html {
* https://sass-lang.com/documentation/interpolation
*/
/* Defaults to light mode if data-theme is not set */
html:not([data-theme]), html[data-theme=light] {
html:not([data-theme]) {
--pst-color-primary: #287977;
--pst-color-primary-bg: #80D6D3;
--pst-color-secondary: #6F3AED;
@@ -124,8 +122,58 @@ html:not([data-theme]), html[data-theme=light] {
--pst-color-on-background: #F4F9F8;
--pst-color-surface: #F4F9F8;
--pst-color-on-surface: #222832;
--pst-color-deprecated: #f47d2e;
--pst-color-deprecated-bg: #fff3e8;
}
html:not([data-theme]) {
--pst-color-link: var(--pst-color-primary);
--pst-color-link-hover: var(--pst-color-secondary);
}
html:not([data-theme]) .only-dark,
html:not([data-theme]) .only-dark ~ figcaption {
display: none !important;
}
/* NOTE: @each {...} is like a for-loop
* https://sass-lang.com/documentation/at-rules/control/each
*/
html[data-theme=light] {
--pst-color-primary: #287977;
--pst-color-primary-bg: #80D6D3;
--pst-color-secondary: #6F3AED;
--pst-color-secondary-bg: #DAD6FE;
--pst-color-accent: #c132af;
--pst-color-accent-bg: #f8dff5;
--pst-color-info: #276be9;
--pst-color-info-bg: #dce7fc;
--pst-color-warning: #f66a0a;
--pst-color-warning-bg: #f8e3d0;
--pst-color-success: #00843f;
--pst-color-success-bg: #d6ece1;
--pst-color-attention: var(--pst-color-warning);
--pst-color-attention-bg: var(--pst-color-warning-bg);
--pst-color-danger: #d72d47;
--pst-color-danger-bg: #f9e1e4;
--pst-color-text-base: #222832;
--pst-color-text-muted: #48566b;
--pst-color-heading-color: #ffffff;
--pst-color-shadow: rgba(0, 0, 0, 0.1);
--pst-color-border: #d1d5da;
--pst-color-border-muted: rgba(23, 23, 26, 0.2);
--pst-color-inline-code: #912583;
--pst-color-inline-code-links: #246161;
--pst-color-target: #f3cf95;
--pst-color-background: #ffffff;
--pst-color-on-background: #F4F9F8;
--pst-color-surface: #F4F9F8;
--pst-color-on-surface: #222832;
color-scheme: light;
}
html[data-theme=light] {
--pst-color-link: var(--pst-color-primary);
--pst-color-link-hover: var(--pst-color-secondary);
}
html[data-theme=light] .only-dark,
html[data-theme=light] .only-dark ~ figcaption {
display: none !important;
}
html[data-theme=dark] {
@@ -158,8 +206,6 @@ html[data-theme=dark] {
--pst-color-on-background: #222832;
--pst-color-surface: #29313d;
--pst-color-on-surface: #f3f4f5;
--pst-color-deprecated: #b46f3e;
--pst-color-deprecated-bg: #341906;
/* Adjust images in dark mode (unless they have class .only-dark or
* .dark-light, in which case assume they're already optimized for dark
* mode).
@@ -170,30 +216,6 @@ html[data-theme=dark] {
*/
color-scheme: dark;
}
html:not([data-theme]) {
--pst-color-link: var(--pst-color-primary);
--pst-color-link-hover: var(--pst-color-secondary);
}
html:not([data-theme]) .only-dark,
html:not([data-theme]) .only-dark ~ figcaption {
display: none !important;
}
/* NOTE: @each {...} is like a for-loop
* https://sass-lang.com/documentation/at-rules/control/each
*/
html[data-theme=light] {
color-scheme: light;
}
html[data-theme=light] {
--pst-color-link: var(--pst-color-primary);
--pst-color-link-hover: var(--pst-color-secondary);
}
html[data-theme=light] .only-dark,
html[data-theme=light] .only-dark ~ figcaption {
display: none !important;
}
html[data-theme=dark] {
--pst-color-link: var(--pst-color-primary);
--pst-color-link-hover: var(--pst-color-secondary);
@@ -367,13 +389,6 @@ html[data-theme=dark] .MathJax_SVG * {
div.deprecated {
margin-top: 0.5em;
margin-bottom: 2em;
background-color: var(--pst-color-deprecated-bg);
border-color: var(--pst-color-deprecated);
}
span.versionmodified.deprecated:before {
color: var(--pst-color-deprecated);
}
.admonition-beta.admonition, div.admonition-beta.admonition {
@@ -393,4 +408,4 @@ dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.
p {
font-size: 0.9rem;
margin-bottom: 0.5rem;
}
}

View File

@@ -87,18 +87,6 @@ class Beta(BaseAdmonition):
def setup(app):
app.add_directive("example_links", ExampleLinksDirective)
app.add_directive("beta", Beta)
app.connect("autodoc-skip-member", skip_private_members)
def skip_private_members(app, what, name, obj, skip, options):
if skip:
return True
if hasattr(obj, "__doc__") and obj.__doc__ and ":private:" in obj.__doc__:
return True
if name == "__init__" and obj.__objclass__ is object:
# dont document default init
return True
return None
# -- Project information -----------------------------------------------------

View File

@@ -72,21 +72,14 @@ def _load_module_members(module_path: str, namespace: str) -> ModuleMembers:
Returns:
list: A list of loaded module objects.
"""
classes_: List[ClassInfo] = []
functions: List[FunctionInfo] = []
module = importlib.import_module(module_path)
if ":private:" in (module.__doc__ or ""):
return ModuleMembers(classes_=[], functions=[])
for name, type_ in inspect.getmembers(module):
if not hasattr(type_, "__module__"):
continue
if type_.__module__ != module_path:
continue
if ":private:" in (type_.__doc__ or ""):
continue
if inspect.isclass(type_):
# The type of the class is used to select a template
@@ -486,11 +479,11 @@ def _package_namespace(package_name: str) -> str:
Returns:
modified package_name: Can be either "langchain" or "langchain_{package_name}"
"""
if package_name == "langchain":
return "langchain"
if package_name == "standard-tests":
return "langchain_tests"
return f"langchain_{package_name.replace('-', '_')}"
return (
package_name
if package_name == "langchain"
else f"langchain_{package_name.replace('-', '_')}"
)
def _package_dir(package_name: str = "langchain") -> Path:

View File

@@ -1 +0,0 @@
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

View File

@@ -0,0 +1 @@
eNq1VWtsFFUUblMhkEJMCgaJRm4XDQnpbPfR3e1WUWopL4E2to2pBJq7M3d2L525M87cKV2gEFqjAXyNGo2ikUdtmwKlFNAIocQGrQkPf0ACFa1KxWCIRMFIVAiemX0IFPyl82P3zr3nfuc753znTGtnEzFMqrHcnZRxYmCRw4tpt3Ya5DmLmPz5DpXwhCa1V1fV1G63DDo0M8G5bpYVF2OdelVqcgMrXkyLm/zFYgLzYlFTdYW4MO0xTUp+lff9ao9KTBPHiekpQ0tXewxNIbDymEmTE9VThDyiBt4ZdzbrNQthgyDMEGnWicHhj6eJIazENYPyhOpFVUxJZo6QQRTShBlHlMmaoWLXWDY0FfEEQRzMvGiBjJKALWmIaRw1Mm2le9iEFYsgTXYcYs4NGrM4eDcbiYS4lvFQBC64ZTDELEVB4MO9m7WfYaZwvJ6WIvRPgJZJjNvCK1fAT40KMSBqojCSCeGIYwDFTEIJbKKYorkragDaMritahJRnLvpbAsKNuIEfjkUyIGHJEKiMPBzvPq8PmdP0xt0ePPD2sQyadAhG7pDQcaKSVwLTUkXhCd1l69sMTfPDmh2XQYBMay6BtWgltSxREzRoHrawrPgprzjmGZxhJHuGnsdax0bgAACM1044OJUlhLzZvTVHsySVfKtlCBiyuKptGb2nBqkUiMRGVuKE5WzN5pWLRTJQXfq6xQsRclB8zgJbhA1RTP+P9cu/K2+QSmOZ0RlV4JpLoTGE7yBsoabkvSfM5rvekEqwSYoRYJeQWl3LQ6JDKAWW0FEDnsuqKOSBjGhUdE9BFJOPYEIwWpGTC2dCYIlAHqxPaGZ3O65dTTsxqJIdC4QJmoS8Ld3xVdRvQgBX0fD3dAdjLhas7sbCdEFrNAm0u00jwBDg3F7r56EIcQEZ/Q0F/u8gYg3sDPdVILD2+7Fuq5Q0RVg8QrIc0fK6eiDnsw9hbA4T9jbo9Fgl0FMHQYWaeswOfSR2doOVMmxLzrTg2tb1VOZGIdz7mufA7TtQ3MNWoQCEVRDdBTwBUqQP1zmC5UFS9G8xbU7K9Juau9Ib0+tgZkpQ4SVmax0igmLwdTprrhjPj6BBicKhckRS5p0FREMomLK3Jv+aDgSLfHvv93EXdudAZ/77B+NYBJubwuUHLj9BGa/kRREp5gfBgO+UHTI0yzclYCgUgZDMMujf7Stu87apQkduqsd5C5h7/D7ss9Q4b/6d+27o9FoKFwaCYeCgExYk5YULD0lVQHE1AQaFjhVid0OBAIHHYWYpuDoAQY2ZFnRVgrweYlTZm+d+XGz0KgBdhbB0SoTk+7l4L70KUyy5mT2aKtvT3o//fkUqGQPIRyN+kojwUBAxjE55gsQMST7cTgcCIUlMRYI766YK1RgMUGEGld9duec+iXlixdUdNQAa2LY3aKiWRJ0i0E6wPbp8np7X6kYFWNiJBQSff4SyScKT1bV9GZElxVVu9Nq7nd4fUdqenyWu3DapnE57pO3yD7KBmZPqFw35htr4/xxhcd6rrcurHtm4sZjRwpPnsg7fv+GgvPf7qj+80z94/0f7Z41wKsvXDm3ZVP/d6ySvD2p7jxb2bVx+enNdcsuvVb44HB9/uTfZved+vT9ok3jH5rKpYJLWy6re4TIxTXLiL5VzB8Tf31O371vnbOnFY2f8U6owvfupFNnx4082j97V6B0yYZXJoQ8Y49Wb3lzUcHlyOJfBtYO5059+J6zK/p+Hx6RR+p6qk7nH/7y2pWSi3/tPX01tK4iNPDG5p+Cg1yc/Gp8cHnB5M9/fOGBrsq2eU+t/fXcSxMm9lW2rV+kWL2Fa6+0Tew/OD08WP7syNLBAX/LlB+OHui6OHZSB32CXHg5QhPTTz5Wf/2q/+fge+uufRDTZ9BH1vRWVVf2b56VP3S4tu545I/kEa3/6yUnp0DSbtzIyzmxXWk+k5uT8zfUHYmM

View File

@@ -1 +0,0 @@
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

View File

@@ -1 +0,0 @@
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

View File

@@ -1 +1 @@
eNq1Vn1wE8cVdwIklI+mtIQMkwCLkpIO8cl3kixLBg/4AxNjbBnLARtqK6u7Pd/Zd7fHfciWGU9TQidpIIRjgE4+BgKWpcQYAwETzGfSDGlJgbaQgTEpkEIJhUxohyZlOiWleycZ7MI/nWnvD+nu7dv3+719v327y1MxpOkiVh7oFhUDaZA1yIduLU9paKmJdGNFUkaGgLlEVShc02FqYv90wTBUPT8nB6qiG6tIgaKbxXJOjMlhBWjkkHdVQk6YRBRz8bPDP17mkpGuw0aku/LBkmUuFhMsxSAfrjpsAqghABWAWlWkGeTPyNAAUGrEmmgIshuEFCk+MAQ0JKEYVAwgKjzWZOg48xqWgSEgYBA3NyjjQZzE5jBQsAGaFdziDMagZCKAeRsQGoYmRk2DoOvNiAMGHkDIJhCGqSlAMSUJEAxn7h3/p/V0HLcrG7g0LCE7Ez2uG0h2tWeDIQlWxIECZQREHcxDPJ8N5DgQoKjZhqgE2WbChAMigDLwAx4hAxhQktygUFEgcdQdZN2OwGKJEHHmErM8FN3UkeZqrycWGXNIsk2NqkH5MCWLimh7KsTGkH8VagQASREDYynCkne7KjyUdERGdUNDUB5kIDmRskCyGjYO7c6zbc5MAYusbVvmMuKqQ4I3FadwNtydd9vBXgHboQQa0NXengmRUcN/N5sMckhnNVHNjLvmpGtGCsgRBwCj2DSAijBRobNEdsJExETnTjRVw7bORJT5dBydV5Hkmjb+B0LZIJmlw0MCoOlYSQMMjZihu8wFlXiIH5ojWV5RaUyLZMBmayxdOg7x0JRs2di2ezOtIVJwxET0a8sizcGO5rJlEXEU8v+DTgtwCDbZCWkx884Wy3BBYqNgREQlMmjZ/+eMnnVQyD6AOtEm2UIKyMClBZYJiKNNiDVcg01Q02A87WV3OZHMtokNSKH+PrPb2+vbUwKCHIl/Put7CQHrhtUztANuhyyLyJ5DCos5kpi1rbFNVLMBSUSCBuoiTUFBjqqtrmaEVApKYgwl07OsHVBVJZF1RJbTRJa2O9NEKJvLvcNd9o6nSE9VDGt3iJAoLMupipNWrQDGnetxe3a0UroBRUUirZeSIOGTVJ3x/YMHVNKBSBAqcwxYyfTknsE+WLc6KyAbCg8JCTVWsDqhJvt9uwbbNVMxRBlZqeKqe+Eyg3fhvG6GceftHBJYjyus1ek0oPeHTEaGFqdYTGJYm+kki3GziKz+G5EIy0eickEgVDIPVi6ig+WV82srRbff9MGmKqSGntWbi/wRWq+GUONQYK4HU0ye1+OlfXTQTzFu2s24GWp+VVkZXSTG6iI8U1fqlcvohZB7LhLX6aWt8+fSOM4WS8VxiRd8TLQ1HFrU6NdlvpbjjMgcuiLCNbvViogQDsfryuZFcRMt+cVAXd2CGYCwM2MiV1BaHXILHkOpqGmqXFhaqrRG/J6Ap6rZzGtqY3ywKDLPFxdyY15v0DeIXq6XpugMQz/tC9D20zOgDQkpjYZgJRiPx/OOhnSVnLroxSRZM8PUlyeIENGxX6cyp++WUPldDU9IkHaKrIOlmpgNPB5QiWPAQ3t8gAnme335uXlgbkVNd3EGp+a+GtxZo0FF54kO5wxoPsUKpkIO067i+6r9oK12UkqbPzm6KHLmYx1RGVZWdy1Vnb53UGUlu9Jbi8JaI1TENgfWOujIvqWttYVjTY4TYi0yHWzzecUoMll+d2YK6cg2DCFEybrVEfR4ejIjA8LrIrnSFEPWltnXSpHzDUmiLJIFdX4zlx/dSuSS1d57r4OBmxG5JqV8TjnoQ4M9NCQTxdrYd8P4gsHggfs7DYTyEpcgM5QNqSgazIbxyPreex0yIToYWe9uHXCnRM7qf4p8RDwIeSHnzwvm0dG8XDrAQz/v4WCUyQ36aOgL9NmNmCVh7GqqWDMoHbHkqmfErf5sGbbaXabAy+R6/STVGaTRspLJobAZLcF2EvoMoJIbGYbc9uJSqhiyAqLCjgCtVEldZWFFWfGeWmqwkqiQmr5mphSsKyLPJ8NII5WxulgJmxxplxpKkljVhXXW7gDyR3NZJhoMRHMJdZ4qIo1oINod3SXsXpuCEuEeY61dgrfAle/zeV0zgAwLAn5SJ+cy+tNk+tA58uCkKStHZjnPsHXhevwmPb79yqLamxOnF621bpw2z6amfdXx3JkNo4JfPNiwSu6v3D394uHQ7FFP/Sbx6sPcuUv69b4p55etyPrt1KkfTL9Wu22OarZ8dPXcV6+9P2XyoatNN193X8q5/M2Zm0f4ltuTbm3YfHqW1ffY6RHh3gl/3ru24NiY6pe2XcveOPdv6riGQ9deWHz5R4sXv1u/o6rw+A8f2UIvHg6fOLbw4VhnoHj0d+Jfj5zKXfh2ySbPryJr1vzuJz//VKCocWv/+P2pz68Tnpy97fLpBVc/mFKYTBT3L/7FkqnTXgjP41aNYqZdP/ztn2b6V46yDv5g6V7vDbPvUPzlnr79VzZtWPlZfObRM+WzvjxRtXO9JJwcPuXi0TJP0eyT+y4d2rx6419HPtD0ifzqyd6NcNPy0s4RyTUzr59a/UbR2l/OzX5l/K3x0z+p+HhdVXLl9hHozcmzGxa6L3m2/n7zzkkz99ceDwu33v10/bqvD3eercwLjX2iDx/Qr6SOloyZsKT8CKx5qdV7rOGd6sd79zzdsWJ5ubL1GOitL/8wv/Off5A3uodJr51+aPeC3tjr4cfXbftcevSbNrrn7y+fyHnk7fDqV5jJc7y3VzVs6Og48NlWuH4ievSLJ80fi/uO972RdT5xbda5t05df+bKe7ce+8e458f0fjTz1EP6idXPTN4+UYr860LP2PrrY15s3/PdL7s/f6+kY+xfzk8anz/6ktrnXsiM/rD5wAWig9u3h2VNbNhy8WfDs7L+DTCWA7A=
eNq1Vl1sFFUULtSH6gs/DRITEy4rUSGd7f62uzU+lEKxNqVAK9LwU+7O3t2ddubeYeZu26XUyI9B4AEnMZFfCbB0sdSWlhJSCQImajUGeDBiIRKCxgcETcqP1NbgubO7hfLjk85De+fcc8/3nXO+e2Y3pJqIYSqMTuhUKCcGljm8mNaGlEHWxInJN7VrhMdYOLmouqb2YNxQBufEONfNksJCrCtOTTG5gVUnVgqb3IVyDPNCmWm6SuwwyRALJy4983GrQyOmiaPEdJSg5a0Og6kEVg4zYXKiOQqQQ2aATrkw1rE4wgZBmCLSohODwz+eIYawGmWGwmOaE1VTNZHdQgZRSROmHCk0wgwN284Rg2mIxwji4OZEFRGUgNhhhijjqJGyZnuzCatxglhEAGLODSUU54BuNpIw4iyLUAAQPG5QROOqigDDPjvm/4qZjuN0tBWgBwnGTWI8kl5VAlGsEaSY6E0SiRQgLYFiWDGEIaRiuRF4hJGCsIaKUIQQjjhWVScqpRSDo2njmiKCzFSgYZ8FsyawVwKWxsJEFUiZ3kgqNqIE/nJopyADJYeyYshGcHQ5XcLG9Hod3tywNnGE1OtQO10QjmDVJLYHUzPt4wndzi4Sp3ZXRNCxdQmkLxIUDvMwx2IzTEzZUPTMvmN+uqRQ3zA4IBxicY50wkA2TuGuYwMCgBpNOxpQETJQSObVdrSXCqSSNj6CUPGQCtLhMQAYJqNpgPERM3RbHZgmqiPjc4QSKjSa7mrWJiSQrnWYRHBcFWUStsczrYVe2d0GeYm+pTmIaA7Rt3q7hf8fdFoh47BBqGm1RewbkOFClGiM1yu0/qGy/+eM3rBRQKjYBOmBxinKwLUJEtmALNRAZO542IQNAyfSXmIsKXBaEMtKYeUTTrfZlIRo6+UYU+R0HJoQ7Yc0CNay2m5LxQgOA43NyRgzudU1fq51Y1kmOpcIlVkYsrc+ja5V9AIE2Yor1QFXmxJb+lZHIyG6hFWliXSImy/BxKPcOqYnYIJSSczNlkKX01Ps9HRmJoIkeFtHsa6rimzrtbAButSeBn18oyt7TiU0ymNW0u0OeA4bxNRh3JKN7SaHe21uSAJX8t1AKjN2D1RXZpO8kjMtCdeSWKfKDaUAeYpRDdGRx+XxIXdRictf4nOhBVW1nWUZnNon8uupNTA1I5Di/GxZUnIsTmFmdpQ9sSDHYeAQVdEUHkqYyloiAWfCrQMez+ct0qN79lrSFAqT1Up5XPYzOPNxR4NoWKEAL2nAN2Z1BINBf5Hf7w/4PnvUFz5nRkKSRYsPeT2u4qLjT4Qdw+t/KpiVcge9/kCR/9RTqdtsjrhdY8+g41/ZZ1J9EJfQJpaQ4npaqxKoqQlELHFFI1bS4/Z5TwqJmKYkBAGfG6iyypol+DhGFWrtn3OiRWpkEHksghArlRP2YV9fZhcGYUtibGu/vydjz3z8JSVsDaJiL8EB4sYYewP+YHHITXyBkNuNQ9gbKoq4cXdZuVSG5RiRamz1Wal5dQtLqyrK2muANTGsDlll8TBcF4O0g++S0jqrLyAH5ZAc8HpCHq8v7JKludU1R7OiGxNVUtw1+1fE+vb08PlyQmjGtrwc+8nds9hNf3ZNHt3q9uf/2CsN3piYDKz46FrHwOSlv3wbmms9V5E7PW90ZP0WecUlvnHn3rO/35h4cGZP9/dnqrr7uq7v7dq+oIvXd/8m/5Rf3Dnz6sj0pc9ObUjy7lHf8oVfvZZ3+MyHy8roro7Bmyd23yxdPbRLmvVyfg1qjc7eM3xuybUdW6O3y9dsWrdq9Z5fT3/QCChJb5kz74pn1qvl+fn9k7Y3b1k5OGHiN62XZ/fe3bX43IVJp++dv1xza9XtP/vvbd5Wc9HPFjl137Q71tTSd78Y9vRUTplauW3n32r/eyteL7z5deys9M4tV9/kI8+/tPPCbNZ2r3Zt5fU7c3qC2z/xdu0OrHl/X+7ukbJ4oG8gdEcaOhv8a3Hy5LLd1S8E9/WeWb1nizx9R6j/j/vGUMXVobeuvzjqSzmH326a0tvww6GBeXfLteaRJbcvNrN1x84Pz4Bi3r+fm3O+oS5PmpiT8w/FrtoN

View File

@@ -1 +0,0 @@
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

View File

@@ -1 +0,0 @@
eNrtVstu20YUbRfdeNVN9wzRVaGRSImSSBleOJJfiW35GcsJAmE0HIpjkRyGM5QlB1407Q/wE5o4UmG4ToIEbfpI10XRH3AX/Yh+QS8lGZbhAN230cLSzNx77mPOmesnwy6NBOPBx2cskDTCRMJCJE+GEX0UUyG/HvhUutw+2ahv7zyLI3bxhStlKCq5HA5Zloc0wCxLuJ/r6jniYpmD36FHRzAnLW73L35/rPpUCNymQq0oDx6rhEOoQMJC3YlwIDwsqSJdqjjc8/ghC9qKE3FfWQjaHhOuAplxZUVij+FAzShqxD2aOou+kNRXjzPKNUyX3Zq2igWN1OOHsONzm3rpVjuUyODIZwFLLQPY0+FbyIhiHxYyiimsATyElsg4SoG0bPl46FJsQ8P++ujTE5cLmZxfb8ILTAgFcBoQbkMdyXftIxZmFJs6aZGnkGVARy1OTjuUhghq6tLB2Ct5icPQYwSn57kDwYOzSVVI9kN68/g0LQ1BXwOZvKlDEvMruY0+3Fag6NliPpt/2UNCYhZ40H7kYchnEI7Of54+CDHpAAiaMCEZjJ3Pp224SJ6vYVLfvgaJI+Imz3Hkl4zX0/tRHEjm02RY3bgZbnJ4Fa6Q1fVs+dU1YNEPSPLcwZ6gP1xzpjLqI8IBI/lGGxDOO4wmF383m8Rptvw5vbYQRs2A14OdbrvLGqLYs7T4Nlve0Ei7t+VtNsqP4uzmerB7iPRyIV/QjHzeRHpWy+pZHeVX94NmbHVX6z7u83vbe1WPhQe0VbuzqNVwffnOwm5hv3+7v9TAG7p7FFjiTq+zudW9n19aWt49snBjpd25x2Nu375r380Syzls1jdnFcgu7jJ7rmDr7p6ubYl1e7dobO6vLury4GBrXrsfF7Nr8Y7W2MLzLbm5Z4ip9AxdR9okw5JmmFr6Ob/khkeDtnSTZ3kt/21ERQi6o18NoGUyFk9OgIf0j9+GEwE+rd+9ovBnJzXgZPJuMWIZJZ9X1nlXARBD0a1KoVzRTGVpbeesOgmzk1LwQpG0J3O0m+6M5TKrgOojQeVcLB1kvhop2gFeLlxqYEjcOOhQ+7T6Xva/S9kPV5vWA5pFtBdyQdEkzeSsgbbGTxFaqb0eSw3xqI0DdjSSQvJuJIPDo96hTWLbdruHvmYdGQXWojFx3kxcwoinYSAh5IvkmW6Z55OTSyKeQvEa0jWk6T/1EOieesxn0ODR38l7KJKTInT/7U0DyTsUXs6hMboe7ddpi4j6wOA09hWMYVnWL+83uoQqgIlVsn66bgW9noLR8754e9NgAvFUE2e9S2vE7OTic1g0TVpsmXnTKplFxyyVWybFpZJRNHBB16hWLP8Id8sIoKSXGfIILpsSePxlP7nI+LiXPjpzBb1YKEGls/BAEy+26XbcqvG0BjGrhBH1OLZfVBdRFROXou0RIZNhbX99fm2l+n0DTTML1cPx4BkGXATMcQbbNIKLSU6Jx2MbXs+IDgBra34/eWPSUqvoFAs2aWHTsR10u749xB4k2SXJa7cwp1YMo6DOKj6eM0twH6M59OUgLSpo//nJuo0lrsDQYLZaUdOhRWBkofm9nQ7znfuL8SNSXu6vtXljla4c+EVj1WqpGZW3DoC9E4/s1ZjLjvgNBgT0IClgXkk3czl0pmcOSlWGtDLSTfAaT7GmA6nRKIQM0xBO2NTKWrHlmGWipdAuZySdnzA+WWDTnlrRMiogS6xWHk9mnYqB3yB8QMhcDUQVFhF1YoEhjSD2vOOM6vE26KElxhsZFYLDoG1C/jBWJlYPj2dm/nONuupKVf3Qh9SRYf6hEyPHW//nPvx76fDvMQ/VqeIf1OrrCw9nZv4BLV1b7w==

View File

@@ -1 +1 @@
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

View File

@@ -1 +1 @@
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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
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

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

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