mirror of
https://github.com/hwchase17/langchain.git
synced 2025-09-02 03:26:17 +00:00
cli[patch]: tool integration templates (#24837)
Co-authored-by: Erick Friis <erick@langchain.dev>
This commit is contained in:
@@ -27,7 +27,7 @@ Replacements = TypedDict(
|
||||
)
|
||||
|
||||
|
||||
def _process_name(name: str):
|
||||
def _process_name(name: str, *, community: bool = False):
|
||||
preprocessed = name.replace("_", "-").lower()
|
||||
|
||||
if preprocessed.startswith("langchain-"):
|
||||
@@ -42,16 +42,17 @@ def _process_name(name: str):
|
||||
raise ValueError("Name should not end with `-`.")
|
||||
if preprocessed.find("--") != -1:
|
||||
raise ValueError("Name should not contain consecutive hyphens.")
|
||||
return Replacements(
|
||||
{
|
||||
"__package_name__": f"langchain-{preprocessed}",
|
||||
"__module_name__": "langchain_" + preprocessed.replace("-", "_"),
|
||||
"__ModuleName__": preprocessed.title().replace("-", ""),
|
||||
"__MODULE_NAME__": preprocessed.upper().replace("-", ""),
|
||||
"__package_name_short__": preprocessed,
|
||||
"__package_name_short_snake__": preprocessed.replace("-", "_"),
|
||||
}
|
||||
)
|
||||
replacements = {
|
||||
"__package_name__": f"langchain-{preprocessed}",
|
||||
"__module_name__": "langchain_" + preprocessed.replace("-", "_"),
|
||||
"__ModuleName__": preprocessed.title().replace("-", ""),
|
||||
"__MODULE_NAME__": preprocessed.upper().replace("-", ""),
|
||||
"__package_name_short__": preprocessed,
|
||||
"__package_name_short_snake__": preprocessed.replace("-", "_"),
|
||||
}
|
||||
if community:
|
||||
replacements["__module_name__"] = preprocessed.replace("-", "_")
|
||||
return Replacements(replacements)
|
||||
|
||||
|
||||
@integration_cli.command()
|
||||
@@ -172,7 +173,7 @@ def create_doc(
|
||||
Creates a new integration doc.
|
||||
"""
|
||||
try:
|
||||
replacements = _process_name(name)
|
||||
replacements = _process_name(name, community=component_type=="Tool")
|
||||
except ValueError as e:
|
||||
typer.echo(e)
|
||||
raise typer.Exit(code=1)
|
||||
@@ -200,18 +201,19 @@ def create_doc(
|
||||
)
|
||||
|
||||
# copy over template from ../integration_template
|
||||
template_dir = Path(__file__).parents[1] / "integration_template" / "docs"
|
||||
if component_type == "ChatModel":
|
||||
docs_template = (
|
||||
Path(__file__).parents[1] / "integration_template/docs/chat.ipynb"
|
||||
)
|
||||
docs_template = template_dir / "chat.ipynb"
|
||||
elif component_type == "DocumentLoader":
|
||||
docs_template = (
|
||||
Path(__file__).parents[1]
|
||||
/ "integration_template/docs/document_loaders.ipynb"
|
||||
)
|
||||
docs_template = template_dir / "document_loaders.ipynb"
|
||||
elif component_type == "Tool":
|
||||
docs_template = template_dir / "tools.ipynb"
|
||||
elif component_type == "VectorStore":
|
||||
docs_template = (
|
||||
Path(__file__).parents[1] / "integration_template/docs/vectorstores.ipynb"
|
||||
docs_template = template_dir / "vectorstores.ipynb"
|
||||
else:
|
||||
raise ValueError(
|
||||
f"Unrecognized {component_type=}. Expected one of 'ChatModel', "
|
||||
f"'DocumentLoader', 'Tool'."
|
||||
)
|
||||
shutil.copy(docs_template, destination_path)
|
||||
|
||||
|
Reference in New Issue
Block a user