Skip to content

Commit

Permalink
chore: minor refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
goldfishh committed Jan 15, 2024
1 parent ddc02c3 commit d294f16
Show file tree
Hide file tree
Showing 58 changed files with 117 additions and 126 deletions.
1 change: 0 additions & 1 deletion .env.template
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,4 @@ LLM_API_BASE_URL=
MODEL_NAME=
THINK_DEPTH=
REQUEST_TIMEOUT=
PROXY=http://192.168.7.1:7890
DEBUG=
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.ipynb filter=strip-notebook-output
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
**/dev/
**/__pycache__/

*.tar.gz
*.whl
Expand All @@ -7,12 +8,13 @@ build/
*.egg-info/
dist/
log/
**/.DS_Store
.idea/
.vscode/
*.pyc
**.log

.env
.DS_Store
config.json

# dev
Expand Down
22 changes: 8 additions & 14 deletions chatgpt_tool_hub/apps/app_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@


class AppFactory:
def __init__(self, console=Console()):
def __init__(self, console=Console(quiet=True)):
self.default_tools_list = []
self.console = console

Expand All @@ -20,16 +20,16 @@ def init_env(self, **kwargs):
# set log level
use_log = get_from_dict_or_env(kwargs, "log", "LOG", True)
debug_flag = get_from_dict_or_env(kwargs, "debug", "DEBUG", False)
if not str(use_log).lower() in TRUE_VALUES_SET:
if str(use_log).lower() == "false":
refresh(logging.CRITICAL)
elif str(debug_flag).lower() in TRUE_VALUES_SET:
elif str(debug_flag).lower() == "true":
refresh(logging.DEBUG)
else:
refresh(logging.INFO)

# default tools
no_default_flag = get_from_dict_or_env(kwargs, "no_default", "NO_DEFAULT", False)
if str(no_default_flag).lower() in TRUE_VALUES_SET:
if str(no_default_flag).lower() == "true":
self.default_tools_list = []
else:
from ..tools.python.tool import default_tool_name as python_tool_name
Expand All @@ -38,16 +38,10 @@ def init_env(self, **kwargs):
from ..tools.meteo.tool import default_tool_name as meteo_name
self.default_tools_list = [python_tool_name, terminal_tool_name, get_tool_name, meteo_name]

# set proxy
# _proxy = get_from_dict_or_env(kwargs, "proxy", "PROXY", "")
# if not _proxy:
# os.environ["http_proxy"] = str(_proxy)
# os.environ["https_proxy"] = str(_proxy)

# dynamic loading tool
dynamic_tool_loader()
dynamic_tool_loader(**kwargs)

def create_app(self, app_type: str = 'victorinox', tools_list: list = None, console=Console(quiet=True), **kwargs) -> App:
def create_app(self, app_type: str = 'victorinox', tools_list: list = None, **kwargs) -> App:
tools_list = tools_list if tools_list else []

# todo remove it
Expand All @@ -71,11 +65,11 @@ def create_app(self, app_type: str = 'victorinox', tools_list: list = None, cons
if default_tool not in tools_list:
tools_list.append(default_tool)

from ..tools.all_tool_list import main_tool_register
from ..tools.tool_register import main_tool_register
if "browser" in main_tool_register.get_registered_tool_names():
tools_list = ["browser" if tool == "url-get" else tool for tool in tools_list]

app = Victorinox(console, **build_model_params(kwargs))
app = Victorinox(self.console, **build_model_params(kwargs))
app.create(tools_list, **kwargs)
return app
else:
Expand Down
4 changes: 2 additions & 2 deletions chatgpt_tool_hub/apps/victorinox.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from ..engine.initialize import init_tool_engine as init_engine
from ..models import MEMORY_MAX_TOKENS_NUM
from ..models.model_factory import ModelFactory
from ..tools.all_tool_list import main_tool_register
from ..tools.tool_register import main_tool_register
from ..tools.base_tool import BaseTool
from ..tools.load_tools import load_tools

Expand All @@ -24,7 +24,7 @@ def __init__(self, console=Console(), **app_kwargs):

self.memory = ConversationTokenBufferMemory(llm=self.llm, memory_key="chat_history",
output_key='output', max_token_limit=MEMORY_MAX_TOKENS_NUM)
self.think_depth = get_from_dict_or_env(app_kwargs, "think_depth", "THINK_DEPTH", 3)
self.think_depth = get_from_dict_or_env(app_kwargs, "think_depth", "THINK_DEPTH", 2)

self.console = console

Expand Down
6 changes: 3 additions & 3 deletions chatgpt_tool_hub/bots/chat_bot/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -166,13 +166,13 @@ def _extract_tool_and_input(self, llm_output: str) -> Optional[Tuple[str, str]]:
except Exception as e:
LOG.error(f"Error: {repr(e)}")

if action.lower() == "answer-user" and action_input in ['', '空', '无']:
if str(action).lower() == "answer-user" and action_input in ['', '空', '无']:
action_input = llm_reply_json.get('thoughts', {}).get('speak', '')

if action.lower() not in self.allowed_tools:
if str(action).lower() not in self.allowed_tools:
return "answer-user", action_input

if self.console and action.lower() != "answer-user":
if self.console and str(action).lower() != "answer-user":
self.console.print(f"√ 我在用 [bold cyan]{action}[/] 工具...")

LOG.info(f"执行Tool: {action}中...")
Expand Down
2 changes: 1 addition & 1 deletion chatgpt_tool_hub/engine/bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ def return_stopped_response(
if action:
return (
BotFinish({"output": action_input}, full_output)
if action.lower() in ['answer-user']
if str(action).lower() in ['answer-user']
else BotFinish({"output": "受think_depth限制,系统强制终止了LLM-OS"}, full_output)
)
else:
Expand Down
2 changes: 1 addition & 1 deletion chatgpt_tool_hub/models/model_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def match_model(self, name: str) -> str:
def create_llm_model(self, **llm_model_kwargs):
_model = get_from_dict_or_env(llm_model_kwargs, "model_name", "MODEL_NAME", DEFAULT_MODEL_NAME)
match_llm_model = self.match_model(_model)
if match_llm_model == "chatgpt":
if True or match_llm_model == "chatgpt":
return ChatOpenAI(**llm_model_kwargs)
else:
raise NotImplementedError("implement me!")
22 changes: 14 additions & 8 deletions chatgpt_tool_hub/tools/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ def get_packages(path):
return packages


def dynamic_tool_loader():
def dynamic_tool_loader(**kwargs):
try:
all_tool_package_list = get_packages(f"{os.path.dirname(os.path.abspath(__file__))}")
except Exception as e:
Expand All @@ -26,20 +26,26 @@ def dynamic_tool_loader():
import importlib
importlib.import_module(f".tools.{package_name}", package="chatgpt_tool_hub")
except Exception as e:
LOG.info(f"[{package_name}] init failed, error_info: {repr(e)}")
LOG.debug(f"import [{package_name}] failed, error_info: {repr(e)}")

from .tool_register import main_tool_register
registered_tool = main_tool_register.get_registered_tool()
invalid_tool_list = []
for name, (func, _) in registered_tool.items():
try:
_ = func(**kwargs)
except Exception as e:
invalid_tool_list.append(name)
LOG.info(f"[{name}] initialization failed, error_info: {repr(e)}")
for tool in invalid_tool_list:
main_tool_register.unregister_tool(tool)

from .base_tool import BaseTool
from .python import PythonTool
from .web_requests import BrowserTool
from .summary import SummaryTool
from .terminal import TerminalTool

__all__ = [
"BaseTool",
"SummaryTool",
"PythonTool",
"TerminalTool",
"BrowserTool",

"ToolRegister",

Expand Down
10 changes: 0 additions & 10 deletions chatgpt_tool_hub/tools/all_tool_list.py

This file was deleted.

2 changes: 1 addition & 1 deletion chatgpt_tool_hub/tools/arxiv_search/tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from ...models import build_model_params
from ...models.model_factory import ModelFactory
from ...prompts import PromptTemplate
from ..all_tool_list import main_tool_register
from ..tool_register import main_tool_register
from .api_prompt import ARXIV_PROMPT
from .wrapper import ArxivAPIWrapper
from .. import BaseTool
Expand Down
2 changes: 1 addition & 1 deletion chatgpt_tool_hub/tools/bing_search/tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from ...models.model_factory import ModelFactory
from ...common.utils import get_from_dict_or_env

from ..all_tool_list import main_tool_register
from ..tool_register import main_tool_register
from .. import BaseTool
from .wrapper import BingSearchAPIWrapper
from .prompt import QUERY_PROMPT
Expand Down
2 changes: 1 addition & 1 deletion chatgpt_tool_hub/tools/email/tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from ...models.model_factory import ModelFactory
from ...common.utils import get_from_dict_or_env

from ..all_tool_list import main_tool_register
from ..tool_register import main_tool_register
from .. import BaseTool
from .prompt import QUERY_PROMPT

Expand Down
2 changes: 1 addition & 1 deletion chatgpt_tool_hub/tools/google_search/tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from ...common.utils import get_from_dict_or_env
from ...common.log import LOG
from .. import BaseTool
from ..all_tool_list import main_tool_register
from ..tool_register import main_tool_register
from .wrapper import GoogleSearchAPIWrapper
from .prompt import QUERY_PROMPT

Expand Down
2 changes: 1 addition & 1 deletion chatgpt_tool_hub/tools/hello_tool/tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from rich.console import Console

from .. import BaseTool
from ..all_tool_list import main_tool_register
from ..tool_register import main_tool_register

default_tool_name = "hello-tool"

Expand Down
1 change: 0 additions & 1 deletion chatgpt_tool_hub/tools/load_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

from ..common.callbacks import BaseCallbackManager
from ..common.log import LOG
from ..common.utils import get_from_dict_or_env
from . import BaseTool, ToolRegister

from rich.console import Console
Expand Down
2 changes: 1 addition & 1 deletion chatgpt_tool_hub/tools/meteo/tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from ...chains.api import APIChain
from ...models import build_model_params
from ...models.model_factory import ModelFactory
from ..all_tool_list import main_tool_register
from ..tool_register import main_tool_register
from .. import BaseTool
from .docs_prompt import OPEN_METEO_DOCS

Expand Down
2 changes: 1 addition & 1 deletion chatgpt_tool_hub/tools/news/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from .. import ToolRegister

# news_tool_register = ToolRegister()
from ..all_tool_list import main_tool_register as news_tool_register
from ..tool_register import main_tool_register as news_tool_register

try:
all_tool_package_list = get_packages(f"{os.path.dirname(os.path.abspath(__file__))}")
Expand Down
2 changes: 1 addition & 1 deletion chatgpt_tool_hub/tools/news/tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from ...engine.initialize import init_tool_engine
from ...models import build_model_params
from ...models.model_factory import ModelFactory
from ..all_tool_list import main_tool_register
from ..tool_register import main_tool_register
from .. import BaseTool
from ..load_tools import load_tools
from . import news_tool_register
Expand Down
2 changes: 1 addition & 1 deletion chatgpt_tool_hub/tools/python/tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from ...common.utils import get_from_dict_or_env

from .. import BaseTool
from ..all_tool_list import main_tool_register
from ..tool_register import main_tool_register
from .prompt import QUERY_PROMPT

default_tool_name = "python"
Expand Down
2 changes: 1 addition & 1 deletion chatgpt_tool_hub/tools/searxng_search/tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from ...common.utils import get_from_dict_or_env
from ...common.log import LOG
from .. import BaseTool
from ..all_tool_list import main_tool_register
from ..tool_register import main_tool_register
from .wrapper import SearxSearchWrapper
from .prompt import QUERY_PROMPT

Expand Down
Loading

0 comments on commit d294f16

Please sign in to comment.