infra: cleanup docs build (#21134)

Refactors the docs build in order to:
- run the same `make build` command in both vercel and local build
- incrementally build artifacts in 2 distinct steps, instead of building
all docs in-place (in vercel) or in a _dist dir (locally)

Highlights:
- introduces `make build` in order to build the docs
- collects and generates all files for the build in
`docs/build/intermediate`
- renders those jupyter notebook + markdown files into
`docs/build/outputs`

And now the outputs to host are in `docs/build/outputs`, which will need
a vercel settings change.

Todo:
- [ ] figure out how to point the right directory (right now deleting
and moving docs dir in vercel_build.sh isn't great)
This commit is contained in:
Erick Friis
2024-05-01 17:34:05 -07:00
committed by GitHub
parent 6fa8626e2f
commit cd4c54282a
12 changed files with 141 additions and 185 deletions

View File

@@ -1,11 +1,11 @@
import os
import sys
from pathlib import Path
from langchain_community import chat_models, llms
from langchain_core.language_models.chat_models import BaseChatModel, SimpleChatModel
from langchain_core.language_models.llms import LLM, BaseLLM
INTEGRATIONS_DIR = Path(os.path.abspath(__file__)).parents[1] / "docs" / "integrations"
LLM_IGNORE = ("FakeListLLM", "OpenAIChat", "PromptLayerOpenAIChat")
LLM_FEAT_TABLE_CORRECTION = {
"TextGen": {"_astream": False, "_agenerate": False},
@@ -218,9 +218,17 @@ def get_chat_model_table() -> str:
if __name__ == "__main__":
output_dir = Path(sys.argv[1])
output_integrations_dir = output_dir / "integrations"
output_integrations_dir_llms = output_integrations_dir / "llms"
output_integrations_dir_chat = output_integrations_dir / "chat"
output_integrations_dir_llms.mkdir(parents=True, exist_ok=True)
output_integrations_dir_chat.mkdir(parents=True, exist_ok=True)
llm_page = LLM_TEMPLATE.format(table=get_llm_table())
with open(INTEGRATIONS_DIR / "llms" / "index.mdx", "w") as f:
with open(output_integrations_dir / "llms" / "index.mdx", "w") as f:
f.write(llm_page)
chat_model_page = CHAT_MODEL_TEMPLATE.format(table=get_chat_model_table())
with open(INTEGRATIONS_DIR / "chat" / "index.mdx", "w") as f:
with open(output_integrations_dir / "chat" / "index.mdx", "w") as f:
f.write(chat_model_page)