From 3726a944c0ed4c39986082d10c1e897b23991c5d Mon Sep 17 00:00:00 2001 From: Erick Friis Date: Mon, 23 Dec 2024 13:13:35 -0800 Subject: [PATCH 1/2] docs: sorted by downloads [wip] (#28869) --- docs/scripts/packages_yml_get_downloads.py | 71 +++ docs/scripts/partner_pkg_table.py | 160 ++++--- libs/packages.yml | 476 +++++++++++++-------- 3 files changed, 456 insertions(+), 251 deletions(-) create mode 100644 docs/scripts/packages_yml_get_downloads.py diff --git a/docs/scripts/packages_yml_get_downloads.py b/docs/scripts/packages_yml_get_downloads.py new file mode 100644 index 0000000000000..07525194b39c5 --- /dev/null +++ b/docs/scripts/packages_yml_get_downloads.py @@ -0,0 +1,71 @@ +from datetime import datetime, timedelta, timezone +from pathlib import Path + +import requests +from ruamel.yaml import YAML +from ruamel.yaml.comments import CommentedMap + +yaml = YAML() + +PACKAGE_YML = Path(__file__).parents[2] / "libs" / "packages.yml" + + +def _get_downloads(p: dict) -> int: + url = f"https://pypistats.org/api/packages/{p['name']}/recent?period=month" + r = requests.get(url) + r.raise_for_status() + return r.json()["data"]["last_month"] + + +current_datetime = datetime.now(timezone.utc) +yesterday = current_datetime - timedelta(days=1) + +with open(PACKAGE_YML) as f: + data = yaml.load(f) + + +def _reorder_keys(p): + keys = p.keys() + key_order = [ + "name", + "name_title", + "path", + "repo", + "type", + "provider_page", + "js", + "downloads", + "downloads_updated_at", + ] + if set(keys) - set(key_order): + raise ValueError(f"Unexpected keys: {set(keys) - set(key_order)}") + return CommentedMap((k, p[k]) for k in key_order if k in p) + + +data["packages"] = [_reorder_keys(p) for p in data["packages"]] + +seen = set() +for p in data["packages"]: + if p["name"] in seen: + raise ValueError(f"Duplicate package: {p['name']}") + seen.add(p["name"]) + downloads_updated_at_str = p.get("downloads_updated_at") + downloads_updated_at = ( + datetime.fromisoformat(downloads_updated_at_str) + if downloads_updated_at_str + else None + ) + + if downloads_updated_at is not None and downloads_updated_at > yesterday: + print(f"done: {p['name']}: {p['downloads']}") + continue + + p["downloads"] = _get_downloads(p) + p["downloads_updated_at"] = current_datetime.isoformat() + with open(PACKAGE_YML, "w") as f: + yaml.dump(data, f) + print(f"{p['name']}: {p['downloads']}") + + +with open(PACKAGE_YML, "w") as f: + yaml.dump(data, f) diff --git a/docs/scripts/partner_pkg_table.py b/docs/scripts/partner_pkg_table.py index 6dfdcecbbf2bb..04a605235ff78 100644 --- a/docs/scripts/partner_pkg_table.py +++ b/docs/scripts/partner_pkg_table.py @@ -2,110 +2,106 @@ import sys from pathlib import Path +import requests import yaml +################# +# CONFIGURATION # +################# + +# packages to ignore / exclude from the table +IGNORE_PACKGAGES = { + # top-level packages + "langchain-core", + "langchain-text-splitters", + "langchain", + "langchain-community", + "langchain-experimental", + "langchain-cli", + "langchain-tests", + # integration packages that don't have a provider index + # do NOT add to these. These were merged before having a + # provider index was required + # can remove these once they have a provider index + "langchain-yt-dlp", +} + +##################### +# END CONFIGURATION # +##################### + DOCS_DIR = Path(__file__).parents[1] PACKAGE_YML = Path(__file__).parents[2] / "libs" / "packages.yml" -IGNORE_PACKGAGES = {"langchain-experimental"} # for now, only include packages that are in the langchain-ai org # because we don't have a policy for inclusion in this table yet, # and including all packages will make the list too long -with open(PACKAGE_YML) as f: - data = yaml.safe_load(f) - EXTERNAL_PACKAGES = set( - p["name"][10:] - for p in data["packages"] - if p["repo"].startswith("langchain-ai/") - and p["repo"] != "langchain-ai/langchain" - and p["name"] not in IGNORE_PACKGAGES + + +def _get_type(package: dict) -> str: + if package["name"] in IGNORE_PACKGAGES: + return "ignore" + if package["repo"] == "langchain-ai/langchain": + return "B" + if package["repo"].startswith("langchain-ai/"): + return "C" + return "D" + + +def _enrich_package(p: dict) -> dict | None: + p["name_short"] = ( + p["name"][10:] if p["name"].startswith("langchain-") else p["name"] + ) + p["name_title"] = p.get("name_title") or p["name_short"].title().replace( + "-", " " + ).replace("db", "DB").replace("Db", "DB").replace("ai", "AI").replace("Ai", "AI") + p["type"] = _get_type(p) + + if p["type"] == "ignore": + return None + + p["js_exists"] = bool(p.get("js")) + custom_provider_page = p.get("provider_page") + default_provider_page = f"/docs/integrations/providers/{p['name_short']}/" + default_provider_page_exists = bool( + glob.glob(str(DOCS_DIR / f"docs/integrations/providers/{p['name_short']}.*")) ) - IN_REPO_PACKAGES = set( - p["name"][10:] - for p in data["packages"] - if p["repo"] == "langchain-ai/langchain" - and p["path"].startswith("libs/partners") - and p["name"] not in IGNORE_PACKGAGES + p["provider_page"] = custom_provider_page or ( + default_provider_page if default_provider_page_exists else None ) + if p["provider_page"] is None: + msg = ( + f"Provider page not found for {p['name_short']}. " + f"Please add one at docs/integrations/providers/{p['name_short']}.{{mdx,ipynb}}" + ) + raise ValueError(msg) -JS_PACKAGES = { - "google-gauth", - "openai", - "anthropic", - "google-genai", - "pinecone", - "aws", - "google-vertexai", - "qdrant", - "azure-dynamic-sessions", - "google-vertexai-web", - "redis", - "azure-openai", - "google-webauth", - "baidu-qianfan", - "groq", - "standard-tests", - "cloudflare", - "mistralai", - "textsplitters", - "cohere", - "mixedbread-ai", - "weaviate", - "mongodb", - "yandex", - "exa", - "nomic", - "google-common", - "ollama", - "ibm", -} + return p -ALL_PACKAGES = IN_REPO_PACKAGES.union(EXTERNAL_PACKAGES) -CUSTOM_NAME = { - "google-genai": "Google Generative AI", - "aws": "AWS", - "ibm": "IBM", -} -CUSTOM_PROVIDER_PAGES = { - "azure-dynamic-sessions": "/docs/integrations/providers/microsoft/", - "prompty": "/docs/integrations/providers/microsoft/", - "sqlserver": "/docs/integrations/providers/microsoft/", - "google-community": "/docs/integrations/providers/google/", - "google-genai": "/docs/integrations/providers/google/", - "google-vertexai": "/docs/integrations/providers/google/", - "nvidia-ai-endpoints": "/docs/integrations/providers/nvidia/", - "exa": "/docs/integrations/providers/exa_search/", - "mongodb": "/docs/integrations/providers/mongodb_atlas/", - "sema4": "/docs/integrations/providers/robocorp/", - "postgres": "/docs/integrations/providers/pgvector/", -} -PROVIDER_PAGES = { - name: f"/docs/integrations/providers/{name}/" - for name in ALL_PACKAGES - if glob.glob(str(DOCS_DIR / f"docs/integrations/providers/{name}.*")) -} -PROVIDER_PAGES = { - **PROVIDER_PAGES, - **CUSTOM_PROVIDER_PAGES, -} +with open(PACKAGE_YML) as f: + data = yaml.safe_load(f) + +packages_n = [_enrich_package(p) for p in data["packages"]] +packages = [p for p in packages_n if p is not None] + +# sort by downloads +packages_sorted = sorted(packages, key=lambda p: p["downloads"], reverse=True) -def package_row(name: str) -> str: - js = "✅" if name in JS_PACKAGES else "❌" - link = PROVIDER_PAGES.get(name) - title = CUSTOM_NAME.get(name) or name.title().replace("-", " ").replace( - "db", "DB" - ).replace("Db", "DB").replace("ai", "AI").replace("Ai", "AI") +def package_row(p: dict) -> str: + js = "✅" if p["js_exists"] else "❌" + link = p["provider_page"] + title = p["name_title"] provider = f"[{title}]({link})" if link else title - return f"| {provider} | [langchain-{name}](https://python.langchain.com/api_reference/{name.replace('-', '_')}/) | ![PyPI - Downloads](https://img.shields.io/pypi/dm/langchain-{name}?style=flat-square&label=%20&color=blue) | ![PyPI - Version](https://img.shields.io/pypi/v/langchain-{name}?style=flat-square&label=%20&color=orange) | {js} |" + return f"| {provider} | [{p['name']}](https://python.langchain.com/api_reference/{p['name_short'].replace('-', '_')}/) | ![PyPI - Downloads](https://img.shields.io/pypi/dm/{p['name']}?style=flat-square&label=%20&color=blue) | ![PyPI - Version](https://img.shields.io/pypi/v/{p['name']}?style=flat-square&label=%20&color=orange) | {js} |" def table() -> str: header = """| Provider | Package | Downloads | Latest | [JS](https://js.langchain.com/docs/integrations/providers/) | | :--- | :---: | :---: | :---: | :---: | """ - return header + "\n".join(package_row(name) for name in sorted(ALL_PACKAGES)) + return header + "\n".join(package_row(p) for p in packages_sorted) def doc() -> str: diff --git a/libs/packages.yml b/libs/packages.yml index e9f64be5a5eaa..810e54c5a857b 100644 --- a/libs/packages.yml +++ b/libs/packages.yml @@ -1,172 +1,310 @@ -# this file is used to define the packages that are used in the project +# this file is used to definet he packages that are used in the project # it is EXPERIMENTAL and may be removed in the future packages: - - name: langchain-core - repo: langchain-ai/langchain - path: libs/core - - name: langchain-text-splitters - repo: langchain-ai/langchain - path: libs/text-splitters - - name: langchain - repo: langchain-ai/langchain - path: libs/langchain - - name: langchain-community - repo: langchain-ai/langchain - path: libs/community - - name: langchain-experimental - repo: langchain-ai/langchain-experimental - path: libs/experimental - - name: langchain-cli - repo: langchain-ai/langchain - path: libs/cli - - name: langchain-ai21 - repo: langchain-ai/langchain-ai21 - path: libs/ai21 - - name: langchain-anthropic - repo: langchain-ai/langchain - path: libs/partners/anthropic - - name: langchain-chroma - repo: langchain-ai/langchain - path: libs/partners/chroma - - name: langchain-exa - repo: langchain-ai/langchain - path: libs/partners/exa - - name: langchain-fireworks - repo: langchain-ai/langchain - path: libs/partners/fireworks - - name: langchain-groq - repo: langchain-ai/langchain - path: libs/partners/groq - - name: langchain-huggingface - repo: langchain-ai/langchain - path: libs/partners/huggingface - - name: langchain-ibm - repo: langchain-ai/langchain-ibm - path: libs/ibm - - name: langchain-localai - repo: mkhludnev/langchain-localai - path: libs/localai - - name: langchain-milvus - repo: langchain-ai/langchain-milvus - path: libs/milvus - - name: langchain-mistralai - repo: langchain-ai/langchain - path: libs/partners/mistralai - - name: langchain-mongodb - repo: langchain-ai/langchain-mongodb - path: libs/mongodb - - name: langchain-nomic - repo: langchain-ai/langchain - path: libs/partners/nomic - - name: langchain-openai - repo: langchain-ai/langchain - path: libs/partners/openai - - name: langchain-pinecone - repo: langchain-ai/langchain - path: libs/partners/pinecone - - name: langchain-prompty - repo: langchain-ai/langchain - path: libs/partners/prompty - - name: langchain-qdrant - repo: langchain-ai/langchain - path: libs/partners/qdrant - - name: langchain-scrapegraph - repo: ScrapeGraphAI/langchain-scrapegraph - path: . - - name: langchain-sema4 - repo: langchain-ai/langchain-sema4 - path: libs/sema4 - - name: langchain-together - repo: langchain-ai/langchain-together - path: libs/together - - name: langchain-upstage - repo: langchain-ai/langchain-upstage - path: libs/upstage - - name: langchain-voyageai - repo: langchain-ai/langchain - path: libs/partners/voyageai - - name: langchain-aws - repo: langchain-ai/langchain-aws - path: libs/aws - - name: langchain-astradb - repo: langchain-ai/langchain-datastax - path: libs/astradb - - name: langchain-google-genai - repo: langchain-ai/langchain-google - path: libs/genai - - name: langchain-google-vertexai - repo: langchain-ai/langchain-google - path: libs/vertexai - - name: langchain-google-community - repo: langchain-ai/langchain-google - path: libs/community - - name: langchain-weaviate - repo: langchain-ai/langchain-weaviate - path: libs/weaviate - - name: langchain-cohere - repo: langchain-ai/langchain-cohere - path: libs/cohere - - name: langchain-elasticsearch - repo: langchain-ai/langchain-elastic - path: libs/elasticsearch - - name: langchain-nvidia-ai-endpoints - repo: langchain-ai/langchain-nvidia - path: libs/ai-endpoints - - name: langchain-postgres - repo: langchain-ai/langchain-postgres - path: . - - name: langchain-redis - repo: langchain-ai/langchain-redis - path: libs/redis - - name: langchain-unstructured - repo: langchain-ai/langchain-unstructured - path: libs/unstructured - - name: langchain-azure-dynamic-sessions - repo: langchain-ai/langchain-azure - path: libs/azure-dynamic-sessions - - name: langchain-sqlserver - repo: langchain-ai/langchain-azure - path: libs/sqlserver - - name: langchain-cerebras - repo: langchain-ai/langchain-cerebras - path: libs/cerebras - - name: langchain-snowflake - repo: langchain-ai/langchain-snowflake - path: libs/snowflake - - name: langchain-databricks - repo: langchain-ai/langchain-databricks - path: libs/databricks - - name: langchain-ibm - repo: langchain-ai/langchain-ibm - path: libs/ibm - - name: langchain-couchbase - repo: langchain-ai/langchain - path: libs/partners/couchbase - - name: langchain-cratedb - repo: crate/langchain-cratedb - path: . - - name: langchain-ollama - repo: langchain-ai/langchain - path: libs/partners/ollama - - name: langchain-box - repo: langchain-ai/langchain-box - path: libs/box - - name: langchain-tests - repo: langchain-ai/langchain - path: libs/standard-tests - - name: langchain-neo4j - repo: langchain-ai/langchain-neo4j - path: libs/neo4j - - name: langchain-linkup - repo: LinkupPlatform/langchain-linkup - path: . - - name: langchain-yt-dlp - repo: aqib0770/langchain-yt-dlp - path: . - - name: langchain-oceanbase - repo: oceanbase/langchain-oceanbase - path: . - - name: langchain-predictionguard - repo: predictionguard/langchain-predictionguard - path: . \ No newline at end of file +- name: langchain-core + path: libs/core + repo: langchain-ai/langchain + downloads: 27728892 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-text-splitters + path: libs/text-splitters + repo: langchain-ai/langchain + downloads: 10343427 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain + path: libs/langchain + repo: langchain-ai/langchain + downloads: 27515102 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-community + path: libs/community + repo: langchain-ai/langchain + downloads: 17505668 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-experimental + path: libs/experimental + repo: langchain-ai/langchain-experimental + downloads: 1710421 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-cli + path: libs/cli + repo: langchain-ai/langchain + downloads: 55505 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-ai21 + path: libs/ai21 + repo: langchain-ai/langchain-ai21 + downloads: 3453 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-anthropic + path: libs/partners/anthropic + repo: langchain-ai/langchain + js: '@langchain/anthropic' + downloads: 1163020 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-chroma + path: libs/partners/chroma + repo: langchain-ai/langchain + downloads: 450092 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-exa + path: libs/partners/exa + repo: langchain-ai/langchain + provider_page: exa_search + js: '@langchain/exa' + downloads: 4560 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-fireworks + path: libs/partners/fireworks + repo: langchain-ai/langchain + downloads: 73179 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-groq + path: libs/partners/groq + repo: langchain-ai/langchain + js: '@langchain/groq' + downloads: 370373 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-huggingface + path: libs/partners/huggingface + repo: langchain-ai/langchain + downloads: 375151 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-ibm + path: libs/ibm + repo: langchain-ai/langchain-ibm + js: '@langchain/ibm' + downloads: 261091 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-localai + path: libs/localai + repo: mkhludnev/langchain-localai + downloads: 510 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-milvus + path: libs/milvus + repo: langchain-ai/langchain-milvus + downloads: 111126 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-mistralai + path: libs/partners/mistralai + repo: langchain-ai/langchain + js: '@langchain/mistralai' + downloads: 232463 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-mongodb + path: libs/mongodb + repo: langchain-ai/langchain-mongodb + provider_page: mongodb_atlas + js: '@langchain/mongodb' + downloads: 113328 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-nomic + path: libs/partners/nomic + repo: langchain-ai/langchain + js: '@langchain/nomic' + downloads: 10175 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-openai + path: libs/partners/openai + repo: langchain-ai/langchain + js: '@langchain/openai' + downloads: 7994138 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-pinecone + path: libs/partners/pinecone + repo: langchain-ai/langchain + js: '@langchain/pinecone' + downloads: 345657 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-prompty + path: libs/partners/prompty + repo: langchain-ai/langchain + provider_page: microsoft + downloads: 976 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-qdrant + path: libs/partners/qdrant + repo: langchain-ai/langchain + js: '@langchain/qdrant' + downloads: 77743 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-scrapegraph + path: . + repo: ScrapeGraphAI/langchain-scrapegraph + downloads: 907 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-sema4 + path: libs/sema4 + repo: langchain-ai/langchain-sema4 + provider_page: robocorp + downloads: 987 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-together + path: libs/together + repo: langchain-ai/langchain-together + downloads: 44887 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-upstage + path: libs/upstage + repo: langchain-ai/langchain-upstage + downloads: 20951 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-voyageai + path: libs/partners/voyageai + repo: langchain-ai/langchain + downloads: 11253 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-aws + name_title: AWS + path: libs/aws + repo: langchain-ai/langchain-aws + js: '@langchain/aws' + downloads: 1507701 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-astradb + path: libs/astradb + repo: langchain-ai/langchain-datastax + downloads: 64185 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-google-genai + name_title: Google Generative AI + path: libs/genai + repo: langchain-ai/langchain-google + provider_page: google + js: '@langchain/google-genai' + downloads: 732265 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-google-vertexai + path: libs/vertexai + repo: langchain-ai/langchain-google + provider_page: google + js: '@langchain/google-vertexai' + downloads: 7668881 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-google-community + path: libs/community + repo: langchain-ai/langchain-google + provider_page: google + downloads: 3055901 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-weaviate + path: libs/weaviate + repo: langchain-ai/langchain-weaviate + js: '@langchain/weaviate' + downloads: 26639 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-cohere + path: libs/cohere + repo: langchain-ai/langchain-cohere + js: '@langchain/cohere' + downloads: 513053 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-elasticsearch + path: libs/elasticsearch + repo: langchain-ai/langchain-elastic + downloads: 108874 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-nvidia-ai-endpoints + path: libs/ai-endpoints + repo: langchain-ai/langchain-nvidia + provider_page: nvidia + downloads: 129677 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-postgres + path: . + repo: langchain-ai/langchain-postgres + provider_page: pgvector + downloads: 293866 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-redis + path: libs/redis + repo: langchain-ai/langchain-redis + js: '@langchain/redis' + downloads: 17549 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-unstructured + path: libs/unstructured + repo: langchain-ai/langchain-unstructured + downloads: 88721 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-azure-dynamic-sessions + path: libs/azure-dynamic-sessions + repo: langchain-ai/langchain-azure + provider_page: microsoft + js: '@langchain/azure-dynamic-sessions' + downloads: 7285 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-sqlserver + path: libs/sqlserver + repo: langchain-ai/langchain-azure + provider_page: microsoft + downloads: 1489 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-cerebras + path: libs/cerebras + repo: langchain-ai/langchain-cerebras + downloads: 9426 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-snowflake + path: libs/snowflake + repo: langchain-ai/langchain-snowflake + downloads: 2374 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-databricks + path: libs/databricks + repo: langchain-ai/langchain-databricks + downloads: 35495 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-couchbase + path: libs/partners/couchbase + repo: langchain-ai/langchain + downloads: 347 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-ollama + path: libs/partners/ollama + repo: langchain-ai/langchain + js: '@langchain/ollama' + downloads: 310741 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-box + path: libs/box + repo: langchain-ai/langchain-box + downloads: 2749 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-tests + path: libs/standard-tests + repo: langchain-ai/langchain + downloads: 3691 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-neo4j + path: libs/neo4j + repo: langchain-ai/langchain-neo4j + downloads: 8871 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-linkup + path: . + repo: LinkupPlatform/langchain-linkup + downloads: 818 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-yt-dlp + path: . + repo: aqib0770/langchain-yt-dlp + downloads: 776 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-oceanbase + path: . + repo: oceanbase/langchain-oceanbase + downloads: 322 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-predictionguard + path: . + repo: predictionguard/langchain-predictionguard + downloads: 156 + downloads_updated_at: '2024-12-23T20:10:11.816059+00:00' +- name: langchain-cratedb + path: . + repo: crate/langchain-cratedb + downloads: 362 + downloads_updated_at: '2024-12-23T20:53:27.001852+00:00' From 17f1ec8610767060a9f81a6dcb07e2ab44feddcf Mon Sep 17 00:00:00 2001 From: Erick Friis Date: Mon, 23 Dec 2024 13:22:21 -0800 Subject: [PATCH 2/2] docs: remove console log (#28894) --- docs/src/theme/DocItem/Layout/index.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/src/theme/DocItem/Layout/index.js b/docs/src/theme/DocItem/Layout/index.js index 768e65112d284..79f8f240cc9be 100644 --- a/docs/src/theme/DocItem/Layout/index.js +++ b/docs/src/theme/DocItem/Layout/index.js @@ -38,16 +38,12 @@ export default function DocItemLayout({children}) { "https://github.com/langchain-ai/langchain/blob/master/docs/docs/introduction.ipynb" "https://colab.research.google.com/github/langchain-ai/langchain/blob/master/docs/docs/introduction.ipynb" - console.log({metadata, frontMatter}) - const linkColab = frontMatter.link_colab || ( metadata.editUrl?.endsWith(".ipynb") ? metadata.editUrl?.replace("https://github.com/langchain-ai/langchain/edit/", "https://colab.research.google.com/github/langchain-ai/langchain/blob/") : null ); const linkGithub = frontMatter.link_github || metadata.editUrl?.replace("/edit/", "/blob/"); - - console.log({linkColab, linkGithub}) return (