From 317323c0e524cf177c9a03cb9cb205260ab61cab Mon Sep 17 00:00:00 2001 From: cin-jacky <101088014+jacky0218@users.noreply.github.com> Date: Wed, 27 Sep 2023 16:44:38 +0900 Subject: [PATCH] [AUR-424] Setup CLI interface (#25) * [AUR-424] Setup CLI interface * [AUR-424] fix test_vectorstore:test_query * [AUR-424] exclude examples when setup CLI * [AUR-424] create kh and kh --export * [AUR-426] revise cli by using click.group * Fix dynamic import * [AUR-426] revert the format of import packages * [AUR-426] set argument default * [AUR-426] set click dependencies in setup.py --------- Co-authored-by: trducng --- knowledgehub/cli.py | 56 +++++++++++++++++++++++++++++++++++++++++++++ setup.py | 7 +++++- 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/knowledgehub/cli.py b/knowledgehub/cli.py index e69de29..3345fa2 100644 --- a/knowledgehub/cli.py +++ b/knowledgehub/cli.py @@ -0,0 +1,56 @@ +import os + +import click +import yaml + +from kotaemon.contribs.promptui.config import export_pipeline_to_config +from kotaemon.contribs.promptui.ui import build_from_dict + + +# check if the output is not a .yml file -> raise error +def check_config_format(config): + if os.path.exists(config): + if isinstance(config, str): + with open(config) as f: + yaml.safe_load(f) + else: + raise ValueError("config must be yaml format.") + + +@click.group() +def main(): + pass + + +@click.group() +def promptui(): + pass + + +main.add_command(promptui) + + +@promptui.command() +@click.argument("export_path", nargs=1) +@click.option("--output", default="promptui.yml", required=False) +def export(export_path, output): + + import sys + + from theflow.utils.modules import import_dotted_string + + sys.path.append(os.getcwd()) + cls = import_dotted_string(export_path, safe=False) + export_pipeline_to_config(cls, output) + check_config_format(output) + + +@promptui.command() +@click.argument("run_path", required=False, default="promptui.yml") +def run(run_path): + build_from_dict(run_path) + check_config_format(run_path) + + +if __name__ == "__main__": + main() diff --git a/setup.py b/setup.py index 81bb68a..b0aa963 100644 --- a/setup.py +++ b/setup.py @@ -26,7 +26,12 @@ setuptools.setup( long_description=read("README.md"), long_description_content_type="text/markdown", url="https://github.com/Cinnamon/kotaemon/", - packages=setuptools.find_packages(exclude=("tests", "tests.*")), + packages=setuptools.find_packages( + exclude=("tests", "tests.*", "examples", "examples.*") + ), + dependencies=[ + "click >= 8.1.7", + ], install_requires=[ "farm-haystack==1.19.0", "langchain",