From 6ee460c77dfde6a93505a28e5e0f08223238b4e3 Mon Sep 17 00:00:00 2001 From: kacey Date: Mon, 22 Jan 2024 10:43:10 -0800 Subject: [PATCH 1/2] test replacing sys.add with normal imports --- __init__.py | 225 ++++++++++++++++++++++++++-------------------------- voxelgpt.py | 26 +++--- 2 files changed, 126 insertions(+), 125 deletions(-) diff --git a/__init__.py b/__init__.py index ac17173..61811de 100644 --- a/__init__.py +++ b/__init__.py @@ -13,11 +13,12 @@ from bson import json_util import fiftyone as fo -from fiftyone.core.utils import add_sys_path +# from fiftyone.core.utils import add_sys_path import fiftyone.operators as foo import fiftyone.operators.types as types - +from .voxelgpt import ask_voxelgpt_generator +import db class AskVoxelGPT(foo.Operator): @property def config(self): @@ -47,47 +48,47 @@ def execute(self, ctx): inject_voxelgpt_secrets(ctx) try: - with add_sys_path(os.path.dirname(os.path.abspath(__file__))): - # pylint: disable=no-name-in-module - from voxelgpt import ask_voxelgpt_generator - - streaming_message = None - - for response in ask_voxelgpt_generator( - query, - sample_collection=sample_collection, - dialect="string", - allow_streaming=True, - ): - type = response["type"] - data = response["data"] - - if type == "view": - yield self.view(ctx, data["view"]) - elif type == "message": - kwargs = {} - - if data["overwrite"]: - kwargs["overwrite_last"] = True - - yield self.message( - ctx, data["message"], messages, **kwargs - ) - elif type == "streaming": - kwargs = {} - - if streaming_message is None: - streaming_message = data["content"] - else: - streaming_message += data["content"] - kwargs["overwrite_last"] = True - - yield self.message( - ctx, streaming_message, messages, **kwargs - ) - - if data["last"]: - streaming_message = None + # with add_sys_path(os.path.dirname(os.path.abspath(__file__))): + # # pylint: disable=no-name-in-module + # from voxelgpt import ask_voxelgpt_generator + + streaming_message = None + + for response in ask_voxelgpt_generator( + query, + sample_collection=sample_collection, + dialect="string", + allow_streaming=True, + ): + type = response["type"] + data = response["data"] + + if type == "view": + yield self.view(ctx, data["view"]) + elif type == "message": + kwargs = {} + + if data["overwrite"]: + kwargs["overwrite_last"] = True + + yield self.message( + ctx, data["message"], messages, **kwargs + ) + elif type == "streaming": + kwargs = {} + + if streaming_message is None: + streaming_message = data["content"] + else: + streaming_message += data["content"] + kwargs["overwrite_last"] = True + + yield self.message( + ctx, streaming_message, messages, **kwargs + ) + + if data["last"]: + streaming_message = None except Exception as e: yield self.error(ctx, e) @@ -152,65 +153,65 @@ def execute(self, ctx): inject_voxelgpt_secrets(ctx) try: - with add_sys_path(os.path.dirname(os.path.abspath(__file__))): - # pylint: disable=import-error,no-name-in-module - import db - from voxelgpt import ask_voxelgpt_generator - - # Log user query - table = db.table(db.UserQueryTable) - ctx.params["query_id"] = table.insert_query(query) - - streaming_message = None - - for response in ask_voxelgpt_generator( - query, - sample_collection=sample_collection, - chat_history=chat_history, - dialect="markdown", - allow_streaming=True, - ): - type = response["type"] - data = response["data"] - - if type == "view": - if orig_view is not None: - message = ( - "I'm remembering your previous view. Any " - "follow-up questions in this session will be " - "posed with respect to it" - ) - yield self.message( - ctx, message, orig_view=orig_view - ) - - yield self.view(ctx, data["view"]) - elif type == "message": - kwargs = {} - - if data["overwrite"]: - kwargs["overwrite_last"] = True - - kwargs["history"] = data["history"] - yield self.message(ctx, data["message"], **kwargs) - elif type == "streaming": - kwargs = {} - - if streaming_message is None: - streaming_message = data["content"] - else: - streaming_message += data["content"] - kwargs["overwrite_last"] = True - - if data["last"]: - kwargs["history"] = streaming_message - - yield self.message(ctx, streaming_message, **kwargs) - - if data["last"]: - streaming_message = None - elif type == "warning": - yield self.warning(ctx, data["message"]) + # with add_sys_path(os.path.dirname(os.path.abspath(__file__))): + # # pylint: disable=import-error,no-name-in-module + # import db + # from voxelgpt import ask_voxelgpt_generator + + # Log user query + table = db.table(db.UserQueryTable) + ctx.params["query_id"] = table.insert_query(query) + + streaming_message = None + + for response in ask_voxelgpt_generator( + query, + sample_collection=sample_collection, + chat_history=chat_history, + dialect="markdown", + allow_streaming=True, + ): + type = response["type"] + data = response["data"] + + if type == "view": + if orig_view is not None: + message = ( + "I'm remembering your previous view. Any " + "follow-up questions in this session will be " + "posed with respect to it" + ) + yield self.message( + ctx, message, orig_view=orig_view + ) + + yield self.view(ctx, data["view"]) + elif type == "message": + kwargs = {} + + if data["overwrite"]: + kwargs["overwrite_last"] = True + + kwargs["history"] = data["history"] + yield self.message(ctx, data["message"], **kwargs) + elif type == "streaming": + kwargs = {} + + if streaming_message is None: + streaming_message = data["content"] + else: + streaming_message += data["content"] + kwargs["overwrite_last"] = True + + if data["last"]: + kwargs["history"] = streaming_message + + yield self.message(ctx, streaming_message, **kwargs) + + if data["last"]: + streaming_message = None + elif type == "warning": + yield self.warning(ctx, data["message"]) except Exception as e: yield self.error(ctx, e) finally: @@ -367,17 +368,17 @@ def execute(self, ctx): query_id = ctx.params["query_id"] vote = ctx.params["vote"] - with add_sys_path(os.path.dirname(os.path.abspath(__file__))): - # pylint: disable=import-error,no-name-in-module - import db + # with add_sys_path(os.path.dirname(os.path.abspath(__file__))): + # # pylint: disable=import-error,no-name-in-module + # import db - table = db.table(db.UserQueryTable) - if vote == "upvote": - table.upvote_query(query_id) - elif vote == "downvote": - table.downvote_query(query_id) - else: - raise ValueError(f"Invalid vote '{vote}'") + table = db.table(db.UserQueryTable) + if vote == "upvote": + table.upvote_query(query_id) + elif vote == "downvote": + table.downvote_query(query_id) + else: + raise ValueError(f"Invalid vote '{vote}'") def get_plugin_setting(dataset, plugin_name, key, default=None): diff --git a/voxelgpt.py b/voxelgpt.py index fcf22ff..19a5dcc 100644 --- a/voxelgpt.py +++ b/voxelgpt.py @@ -11,27 +11,27 @@ import fiftyone as fo -from links.query_moderator import moderate_query -from links.dataset_schema_handler import query_schema -from links.query_intent_classifier import classify_query_intent -from links.docs_query_dispatcher import run_docs_query, stream_docs_query -from links.computer_vision_query_dispatcher import ( +from voxelgpt.links.query_moderator import moderate_query +from voxelgpt.links.dataset_schema_handler import query_schema +from voxelgpt.links.query_intent_classifier import classify_query_intent +from voxelgpt.links.docs_query_dispatcher import run_docs_query, stream_docs_query +from voxelgpt.links.computer_vision_query_dispatcher import ( run_computer_vision_query, stream_computer_vision_query, ) -from links.view_stage_example_selector import ( +from voxelgpt.links.view_stage_example_selector import ( generate_view_stage_examples_prompt, ) -from links.view_stage_description_selector import ( +from voxelgpt.links.view_stage_description_selector import ( generate_view_stage_descriptions_prompt, get_most_relevant_view_stages, ) -from links.algorithm_selector import select_algorithms -from links.run_selector import select_runs -from links.field_selector import select_fields -from links.label_class_selector import select_label_classes -from links.dataset_view_generator import get_gpt_view_stage_strings -from links.effective_query_generator import generate_effective_query +from voxelgpt.links.algorithm_selector import select_algorithms +from voxelgpt.links.run_selector import select_runs +from voxelgpt.links.field_selector import select_fields +from voxelgpt.links.label_class_selector import select_label_classes +from voxelgpt.links.dataset_view_generator import get_gpt_view_stage_strings +from voxelgpt.links.effective_query_generator import generate_effective_query _SUPPORTED_DIALECTS = ("string", "markdown", "raw") From 09c9bb052297dd465ffdef3258cf7743bed27e3f Mon Sep 17 00:00:00 2001 From: kacey Date: Mon, 22 Jan 2024 10:48:35 -0800 Subject: [PATCH 2/2] cleanup --- __init__.py | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/__init__.py b/__init__.py index 61811de..9d5984f 100644 --- a/__init__.py +++ b/__init__.py @@ -13,7 +13,6 @@ from bson import json_util import fiftyone as fo -# from fiftyone.core.utils import add_sys_path import fiftyone.operators as foo import fiftyone.operators.types as types @@ -48,10 +47,6 @@ def execute(self, ctx): inject_voxelgpt_secrets(ctx) try: - # with add_sys_path(os.path.dirname(os.path.abspath(__file__))): - # # pylint: disable=no-name-in-module - # from voxelgpt import ask_voxelgpt_generator - streaming_message = None for response in ask_voxelgpt_generator( @@ -153,10 +148,6 @@ def execute(self, ctx): inject_voxelgpt_secrets(ctx) try: - # with add_sys_path(os.path.dirname(os.path.abspath(__file__))): - # # pylint: disable=import-error,no-name-in-module - # import db - # from voxelgpt import ask_voxelgpt_generator # Log user query table = db.table(db.UserQueryTable) @@ -368,9 +359,6 @@ def execute(self, ctx): query_id = ctx.params["query_id"] vote = ctx.params["vote"] - # with add_sys_path(os.path.dirname(os.path.abspath(__file__))): - # # pylint: disable=import-error,no-name-in-module - # import db table = db.table(db.UserQueryTable) if vote == "upvote":