From 993f8d0b709e60beb0b67698a107cf1e3d3c484b Mon Sep 17 00:00:00 2001 From: gjl <2802427218@qq.com> Date: Thu, 25 Jul 2024 17:01:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=B7=A5=E5=85=B7API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mindpilot/app/api/api_schemas.py | 5 ++--- src/mindpilot/app/api/api_server.py | 17 +++-------------- src/mindpilot/app/api/tool_routes.py | 11 +++++++++++ src/mindpilot/app/chat/chat.py | 3 ++- src/mindpilot/app/configs/tool_config.py | 18 ------------------ src/mindpilot/app/tools/search_internet.py | 2 +- src/mindpilot/app/tools/weather_check.py | 2 +- src/mindpilot/app/tools/wolfram.py | 2 +- .../utils/{openai_utils.py => system_utils.py} | 0 src/mindpilot/main.py | 2 +- 10 files changed, 22 insertions(+), 40 deletions(-) rename src/mindpilot/app/utils/{openai_utils.py => system_utils.py} (100%) diff --git a/src/mindpilot/app/api/api_schemas.py b/src/mindpilot/app/api/api_schemas.py index 26de7ba..b666119 100644 --- a/src/mindpilot/app/api/api_schemas.py +++ b/src/mindpilot/app/api/api_schemas.py @@ -12,15 +12,14 @@ from openai.types.chat import ( completion_create_params, ) -from ..utils.openai_utils import MsgType +from ..utils.system_utils import MsgType # from chatchat.configs import DEFAULT_LLM_MODEL, TEMPERATURE -DEFAULT_LLM_MODEL = None # TODO 配置文件 +DEFAULT_LLM_MODEL = None # TODO 配置文件 TEMPERATURE = 0.8 from ..pydantic_v2 import AnyUrl, BaseModel, Field - class OpenAIBaseInput(BaseModel): user: Optional[str] = None # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. diff --git a/src/mindpilot/app/api/api_server.py b/src/mindpilot/app/api/api_server.py index 4d4c5fa..20d007f 100644 --- a/src/mindpilot/app/api/api_server.py +++ b/src/mindpilot/app/api/api_server.py @@ -1,18 +1,9 @@ -import argparse -import os -from typing import Literal - -import uvicorn from fastapi import Body, FastAPI from fastapi.middleware.cors import CORSMiddleware -from fastapi.staticfiles import StaticFiles from starlette.responses import RedirectResponse from .chat_routes import chat_router -# from .openai_routes import openai_router -# from .server_routes import server_router -# from .tool_routes import tool_router -# from chatchat.server.chat.completion import completion +from .tool_routes import tool_router def create_app(run_mode: str = None): @@ -30,8 +21,6 @@ def create_app(run_mode: str = None): return RedirectResponse(url="/docs") app.include_router(chat_router) - # app.include_router(tool_router) - # app.include_router(openai_router) - # app.include_router(server_router) + app.include_router(tool_router) - return app \ No newline at end of file + return app diff --git a/src/mindpilot/app/api/tool_routes.py b/src/mindpilot/app/api/tool_routes.py index e69de29..2d2f7a7 100644 --- a/src/mindpilot/app/api/tool_routes.py +++ b/src/mindpilot/app/api/tool_routes.py @@ -0,0 +1,11 @@ +from fastapi import APIRouter +from ..utils.system_utils import get_tool + +tool_router = APIRouter(prefix="/tools", tags=["MindPilot对话"]) + + +@tool_router.get("/available_tools", summary="获取可用工具") +async def get_available_tools(): + all_tools = get_tool().values() + tool_names = [tool.name for tool in all_tools] + return {"tools": tool_names} diff --git a/src/mindpilot/app/chat/chat.py b/src/mindpilot/app/chat/chat.py index 240d7d1..0d7b1d4 100644 --- a/src/mindpilot/app/chat/chat.py +++ b/src/mindpilot/app/chat/chat.py @@ -17,7 +17,7 @@ from ..callback_handler.agent_callback_handler import ( ) from ..chat.utils import History from ..configs import MODEL_CONFIG, TOOL_CONFIG -from ..utils.openai_utils import get_ChatOpenAI, get_prompt_template, get_tool, wrap_done, MsgType +from ..utils.system_utils import get_ChatOpenAI, get_prompt_template, get_tool, wrap_done, MsgType def create_models_from_config(configs, callbacks, stream): @@ -102,6 +102,7 @@ async def chat( callbacks=callbacks, configs=chat_model_config, stream=stream ) all_tools = get_tool().values() + print(all_tools) tool_configs = tool_config or TOOL_CONFIG tools = [tool for tool in all_tools if tool.name in tool_configs] tools = [t.copy(update={"callbacks": callbacks}) for t in tools] diff --git a/src/mindpilot/app/configs/tool_config.py b/src/mindpilot/app/configs/tool_config.py index c441358..e47d302 100644 --- a/src/mindpilot/app/configs/tool_config.py +++ b/src/mindpilot/app/configs/tool_config.py @@ -49,9 +49,6 @@ TOOL_CONFIG = { "use": False, "api_key": "SE7CGiRD5dvls08Ub", }, - # "search_youtube": { - # "use": False, - # }, "wolfram": { "use": False, "appid": "PWKVLW-6ETR93QX6Q", @@ -59,19 +56,4 @@ TOOL_CONFIG = { "calculate": { "use": False, }, - # "vqa_processor": { - # "use": False, - # "model_path": "your model path", - # "tokenizer_path": "your tokenizer path", - # "device": "cuda:1", - # }, - # "aqa_processor": { - # "use": False, - # "model_path": "your model path", - # "tokenizer_path": "yout tokenizer path", - # "device": "cuda:2", - # }, - # "text2images": { - # "use": False, - # }, } \ No newline at end of file diff --git a/src/mindpilot/app/tools/search_internet.py b/src/mindpilot/app/tools/search_internet.py index 1fca235..ae581ce 100644 --- a/src/mindpilot/app/tools/search_internet.py +++ b/src/mindpilot/app/tools/search_internet.py @@ -12,7 +12,7 @@ from ..pydantic_v1 import Field # from chatchat.server.utils import get_tool_config from .tools_registry import BaseToolOutput, regist_tool -from ..utils.openai_utils import get_tool_config +from ..utils.system_utils import get_tool_config def bing_search(text, config): diff --git a/src/mindpilot/app/tools/weather_check.py b/src/mindpilot/app/tools/weather_check.py index 4f17b2b..1eef750 100644 --- a/src/mindpilot/app/tools/weather_check.py +++ b/src/mindpilot/app/tools/weather_check.py @@ -6,7 +6,7 @@ import requests from ..pydantic_v1 import Field from .tools_registry import BaseToolOutput, regist_tool -from ..utils.openai_utils import get_tool_config +from ..utils.system_utils import get_tool_config @regist_tool(title="天气查询") diff --git a/src/mindpilot/app/tools/wolfram.py b/src/mindpilot/app/tools/wolfram.py index 3edf5cf..8461ae4 100644 --- a/src/mindpilot/app/tools/wolfram.py +++ b/src/mindpilot/app/tools/wolfram.py @@ -3,7 +3,7 @@ from ..pydantic_v1 import Field from .tools_registry import BaseToolOutput, regist_tool -from ..utils.openai_utils import get_tool_config +from ..utils.system_utils import get_tool_config @regist_tool diff --git a/src/mindpilot/app/utils/openai_utils.py b/src/mindpilot/app/utils/system_utils.py similarity index 100% rename from src/mindpilot/app/utils/openai_utils.py rename to src/mindpilot/app/utils/system_utils.py diff --git a/src/mindpilot/main.py b/src/mindpilot/main.py index e99af2f..338b226 100644 --- a/src/mindpilot/main.py +++ b/src/mindpilot/main.py @@ -39,7 +39,7 @@ def run_api_server( ): import uvicorn from app.api.api_server import create_app - from src.mindpilot.app.utils.openai_utils import set_httpx_config + from src.mindpilot.app.utils.system_utils import set_httpx_config set_httpx_config() app = create_app(run_mode=run_mode)