From 04aa64962a878d27d94ee3e3575b42d747bff347 Mon Sep 17 00:00:00 2001 From: Hugo Saporetti Junior Date: Thu, 24 Oct 2024 15:13:12 -0300 Subject: [PATCH] Organize imports --- src/demo/devel/google_suggestions.py | 1 - src/demo/devel/gpt2_suggester.py | 4 +-- src/main/askai/__classpath__.py | 13 ++++---- src/main/askai/__main__.py | 23 +++++++------- src/main/askai/core/askai.py | 9 ++---- src/main/askai/core/askai_messages.py | 3 +- src/main/askai/core/askai_settings.py | 3 +- src/main/askai/core/component/rag_provider.py | 2 +- src/main/askai/core/model/acc_response.py | 8 ++--- src/main/askai/core/model/action_plan.py | 10 +++--- src/main/askai/core/processors/rag.py | 31 +++++++++---------- .../processors/splitter/splitter_actions.py | 19 ++++++------ .../processors/splitter/splitter_executor.py | 11 +++---- .../processors/splitter/splitter_pipeline.py | 21 ++++++------- .../processors/splitter/splitter_result.py | 6 ++-- .../splitter/splitter_transitions.py | 3 +- .../askai/core/processors/task_splitter.py | 15 +++++---- src/main/askai/core/router/evaluation.py | 13 ++++---- src/main/askai/core/router/task_agent.py | 19 ++++++------ src/main/askai/core/support/chat_context.py | 11 +++---- .../askai/core/support/shared_instances.py | 3 +- src/main/askai/core/support/text_formatter.py | 7 ++--- 22 files changed, 104 insertions(+), 131 deletions(-) diff --git a/src/demo/devel/google_suggestions.py b/src/demo/devel/google_suggestions.py index de50397f..93cb825e 100644 --- a/src/demo/devel/google_suggestions.py +++ b/src/demo/devel/google_suggestions.py @@ -1,7 +1,6 @@ import json import requests - if __name__ == '__main__': query = 'home' diff --git a/src/demo/devel/gpt2_suggester.py b/src/demo/devel/gpt2_suggester.py index d042cdc8..1b36fefa 100644 --- a/src/demo/devel/gpt2_suggester.py +++ b/src/demo/devel/gpt2_suggester.py @@ -1,8 +1,8 @@ -import os.path +from transformers import GPT2LMHeadModel, GPT2Tokenizer from typing import AnyStr +import os.path import torch -from transformers import GPT2LMHeadModel, GPT2Tokenizer def initialize(model_name: str = 'gpt2') -> tuple: diff --git a/src/main/askai/__classpath__.py b/src/main/askai/__classpath__.py index 345b8a4d..ed8b960a 100644 --- a/src/main/askai/__classpath__.py +++ b/src/main/askai/__classpath__.py @@ -12,17 +12,16 @@ Copyright (c) 2024, HomeSetup """ -import logging as log -import os -import sys -import warnings - -import pydantic +from askai.core.model.api_keys import ApiKeys from hspylib.core.metaclass.classpath import Classpath from hspylib.core.tools.commons import is_debugging, parent_path, root_dir from hspylib.modules.application.exit_status import ExitStatus -from askai.core.model.api_keys import ApiKeys +import logging as log +import os +import pydantic +import sys +import warnings if not is_debugging(): warnings.simplefilter("ignore", category=FutureWarning) diff --git a/src/main/askai/__main__.py b/src/main/askai/__main__.py index ae0602b8..c6cfa600 100755 --- a/src/main/askai/__main__.py +++ b/src/main/askai/__main__.py @@ -13,14 +13,10 @@ Copyright (c) 2024, HomeSetup """ -import logging as log -import os -import re -import sys -from textwrap import dedent -from typing import Any, AnyStr, Optional - -import click +from askai.__classpath__ import classpath +from askai.core.askai_configs import configs +from askai.core.enums.run_modes import RunModes +from askai.core.support.shared_instances import LOGGER_NAME from clitt.core.tui.tui_application import TUIApplication from hspylib.core.enums.charset import Charset from hspylib.core.tools.commons import syserr, to_bool @@ -29,11 +25,14 @@ from hspylib.modules.application.argparse.parser_action import ParserAction from hspylib.modules.application.exit_status import ExitStatus from hspylib.modules.application.version import Version +from textwrap import dedent +from typing import Any, AnyStr, Optional -from askai.__classpath__ import classpath -from askai.core.askai_configs import configs -from askai.core.enums.run_modes import RunModes -from askai.core.support.shared_instances import LOGGER_NAME +import click +import logging as log +import os +import re +import sys class Main(TUIApplication): diff --git a/src/main/askai/core/askai.py b/src/main/askai/core/askai.py index b116b5e5..c4ea45ed 100644 --- a/src/main/askai/core/askai.py +++ b/src/main/askai/core/askai.py @@ -26,13 +26,8 @@ from askai.core.support.chat_context import ChatContext from askai.core.support.shared_instances import shared from askai.core.support.utilities import read_stdin -from askai.exception.exceptions import ( - ImpossibleQuery, - InaccurateResponse, - IntelligibleAudioError, - MaxInteractionsReached, - TerminatingQuery, -) +from askai.exception.exceptions import (ImpossibleQuery, InaccurateResponse, IntelligibleAudioError, + MaxInteractionsReached, TerminatingQuery) from askai.tui.app_icons import AppIcons from click import UsageError from hspylib.core.enums.charset import Charset diff --git a/src/main/askai/core/askai_messages.py b/src/main/askai/core/askai_messages.py index 37b81e8f..2ad11587 100644 --- a/src/main/askai/core/askai_messages.py +++ b/src/main/askai/core/askai_messages.py @@ -12,13 +12,12 @@ Copyright (c) 2024, HomeSetup """ -from hspylib.core.metaclass.classpath import AnyPath - from askai.core.askai_configs import configs from askai.language.ai_translator import AITranslator from askai.language.language import Language from askai.language.translators.deepl_translator import DeepLTranslator from functools import cached_property, lru_cache +from hspylib.core.metaclass.classpath import AnyPath from hspylib.core.metaclass.singleton import Singleton from typing import AnyStr diff --git a/src/main/askai/core/askai_settings.py b/src/main/askai/core/askai_settings.py index 2a202470..a16fa56f 100644 --- a/src/main/askai/core/askai_settings.py +++ b/src/main/askai/core/askai_settings.py @@ -12,10 +12,9 @@ Copyright (c) 2024, HomeSetup """ -from hspylib.core.metaclass.singleton import Singleton - from askai.__classpath__ import classpath from contextlib import redirect_stdout +from hspylib.core.metaclass.singleton import Singleton from hspylib.core.tools.commons import console_out, to_bool from io import StringIO from pathlib import Path diff --git a/src/main/askai/core/component/rag_provider.py b/src/main/askai/core/component/rag_provider.py index c63322c7..8aef9bfd 100644 --- a/src/main/askai/core/component/rag_provider.py +++ b/src/main/askai/core/component/rag_provider.py @@ -19,7 +19,7 @@ from hspylib.core.config.path_object import PathObject from hspylib.core.metaclass.classpath import AnyPath from hspylib.core.preconditions import check_state -from hspylib.core.tools.commons import file_is_not_empty, dirname +from hspylib.core.tools.commons import dirname, file_is_not_empty from hspylib.core.tools.text_tools import ensure_endswith, hash_text from langchain_community.document_loaders import CSVLoader from langchain_community.vectorstores import FAISS diff --git a/src/main/askai/core/model/acc_response.py b/src/main/askai/core/model/acc_response.py index cc773218..5c030478 100644 --- a/src/main/askai/core/model/acc_response.py +++ b/src/main/askai/core/model/acc_response.py @@ -12,13 +12,11 @@ Copyright (c) 2024, HomeSetup """ -from dataclasses import dataclass -from pathlib import Path - -from hspylib.core.tools.text_tools import ensure_endswith - from askai.core.enums.acc_color import AccColor, AccuracyColors from askai.core.support.llm_parser import parse_field +from dataclasses import dataclass +from hspylib.core.tools.text_tools import ensure_endswith +from pathlib import Path @dataclass(frozen=True) diff --git a/src/main/askai/core/model/action_plan.py b/src/main/askai/core/model/action_plan.py index 1c0598c8..58464964 100644 --- a/src/main/askai/core/model/action_plan.py +++ b/src/main/askai/core/model/action_plan.py @@ -12,15 +12,13 @@ Copyright (c) 2024, HomeSetup """ -from dataclasses import dataclass, field -from pathlib import Path -from types import SimpleNamespace - -from hspylib.core.preconditions import check_state - from askai.core.model.model_result import ModelResult from askai.core.support.llm_parser import parse_field, parse_list, parse_word from askai.exception.exceptions import InaccurateResponse +from dataclasses import dataclass, field +from hspylib.core.preconditions import check_state +from pathlib import Path +from types import SimpleNamespace @dataclass diff --git a/src/main/askai/core/processors/rag.py b/src/main/askai/core/processors/rag.py index acb8aec0..88046e32 100644 --- a/src/main/askai/core/processors/rag.py +++ b/src/main/askai/core/processors/rag.py @@ -12,13 +12,17 @@ Copyright (c) 2024, HomeSetup """ -import logging as log -import os -import shutil +from askai.core.askai_configs import configs +from askai.core.askai_events import events +from askai.core.askai_messages import msg +from askai.core.askai_prompt import prompt +from askai.core.component.cache_service import PERSIST_DIR +from askai.core.component.rag_provider import RAG_EXT_DIR, RAGProvider +from askai.core.engine.openai.temperature import Temperature +from askai.core.model.ai_reply import AIReply +from askai.core.support.langchain_support import lc_llm +from askai.exception.exceptions import DocumentsNotFound, TerminatingQuery from functools import lru_cache -from pathlib import Path -from typing import Optional - from hspylib.core.config.path_object import PathObject from hspylib.core.metaclass.classpath import AnyPath from hspylib.core.metaclass.singleton import Singleton @@ -30,18 +34,13 @@ from langchain_core.prompts import BasePromptTemplate, ChatPromptTemplate from langchain_core.runnables import Runnable, RunnablePassthrough from langchain_text_splitters import RecursiveCharacterTextSplitter +from pathlib import Path from rich.status import Status +from typing import Optional -from askai.core.askai_configs import configs -from askai.core.askai_events import events -from askai.core.askai_messages import msg -from askai.core.askai_prompt import prompt -from askai.core.component.cache_service import PERSIST_DIR -from askai.core.component.rag_provider import RAGProvider, RAG_EXT_DIR -from askai.core.engine.openai.temperature import Temperature -from askai.core.model.ai_reply import AIReply -from askai.core.support.langchain_support import lc_llm -from askai.exception.exceptions import DocumentsNotFound, TerminatingQuery +import logging as log +import os +import shutil class Rag(metaclass=Singleton): diff --git a/src/main/askai/core/processors/splitter/splitter_actions.py b/src/main/askai/core/processors/splitter/splitter_actions.py index d6abaa96..a12dd7d0 100644 --- a/src/main/askai/core/processors/splitter/splitter_actions.py +++ b/src/main/askai/core/processors/splitter/splitter_actions.py @@ -12,16 +12,6 @@ Copyright (c) 2024, HomeSetup """ -import logging as log -from pathlib import Path -from types import SimpleNamespace -from typing import Optional - -from hspylib.core.metaclass.singleton import Singleton -from langchain_core.messages import AIMessage -from langchain_core.prompts import ChatPromptTemplate, PromptTemplate, MessagesPlaceholder -from langchain_core.runnables import RunnableWithMessageHistory - from askai.core.askai_configs import configs from askai.core.askai_prompt import prompt from askai.core.component.geo_location import geo_location @@ -36,6 +26,15 @@ from askai.core.router.tools.general import final_answer from askai.core.support.langchain_support import lc_llm from askai.core.support.shared_instances import shared +from hspylib.core.metaclass.singleton import Singleton +from langchain_core.messages import AIMessage +from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder, PromptTemplate +from langchain_core.runnables import RunnableWithMessageHistory +from pathlib import Path +from types import SimpleNamespace +from typing import Optional + +import logging as log class SplitterActions(metaclass=Singleton): diff --git a/src/main/askai/core/processors/splitter/splitter_executor.py b/src/main/askai/core/processors/splitter/splitter_executor.py index 3b8d2433..2a5b4a95 100644 --- a/src/main/askai/core/processors/splitter/splitter_executor.py +++ b/src/main/askai/core/processors/splitter/splitter_executor.py @@ -12,16 +12,15 @@ Copyright (c) 2024, HomeSetup """ -import os -from textwrap import indent -from threading import Thread - -from rich.console import Console - from askai.core.askai_configs import configs from askai.core.enums.acc_color import AccColor from askai.core.processors.splitter.splitter_pipeline import SplitterPipeline from askai.core.processors.splitter.splitter_states import States +from rich.console import Console +from textwrap import indent +from threading import Thread + +import os class SplitterExecutor(Thread): diff --git a/src/main/askai/core/processors/splitter/splitter_pipeline.py b/src/main/askai/core/processors/splitter/splitter_pipeline.py index a92b74e9..5148c4bf 100644 --- a/src/main/askai/core/processors/splitter/splitter_pipeline.py +++ b/src/main/askai/core/processors/splitter/splitter_pipeline.py @@ -12,15 +12,6 @@ Copyright (c) 2024, HomeSetup """ -import logging as log -from collections import defaultdict -from typing import AnyStr, Optional - -from hspylib.core.preconditions import check_state -from hspylib.core.tools.validator import Validator -from langchain_core.prompts import PromptTemplate -from transitions import Machine - from askai.core.askai_messages import msg from askai.core.askai_prompt import prompt from askai.core.enums.acc_color import AccColor @@ -28,11 +19,19 @@ from askai.core.model.action_plan import ActionPlan from askai.core.model.model_result import ModelResult from askai.core.processors.splitter.splitter_actions import actions -from askai.core.processors.splitter.splitter_result import SplitterResult, PipelineResponse +from askai.core.processors.splitter.splitter_result import PipelineResponse, SplitterResult from askai.core.processors.splitter.splitter_states import States from askai.core.processors.splitter.splitter_transitions import Transition, TRANSITIONS from askai.core.router.evaluation import eval_response, EVALUATION_GUIDE -from askai.core.support.shared_instances import shared, LOGGER_NAME +from askai.core.support.shared_instances import LOGGER_NAME, shared +from collections import defaultdict +from hspylib.core.preconditions import check_state +from hspylib.core.tools.validator import Validator +from langchain_core.prompts import PromptTemplate +from transitions import Machine +from typing import AnyStr, Optional + +import logging as log class SplitterPipeline: diff --git a/src/main/askai/core/processors/splitter/splitter_result.py b/src/main/askai/core/processors/splitter/splitter_result.py index e363c31e..c4af71b9 100644 --- a/src/main/askai/core/processors/splitter/splitter_result.py +++ b/src/main/askai/core/processors/splitter/splitter_result.py @@ -1,10 +1,10 @@ -import os -from dataclasses import dataclass, field - from askai.core.enums.acc_color import AccColor from askai.core.model.acc_response import AccResponse from askai.core.model.action_plan import ActionPlan from askai.core.model.model_result import ModelResult +from dataclasses import dataclass, field + +import os @dataclass diff --git a/src/main/askai/core/processors/splitter/splitter_transitions.py b/src/main/askai/core/processors/splitter/splitter_transitions.py index cfb0a6f5..6014f678 100644 --- a/src/main/askai/core/processors/splitter/splitter_transitions.py +++ b/src/main/askai/core/processors/splitter/splitter_transitions.py @@ -12,9 +12,8 @@ Copyright (c) 2024, HomeSetup """ -from typing import TypeAlias - from askai.core.processors.splitter.splitter_states import States +from typing import TypeAlias # Define the transitions between states Transition: TypeAlias = dict[str, str | States] diff --git a/src/main/askai/core/processors/task_splitter.py b/src/main/askai/core/processors/task_splitter.py index b130d955..37f11016 100644 --- a/src/main/askai/core/processors/task_splitter.py +++ b/src/main/askai/core/processors/task_splitter.py @@ -12,18 +12,17 @@ Copyright (c) 2024, HomeSetup """ -import logging as log -import os -from pathlib import Path -from typing import Any, Optional, Type, TypeAlias - +from askai.core.processors.splitter.splitter_executor import SplitterExecutor +from askai.core.support.shared_instances import shared +from askai.exception.exceptions import InaccurateResponse, TerminatingQuery from hspylib.core.exception.exceptions import InvalidArgumentError from hspylib.core.metaclass.singleton import Singleton +from pathlib import Path from pydantic_core import ValidationError +from typing import Any, Optional, Type, TypeAlias -from askai.core.processors.splitter.splitter_executor import SplitterExecutor -from askai.core.support.shared_instances import shared -from askai.exception.exceptions import InaccurateResponse, TerminatingQuery +import logging as log +import os AgentResponse: TypeAlias = dict[str, Any] diff --git a/src/main/askai/core/router/evaluation.py b/src/main/askai/core/router/evaluation.py index 44c48c60..1590d197 100644 --- a/src/main/askai/core/router/evaluation.py +++ b/src/main/askai/core/router/evaluation.py @@ -13,13 +13,6 @@ Copyright (c) 2024, HomeSetup """ -import logging as log -from textwrap import dedent - -from langchain_core.messages import AIMessage -from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder, PromptTemplate -from langchain_core.runnables.history import RunnableWithMessageHistory - from askai.core.askai_events import events from askai.core.askai_messages import msg from askai.core.askai_prompt import prompt @@ -30,6 +23,12 @@ from askai.core.support.langchain_support import lc_llm from askai.core.support.shared_instances import shared from askai.exception.exceptions import InaccurateResponse +from langchain_core.messages import AIMessage +from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder, PromptTemplate +from langchain_core.runnables.history import RunnableWithMessageHistory +from textwrap import dedent + +import logging as log # fmt: off EVALUATION_GUIDE: str = dedent(""" diff --git a/src/main/askai/core/router/task_agent.py b/src/main/askai/core/router/task_agent.py index c26a49f5..9efad493 100644 --- a/src/main/askai/core/router/task_agent.py +++ b/src/main/askai/core/router/task_agent.py @@ -12,10 +12,12 @@ Copyright (c) 2024, HomeSetup """ -import logging as log -from typing import AnyStr, Optional - -import openai +from askai.core.askai_configs import configs +from askai.core.askai_prompt import prompt +from askai.core.engine.openai.temperature import Temperature +from askai.core.router.agent_tools import features +from askai.core.support.langchain_support import lc_llm +from askai.core.support.shared_instances import shared from hspylib.core.config.path_object import PathObject from hspylib.core.metaclass.singleton import Singleton from langchain.agents import AgentExecutor, create_structured_chat_agent @@ -23,13 +25,10 @@ from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder from langchain_core.runnables import Runnable from langchain_core.runnables.utils import Output +from typing import AnyStr, Optional -from askai.core.askai_configs import configs -from askai.core.askai_prompt import prompt -from askai.core.engine.openai.temperature import Temperature -from askai.core.router.agent_tools import features -from askai.core.support.langchain_support import lc_llm -from askai.core.support.shared_instances import shared +import logging as log +import openai class TaskAgent(metaclass=Singleton): diff --git a/src/main/askai/core/support/chat_context.py b/src/main/askai/core/support/chat_context.py index 1ca9d166..3b50b998 100644 --- a/src/main/askai/core/support/chat_context.py +++ b/src/main/askai/core/support/chat_context.py @@ -13,18 +13,17 @@ Copyright (c) 2024, HomeSetup """ -import os -import re +from askai.core.component.cache_service import cache +from askai.exception.exceptions import TokenLengthExceeded from collections import defaultdict, deque, namedtuple from functools import partial, reduce -from typing import Any, AnyStr, Literal, Optional, TypeAlias, get_args - from hspylib.core.preconditions import check_argument from langchain_community.chat_message_histories.in_memory import ChatMessageHistory from langchain_core.messages import AIMessage, HumanMessage, SystemMessage +from typing import Any, AnyStr, get_args, Literal, Optional, TypeAlias -from askai.core.component.cache_service import cache -from askai.exception.exceptions import TokenLengthExceeded +import os +import re ChatRoles: TypeAlias = Literal["system", "human", "assistant"] diff --git a/src/main/askai/core/support/shared_instances.py b/src/main/askai/core/support/shared_instances.py index b1b83c61..a0968a23 100644 --- a/src/main/askai/core/support/shared_instances.py +++ b/src/main/askai/core/support/shared_instances.py @@ -12,8 +12,6 @@ Copyright (c) 2024, HomeSetup """ -from textwrap import dedent - from askai.__classpath__ import classpath from askai.core.askai_configs import configs from askai.core.askai_messages import msg @@ -35,6 +33,7 @@ from langchain.memory import ConversationBufferWindowMemory from langchain.memory.chat_memory import BaseChatMemory from pathlib import Path +from textwrap import dedent from typing import Any, Optional import os diff --git a/src/main/askai/core/support/text_formatter.py b/src/main/askai/core/support/text_formatter.py index 821b72a4..50cf0625 100644 --- a/src/main/askai/core/support/text_formatter.py +++ b/src/main/askai/core/support/text_formatter.py @@ -12,7 +12,6 @@ from clitt.core.term.cursor import cursor from hspylib.core.metaclass.singleton import Singleton -from hspylib.core.tools.commons import console_out from hspylib.core.tools.text_tools import ensure_endswith, ensure_startswith, strip_escapes from hspylib.modules.cli.vt100.vt_code import VtCode from hspylib.modules.cli.vt100.vt_color import VtColor @@ -134,16 +133,14 @@ def display_markdown(self, text: AnyStr) -> None: :param text: The markdown-formatted text to be displayed. """ colorized: str = VtColor.colorize(VtCode.decode(self.beautify(str(text)))) - # cursor.write(colorized, markdown=True) - console_out.print(colorized) + cursor.write(colorized, markdown=True) def display_text(self, text: AnyStr) -> None: """Display a VT100 formatted text. :param text: The VT100 formatted text to be displayed. """ colorized: str = VtColor.colorize(VtCode.decode(self.beautify(str(text)))) - # cursor.write(colorized) - console_out.print(colorized) + cursor.write(colorized) def commander_print(self, text: AnyStr) -> None: """Display an AskAI-commander formatted text.