mirror of
https://github.com/hwchase17/langchain.git
synced 2025-08-07 03:56:39 +00:00
**TL;DR much of the provided `Makefile` targets were broken, and any
time I wanted to preview changes locally I either had to refer to a
command Chester gave me or try waiting on a Vercel preview deployment.
With this PR, everything should behave like normal.**
Significant updates to the `Makefile` and documentation files, focusing
on improving usability, adding clear messaging, and fixing/enhancing
documentation workflows.
### Updates to `Makefile`:
#### Enhanced build and cleaning processes:
- Added informative messages (e.g., "📚 Building LangChain
documentation...") to makefile targets like `docs_build`, `docs_clean`,
and `api_docs_build` for better user feedback during execution.
- Introduced a `clean-cache` target to the `docs` `Makefile` to clear
cached dependencies and ensure clean builds.
#### Improved dependency handling:
- Modified `install-py-deps` to create a `.venv/deps_installed` marker,
preventing redundant/duplicate dependency installations and improving
efficiency.
#### Streamlined file generation and infrastructure setup:
- Added caching for the LangServe README download and parallelized
feature table generation
- Added user-friendly completion messages for targets like `copy-infra`
and `render`.
#### Documentation server updates:
- Enhanced the `start` target with messages indicating server start and
URL for local documentation viewing.
---
### Documentation Improvements:
#### Content clarity and consistency:
- Standardized section titles for consistency across documentation
files.
[[1]](diffhunk://#diff-9b1a85ea8a9dcf79f58246c88692cd7a36316665d7e05a69141cfdc50794c82aL1-R1)
[[2]](diffhunk://#diff-944008ad3a79d8a312183618401fcfa71da0e69c75803eff09b779fc8e03183dL1-R1)
- Refined phrasing and formatting in sections like "Dependency
management" and "Formatting and linting" for better readability.
[[1]](diffhunk://#diff-2069d4f956ab606ae6d51b191439283798adaf3a6648542c409d258131617059L6-R6)
[[2]](diffhunk://#diff-2069d4f956ab606ae6d51b191439283798adaf3a6648542c409d258131617059L84-R82)
#### Enhanced workflows:
- Updated instructions for building and viewing documentation locally,
including tips for specifying server ports and handling API reference
previews.
[[1]](diffhunk://#diff-048deddcfd44b242e5b23aed9f2e9ec73afc672244ce14df2a0a316d95840c87L60-R94)
[[2]](diffhunk://#diff-048deddcfd44b242e5b23aed9f2e9ec73afc672244ce14df2a0a316d95840c87L82-R126)
- Expanded guidance on cleaning documentation artifacts and using
linting tools effectively.
[[1]](diffhunk://#diff-048deddcfd44b242e5b23aed9f2e9ec73afc672244ce14df2a0a316d95840c87L82-R126)
[[2]](diffhunk://#diff-048deddcfd44b242e5b23aed9f2e9ec73afc672244ce14df2a0a316d95840c87L107-R142)
#### API reference documentation:
- Improved instructions for generating and formatting in-code
documentation, highlighting best practices for docstring writing.
[[1]](diffhunk://#diff-048deddcfd44b242e5b23aed9f2e9ec73afc672244ce14df2a0a316d95840c87L107-R142)
[[2]](diffhunk://#diff-048deddcfd44b242e5b23aed9f2e9ec73afc672244ce14df2a0a316d95840c87L144-R186)
---
### Minor Changes:
- Added support for a new package name (`langchain_v1`) in the API
documentation generation script.
- Fixed minor capitalization and formatting issues in documentation
files.
[[1]](diffhunk://#diff-2069d4f956ab606ae6d51b191439283798adaf3a6648542c409d258131617059L40-R40)
[[2]](diffhunk://#diff-2069d4f956ab606ae6d51b191439283798adaf3a6648542c409d258131617059L166-R160)
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
105 lines
4.6 KiB
Python
105 lines
4.6 KiB
Python
import sys
|
|
from pathlib import Path
|
|
|
|
KV_STORE_TEMPLATE = """\
|
|
---
|
|
sidebar_class_name: hidden
|
|
keywords: [compatibility]
|
|
custom_edit_url:
|
|
hide_table_of_contents: true
|
|
---
|
|
|
|
# Key-value stores
|
|
|
|
[Key-value stores](/docs/concepts/key_value_stores) are used by other LangChain components to store and retrieve data.
|
|
|
|
:::info
|
|
|
|
If you'd like to contribute an integration, see [Contributing integrations](/docs/contributing/how_to/integrations/).
|
|
|
|
:::
|
|
|
|
|
|
## Features
|
|
|
|
The following table shows information on all available key-value stores.
|
|
|
|
{table}
|
|
|
|
"""
|
|
|
|
KV_STORE_FEAT_TABLE = {
|
|
"AstraDBByteStore": {
|
|
"class": "[AstraDBByteStore](https://python.langchain.com/api_reference/astradb/storage/langchain_astradb.storage.AstraDBByteStore.html)",
|
|
"local": False,
|
|
"package": "[langchain_astradb](https://python.langchain.com/api_reference/astradb/)",
|
|
"downloads": "",
|
|
},
|
|
"CassandraByteStore": {
|
|
"class": "[CassandraByteStore](https://python.langchain.com/api_reference/community/storage/langchain_community.storage.cassandra.CassandraByteStore.html)",
|
|
"local": False,
|
|
"package": "[langchain_community](https://python.langchain.com/api_reference/community/)",
|
|
"downloads": "",
|
|
},
|
|
"ElasticsearchEmbeddingsCache": {
|
|
"class": "[ElasticsearchEmbeddingsCache](https://python.langchain.com/api_reference/elasticsearch/cache/langchain_elasticsearch.cache.ElasticsearchEmbeddingsCache.html)",
|
|
"local": True,
|
|
"package": "[langchain_elasticsearch](https://python.langchain.com/api_reference/elasticsearch/)",
|
|
"downloads": "",
|
|
},
|
|
"LocalFileStore": {
|
|
"class": "[LocalFileStore](https://python.langchain.com/api_reference/storage/langchain.storage.file_system.LocalFileStore.html)",
|
|
"local": True,
|
|
"package": "[langchain](https://python.langchain.com/api_reference/langchain/)",
|
|
"downloads": "",
|
|
},
|
|
"InMemoryByteStore": {
|
|
"class": "[InMemoryByteStore](https://python.langchain.com/api_reference/core/stores/langchain_core.stores.InMemoryByteStore.html)",
|
|
"local": True,
|
|
"package": "[langchain_core](https://python.langchain.com/api_reference/core/)",
|
|
"downloads": "",
|
|
},
|
|
"RedisStore": {
|
|
"class": "[RedisStore](https://python.langchain.com/api_reference/community/storage/langchain_community.storage.redis.RedisStore.html)",
|
|
"local": True,
|
|
"package": "[langchain_community](https://python.langchain.com/api_reference/community/)",
|
|
"downloads": "",
|
|
},
|
|
"UpstashRedisByteStore": {
|
|
"class": "[UpstashRedisByteStore](https://python.langchain.com/api_reference/community/storage/langchain_community.storage.upstash_redis.UpstashRedisByteStore.html)",
|
|
"local": False,
|
|
"package": "[langchain_community](https://python.langchain.com/api_reference/community/)",
|
|
"downloads": "",
|
|
},
|
|
}
|
|
|
|
DEPRECATED = []
|
|
|
|
|
|
def get_kv_store_table() -> str:
|
|
"""Get the table of KV stores."""
|
|
|
|
header = ["name", "local", "package", "downloads"]
|
|
title = ["Class", "Local", "Package", "Downloads"]
|
|
rows = [title, [":-"] + [":-:"] * (len(title) - 1)]
|
|
for loader, feats in sorted(KV_STORE_FEAT_TABLE.items()):
|
|
if not feats or loader in DEPRECATED:
|
|
continue
|
|
rows += [
|
|
[feats["class"]]
|
|
+ ["✅" if feats.get(h) else "❌" for h in header[1:2]]
|
|
+ [feats["package"], feats["downloads"]]
|
|
]
|
|
return "\n".join(["|".join(row) for row in rows])
|
|
|
|
|
|
if __name__ == "__main__":
|
|
output_dir = Path(sys.argv[1])
|
|
output_integrations_dir = output_dir / "integrations"
|
|
output_integrations_dir_kv_stores = output_integrations_dir / "stores"
|
|
output_integrations_dir_kv_stores.mkdir(parents=True, exist_ok=True)
|
|
|
|
kv_stores_page = KV_STORE_TEMPLATE.format(table=get_kv_store_table())
|
|
with open(output_integrations_dir / "stores" / "index.mdx", "w") as f:
|
|
f.write(kv_stores_page)
|