diff --git a/.gitignore b/.gitignore index 80e54f9..fb67c78 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ /executor_level2/ + +.env \ No newline at end of file diff --git a/main.py b/main.py index b26e9dd..07e4963 100644 --- a/main.py +++ b/main.py @@ -3,7 +3,7 @@ import random import click from src import gpt, jina_cloud -from src.jina_cloud import push_executor, process_error_message +from src.jina_cloud import push_executor, process_error_message, jina_auth_login from src.prompt_tasks import general_guidelines, executor_file_task, chain_of_thought_creation, test_executor_file_task, \ chain_of_thought_optimization, requirements_file_task, docker_file_task, not_allowed from src.utils.io import recreate_folder, persist_file @@ -290,6 +290,9 @@ def main( num_approaches=3, output_path='executor', ): + jina_auth_login() + + generated_name = generate_executor_name(description) executor_name = f'{generated_name}{random.randint(0, 1000_000)}' diff --git a/requirements.txt b/requirements.txt index 32d0471..57552b8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ jina==3.14.1 click==8.1.3 -streamlit==1.20.0 \ No newline at end of file +streamlit==1.20.0 +openai==0.27.4 \ No newline at end of file diff --git a/src/jina_cloud.py b/src/jina_cloud.py index a007561..6d08e2b 100644 --- a/src/jina_cloud.py +++ b/src/jina_cloud.py @@ -7,10 +7,26 @@ from argparse import Namespace from pathlib import Path import hubble +from hubble import AuthenticationRequiredError from hubble.executor.helper import upload_file, archive_package, get_request_header from jcloud.flow import CloudFlow from jina import Flow +from src.utils.common import cmd + + +@hubble.login_required +def _jina_auth_login(): + pass + + +def jina_auth_login(): + try: + _jina_auth_login() + except AuthenticationRequiredError: + print('Please login to Jina first, to fully use GPTDeploy') + cmd('jina auth login') + def push_executor(dir_path): diff --git a/src/utils/common.py b/src/utils/common.py new file mode 100644 index 0000000..8171528 --- /dev/null +++ b/src/utils/common.py @@ -0,0 +1,15 @@ +import subprocess + + +def cmd(command, std_output=False, wait=True): + if isinstance(command, str): + command = command.split() + if not std_output: + process = subprocess.Popen( + command, stdout=subprocess.PIPE, stderr=subprocess.PIPE + ) + else: + process = subprocess.Popen(command) + if wait: + output, error = process.communicate() + return output, error