From f889fa37752d52a80b6e1562cb68ecb906a98ab8 Mon Sep 17 00:00:00 2001 From: Fangyin Cheng Date: Thu, 18 Jul 2024 17:50:40 +0800 Subject: [PATCH] feat(core): Multiple ways to run dbgpts (#1734) --- dbgpt/cli/cli_scripts.py | 2 +- dbgpt/client/_cli.py | 381 ++++++++++++++++-- dbgpt/client/client.py | 10 + dbgpt/client/flow.py | 183 ++++++++- dbgpt/core/awel/dag/base.py | 23 +- dbgpt/core/awel/dag/dag_manager.py | 87 +++- dbgpt/core/awel/flow/flow_factory.py | 4 + dbgpt/core/awel/operators/base.py | 18 +- dbgpt/core/awel/trigger/base.py | 13 +- dbgpt/core/awel/trigger/http_trigger.py | 21 +- dbgpt/core/awel/trigger/trigger_manager.py | 33 +- dbgpt/core/awel/util/chat_util.py | 323 +++++++++++++++ dbgpt/serve/flow/service/service.py | 250 ++---------- dbgpt/util/dbgpts/loader.py | 73 ++-- docs/docs/dbgpts/introduction.md | 280 +++++++++++++ docs/sidebars.js | 10 + .../awel_flow_simple_streaming_chat_1.png | Bin 0 -> 23388 bytes .../awel_flow_simple_streaming_chat_2.png | Bin 0 -> 264824 bytes examples/awel/simple_chat_dag_example.py | 3 +- 19 files changed, 1410 insertions(+), 304 deletions(-) create mode 100644 dbgpt/core/awel/util/chat_util.py create mode 100644 docs/docs/dbgpts/introduction.md create mode 100644 docs/static/img/dbgpts/awel_flow_simple_streaming_chat_1.png create mode 100644 docs/static/img/dbgpts/awel_flow_simple_streaming_chat_2.png diff --git a/dbgpt/cli/cli_scripts.py b/dbgpt/cli/cli_scripts.py index 5b170f9c2..d1c9fa368 100644 --- a/dbgpt/cli/cli_scripts.py +++ b/dbgpt/cli/cli_scripts.py @@ -201,7 +201,7 @@ except ImportError as e: logging.warning(f"Integrating dbgpt dbgpts command line tool failed: {e}") try: - from dbgpt.client._cli import run_flow + from dbgpt.client._cli import flow as run_flow add_command_alias(run_flow, name="flow", parent_group=run) except ImportError as e: diff --git a/dbgpt/client/_cli.py b/dbgpt/client/_cli.py index fa73aa69e..3dd29bbbe 100644 --- a/dbgpt/client/_cli.py +++ b/dbgpt/client/_cli.py @@ -1,22 +1,55 @@ """CLI for DB-GPT client.""" +import asyncio import functools import json import time import uuid -from typing import Any, Dict +from typing import Any, AsyncIterator, Callable, Dict, Tuple, cast import click +from dbgpt.component import SystemApp +from dbgpt.core.awel import DAG, BaseOperator, DAGVar +from dbgpt.core.awel.dag.dag_manager import DAGMetadata, _parse_metadata +from dbgpt.core.awel.flow.flow_factory import FlowFactory from dbgpt.util import get_or_create_event_loop from dbgpt.util.console import CliLogger from dbgpt.util.i18n_utils import _ from .client import Client from .flow import list_flow +from .flow import run_flow_cmd as client_run_flow_cmd cl = CliLogger() +_LOCAL_MODE: bool | None = False +_FILE_PATH: str | None = None + + +@click.group() +@click.option( + "--local", + required=False, + type=bool, + default=False, + is_flag=True, + help="Whether use local mode(run local AWEL file)", +) +@click.option( + "-f", + "--file", + type=str, + default=None, + required=False, + help=_("The path of the AWEL flow"), +) +def flow(local: bool = False, file: str | None = None): + """Run a AWEL flow.""" + global _LOCAL_MODE, _FILE_PATH + _LOCAL_MODE = local + _FILE_PATH = file + def add_base_flow_options(func): """Add base flow options to the command.""" @@ -124,32 +157,229 @@ def add_chat_options(func): return _wrapper -@click.command(name="flow") +@flow.command(name="chat") @add_base_flow_options @add_chat_options -def run_flow(name: str, uid: str, data: str, interactive: bool, **kwargs): +def run_flow_chat(name: str, uid: str, data: str, interactive: bool, **kwargs): """Run a AWEL flow.""" + json_data = _parse_chat_json_data(data, **kwargs) + stream = "stream" in json_data and str(json_data["stream"]).lower() in ["true", "1"] + loop = get_or_create_event_loop() + if _LOCAL_MODE: + _run_flow_chat_local(loop, name, interactive, json_data, stream) + return + client = Client() - loop = get_or_create_event_loop() - res = loop.run_until_complete(list_flow(client, name, uid)) + # AWEL flow store the python module name now, so we need to replace "-" with "_" + new_name = name.replace("-", "_") + res = loop.run_until_complete(list_flow(client, new_name, uid)) if not res: cl.error("Flow not found with the given name or uid", exit_code=1) if len(res) > 1: cl.error("More than one flow found", exit_code=1) flow = res[0] - json_data = _parse_json_data(data, **kwargs) json_data["chat_param"] = flow.uid json_data["chat_mode"] = "chat_flow" - stream = "stream" in json_data and str(json_data["stream"]).lower() in ["true", "1"] if stream: - loop.run_until_complete(_chat_stream(client, interactive, json_data)) + _run_flow_chat_stream(loop, client, interactive, json_data) else: - loop.run_until_complete(_chat(client, interactive, json_data)) + _run_flow_chat(loop, client, interactive, json_data) -def _parse_json_data(data: str, **kwargs): +@flow.command(name="cmd") +@add_base_flow_options +@click.option( + "-d", + "--data", + type=str, + default=None, + required=False, + help=_("The json data to run AWEL flow, if set, will overwrite other options"), +) +@click.option( + "--output_key", + type=str, + default=None, + required=False, + help=_( + "The output key of the AWEL flow, if set, it will try to get the output by the " + "key" + ), +) +def run_flow_cmd( + name: str, uid: str, data: str | None = None, output_key: str | None = None +): + """Run a AWEL flow with command mode.""" + json_data = _parse_json_data(data) + loop = get_or_create_event_loop() + + if _LOCAL_MODE: + _run_flow_cmd_local(loop, name, json_data, output_key) + else: + _run_flow_cmd(loop, name, uid, json_data, output_key) + + +def _run_flow_cmd_local( + loop: asyncio.BaseEventLoop, + name: str, + data: Dict[str, Any] | None = None, + output_key: str | None = None, +): + from dbgpt.core.awel.util.chat_util import safe_chat_stream_with_dag_task + + end_node, dag, dag_metadata, call_body = _parse_and_check_local_dag( + name, _FILE_PATH, data + ) + + async def _streaming_call(): + start_time = time.time() + try: + cl.debug("[~info] Flow started") + cl.debug(f"[~info] JSON data: {json.dumps(data, ensure_ascii=False)}") + cl.debug("Command output: ") + async for out in safe_chat_stream_with_dag_task( + end_node, call_body, incremental=True, covert_to_str=True + ): + if not out.success: + cl.error(out.text) + else: + cl.print(out.text, end="") + except Exception as e: + cl.error(f"Failed to run flow: {e}", exit_code=1) + finally: + time_cost = round(time.time() - start_time, 2) + cl.success(f"\n:tada: Flow finished, timecost: {time_cost} s") + + loop.run_until_complete(_streaming_call()) + + +def _run_flow_cmd( + loop: asyncio.BaseEventLoop, + name: str | None = None, + uid: str | None = None, + json_data: Dict[str, Any] | None = None, + output_key: str | None = None, +): + client = Client() + + def _non_streaming_callback(text: str): + parsed_text: Any = None + if output_key: + try: + json_out = json.loads(text) + parsed_text = json_out.get(output_key) + except Exception as e: + cl.warning(f"Failed to parse output by key: {output_key}, {e}") + if not parsed_text: + parsed_text = text + cl.markdown(parsed_text) + + def _streaming_callback(text: str): + cl.print(text, end="") + + async def _client_run_cmd(): + cl.debug("[~info] Flow started") + cl.debug(f"[~info] JSON data: {json.dumps(json_data, ensure_ascii=False)}") + cl.debug("Command output: ") + start_time = time.time() + # AWEL flow store the python module name now, so we need to replace "-" with "_" + new_name = name.replace("-", "_") + try: + await client_run_flow_cmd( + client, + new_name, + uid, + json_data, + non_streaming_callback=_non_streaming_callback, + streaming_callback=_streaming_callback, + ) + except Exception as e: + cl.error(f"Failed to run flow: {e}", exit_code=1) + finally: + time_cost = round(time.time() - start_time, 2) + cl.success(f"\n:tada: Flow finished, timecost: {time_cost} s") + + loop.run_until_complete(_client_run_cmd()) + + +def _parse_and_check_local_dag( + name: str, + filepath: str | None = None, + data: Dict[str, Any] | None = None, +) -> Tuple[BaseOperator, DAG, DAGMetadata, Any]: + + dag, dag_metadata = _parse_local_dag(name, filepath) + + return _check_local_dag(dag, dag_metadata, data) + + +def _check_local_dag( + dag: DAG, dag_metadata: DAGMetadata, data: Dict[str, Any] | None = None +) -> Tuple[BaseOperator, DAG, DAGMetadata, Any]: + from dbgpt.core.awel import HttpTrigger + + leaf_nodes = dag.leaf_nodes + if not leaf_nodes: + cl.error("No leaf nodes found in the flow", exit_code=1) + if len(leaf_nodes) > 1: + cl.error("More than one leaf nodes found in the flow", exit_code=1) + if not isinstance(leaf_nodes[0], BaseOperator): + cl.error("Unsupported leaf node type", exit_code=1) + end_node = cast(BaseOperator, leaf_nodes[0]) + call_body: Any = data + trigger_nodes = dag.trigger_nodes + if trigger_nodes: + if len(trigger_nodes) > 1: + cl.error("More than one trigger nodes found in the flow", exit_code=1) + trigger = trigger_nodes[0] + if isinstance(trigger, HttpTrigger): + http_trigger = trigger + if http_trigger._req_body and data: + call_body = http_trigger._req_body(**data) + else: + cl.error("Unsupported trigger type", exit_code=1) + return end_node, dag, dag_metadata, call_body + + +def _parse_local_dag(name: str, filepath: str | None = None) -> Tuple[DAG, DAGMetadata]: + + system_app = SystemApp() + DAGVar.set_current_system_app(system_app) + + if not filepath: + # Load DAG from installed package(dbgpts) + from dbgpt.util.dbgpts.loader import ( + _flow_package_to_flow_panel, + _load_flow_package_from_path, + ) + + flow_panel = _flow_package_to_flow_panel(_load_flow_package_from_path(name)) + if flow_panel.define_type == "json": + factory = FlowFactory() + factory.pre_load_requirements(flow_panel) + dag = factory.build(flow_panel) + else: + dag = flow_panel.flow_dag + return dag, _parse_metadata(dag) + else: + from dbgpt.core.awel.dag.loader import _process_file + + dags = _process_file(filepath) + if not dags: + cl.error("No DAG found in the file", exit_code=1) + if len(dags) > 1: + dags = [dag for dag in dags if dag.dag_id == name] + # Filter by name + if len(dags) > 1: + cl.error("More than one DAG found in the file", exit_code=1) + if not dags: + cl.error("No DAG found with the given name", exit_code=1) + return dags[0], _parse_metadata(dags[0]) + + +def _parse_chat_json_data(data: str, **kwargs): json_data = {} if data: try: @@ -170,7 +400,100 @@ def _parse_json_data(data: str, **kwargs): return json_data -async def _chat_stream(client: Client, interactive: bool, json_data: Dict[str, Any]): +def _parse_json_data(data: str | None) -> Dict[str, Any] | None: + if not data: + return None + try: + return json.loads(data) + except Exception as e: + cl.error(f"Invalid JSON data: {data}, {e}", exit_code=1) + # Should not reach here + return None + + +def _run_flow_chat_local( + loop: asyncio.BaseEventLoop, + name: str, + interactive: bool, + json_data: Dict[str, Any], + stream: bool, +): + from dbgpt.core.awel.util.chat_util import ( + parse_single_output, + safe_chat_stream_with_dag_task, + ) + + dag, dag_metadata = _parse_local_dag(name, _FILE_PATH) + + async def _streaming_call(_call_body: Dict[str, Any]): + nonlocal dag, dag_metadata + + end_node, dag, dag_metadata, handled_call_body = _check_local_dag( + dag, dag_metadata, _call_body + ) + async for out in safe_chat_stream_with_dag_task( + end_node, handled_call_body, incremental=True, covert_to_str=True + ): + if not out.success: + cl.error(f"Error: {out.text}") + raise Exception(out.text) + else: + yield out.text + + async def _call(_call_body: Dict[str, Any]): + nonlocal dag, dag_metadata + + end_node, dag, dag_metadata, handled_call_body = _check_local_dag( + dag, dag_metadata, _call_body + ) + res = await end_node.call(handled_call_body) + parsed_res = parse_single_output(res, is_sse=False, covert_to_str=True) + if not parsed_res.success: + raise Exception(parsed_res.text) + return parsed_res.text + + if stream: + loop.run_until_complete(_chat_stream(_streaming_call, interactive, json_data)) + else: + loop.run_until_complete(_chat(_call, interactive, json_data)) + + +def _run_flow_chat_stream( + loop: asyncio.BaseEventLoop, + client: Client, + interactive: bool, + json_data: Dict[str, Any], +): + async def _streaming_call(_call_body: Dict[str, Any]): + async for out in client.chat_stream(**_call_body): + if out.choices: + text = out.choices[0].delta.content + if text: + yield text + + loop.run_until_complete(_chat_stream(_streaming_call, interactive, json_data)) + + +def _run_flow_chat( + loop: asyncio.BaseEventLoop, + client: Client, + interactive: bool, + json_data: Dict[str, Any], +): + async def _call(_call_body: Dict[str, Any]): + res = await client.chat(**_call_body) + if res.choices: + text = res.choices[0].message.content + return text + + loop.run_until_complete(_chat(_call, interactive, json_data)) + + +async def _chat_stream( + streaming_func: Callable[[Dict[str, Any]], AsyncIterator[str]], + interactive: bool, + json_data: Dict[str, Any], +): user_input = json_data.get("messages", "") if "conv_uid" not in json_data and interactive: json_data["conv_uid"] = str(uuid.uuid4()) @@ -187,16 +510,14 @@ async def _chat_stream(client: Client, interactive: bool, json_data: Dict[str, A json_data["messages"] = user_input if first_message: cl.info("You: " + user_input) - cl.info("Chat stream started") - cl.debug(f"JSON data: {json.dumps(json_data, ensure_ascii=False)}") + cl.debug("[~info] Chat stream started") + cl.debug(f"[~info] JSON data: {json.dumps(json_data, ensure_ascii=False)}") full_text = "" cl.print("Bot: ") - async for out in client.chat_stream(**json_data): - if out.choices: - text = out.choices[0].delta.content - if text: - full_text += text - cl.print(text, end="") + async for text in streaming_func(json_data): + if text: + full_text += text + cl.print(text, end="") end_time = time.time() time_cost = round(end_time - start_time, 2) cl.success(f"\n:tada: Chat stream finished, timecost: {time_cost} s") @@ -210,7 +531,11 @@ async def _chat_stream(client: Client, interactive: bool, json_data: Dict[str, A break -async def _chat(client: Client, interactive: bool, json_data: Dict[str, Any]): +async def _chat( + func: Callable[[Dict[str, Any]], Any], + interactive: bool, + json_data: Dict[str, Any], +): user_input = json_data.get("messages", "") if "conv_uid" not in json_data and interactive: json_data["conv_uid"] = str(uuid.uuid4()) @@ -228,17 +553,19 @@ async def _chat(client: Client, interactive: bool, json_data: Dict[str, Any]): if first_message: cl.info("You: " + user_input) - cl.info("Chat started") - cl.debug(f"JSON data: {json.dumps(json_data, ensure_ascii=False)}") - res = await client.chat(**json_data) + cl.debug("[~info] Chat started") + cl.debug(f"[~info] JSON data: {json.dumps(json_data, ensure_ascii=False)}") + res = await func(json_data) cl.print("Bot: ") - if res.choices: - text = res.choices[0].message.content - cl.markdown(text) + if res: + cl.markdown(res) time_cost = round(time.time() - start_time, 2) cl.success(f"\n:tada: Chat stream finished, timecost: {time_cost} s") except Exception as e: - cl.error(f"Chat failed: {e}", exit_code=1) + import traceback + + messages = traceback.format_exc() + cl.error(f"Chat failed: {e}\n, error detail: {messages}", exit_code=1) finally: first_message = False if interactive: diff --git a/dbgpt/client/client.py b/dbgpt/client/client.py index da5f235d8..ede0561bf 100644 --- a/dbgpt/client/client.py +++ b/dbgpt/client/client.py @@ -1,4 +1,5 @@ """This module contains the client for the DB-GPT API.""" + import atexit import json import os @@ -102,6 +103,15 @@ class Client: ) atexit.register(self.close) + def _base_url(self): + parsed_url = urlparse(self._api_url) + host = parsed_url.hostname + scheme = parsed_url.scheme + port = parsed_url.port + if port: + return f"{scheme}://{host}:{port}" + return f"{scheme}://{host}" + async def chat( self, model: str, diff --git a/dbgpt/client/flow.py b/dbgpt/client/flow.py index ec1b7edb4..a61c37f06 100644 --- a/dbgpt/client/flow.py +++ b/dbgpt/client/flow.py @@ -1,5 +1,8 @@ """this module contains the flow client functions.""" -from typing import List + +from typing import Any, Callable, Dict, List + +from httpx import AsyncClient from dbgpt.core.awel.flow.flow_factory import FlowPanel from dbgpt.core.schema.api import Result @@ -117,3 +120,181 @@ async def list_flow( raise ClientException(status=result["err_code"], reason=result) except Exception as e: raise ClientException(f"Failed to list flows: {e}") + + +async def run_flow_cmd( + client: Client, + name: str | None = None, + uid: str | None = None, + data: Dict[str, Any] | None = None, + non_streaming_callback: Callable[[str], None] | None = None, + streaming_callback: Callable[[str], None] | None = None, +) -> None: + """ + Run flows. + + Args: + client (Client): The dbgpt client. + name (str): The name of the flow. + uid (str): The uid of the flow. + data (Dict[str, Any]): The data to run the flow. + non_streaming_callback (Callable[[str], None]): The non-streaming callback. + streaming_callback (Callable[[str], None]): The streaming callback. + Returns: + List[FlowPanel]: The list of flow panels. + Raises: + ClientException: If the request failed. + """ + try: + res = await client.get("/awel/flows", **{"name": name, "uid": uid}) + result: Result = res.json() + if not result["success"]: + raise ClientException("Flow not found with the given name or uid") + flows = result["data"]["items"] + if not flows: + raise ClientException("Flow not found with the given name or uid") + if len(flows) > 1: + raise ClientException("More than one flow found") + flow = flows[0] + flow_panel = FlowPanel(**flow) + metadata = flow.get("metadata") + await _run_flow_trigger( + client, + flow_panel, + metadata, + data, + non_streaming_callback=non_streaming_callback, + streaming_callback=streaming_callback, + ) + except Exception as e: + raise ClientException(f"Failed to run flows: {e}") + + +async def _run_flow_trigger( + client: Client, + flow: FlowPanel, + metadata: Dict[str, Any] | None = None, + data: Dict[str, Any] | None = None, + non_streaming_callback: Callable[[str], None] | None = None, + streaming_callback: Callable[[str], None] | None = None, +): + if not metadata: + raise ClientException("No AWEL flow metadata found") + if "triggers" not in metadata: + raise ClientException("No triggers found in AWEL flow metadata") + triggers = metadata["triggers"] + if len(triggers) > 1: + raise ClientException("More than one trigger found") + trigger = triggers[0] + sse_output = metadata.get("sse_output", False) + streaming_output = metadata.get("streaming_output", False) + trigger_type = trigger["trigger_type"] + if trigger_type == "http": + methods = trigger["methods"] + if not methods: + method = "GET" + else: + method = methods[0] + path = trigger["path"] + base_url = client._base_url() + req_url = f"{base_url}{path}" + if streaming_output: + await _call_stream_request( + client._http_client, + method, + req_url, + sse_output, + data, + streaming_callback, + ) + elif non_streaming_callback: + await _call_non_stream_request( + client._http_client, method, req_url, data, non_streaming_callback + ) + else: + raise ClientException(f"Invalid trigger type: {trigger_type}") + + +async def _call_non_stream_request( + http_client: AsyncClient, + method: str, + base_url: str, + data: Dict[str, Any] | None = None, + non_streaming_callback: Callable[[str], None] | None = None, +): + import httpx + + kwargs: Dict[str, Any] = {"url": base_url, "method": method} + if method in ["POST", "PUT"]: + kwargs["json"] = data + else: + kwargs["params"] = data + response = await http_client.request(**kwargs) + bytes_response_content = await response.aread() + if response.status_code != 200: + str_error_message = "" + error_message = await response.aread() + if error_message: + str_error_message = error_message.decode("utf-8") + raise httpx.RequestError( + f"Request failed with status {response.status_code}, error_message: " + f"{str_error_message}", + request=response.request, + ) + response_content = bytes_response_content.decode("utf-8") + if non_streaming_callback: + non_streaming_callback(response_content) + return response_content + + +async def _call_stream_request( + http_client: AsyncClient, + method: str, + base_url: str, + sse_output: bool, + data: Dict[str, Any] | None = None, + streaming_callback: Callable[[str], None] | None = None, +): + full_out = "" + async for out in _stream_request(http_client, method, base_url, sse_output, data): + if streaming_callback: + streaming_callback(out) + full_out += out + return full_out + + +async def _stream_request( + http_client: AsyncClient, + method: str, + base_url: str, + sse_output: bool, + data: Dict[str, Any] | None = None, +): + import json + + from dbgpt.core.awel.util.chat_util import parse_openai_output + + kwargs: Dict[str, Any] = {"url": base_url, "method": method} + if method in ["POST", "PUT"]: + kwargs["json"] = data + else: + kwargs["params"] = data + + async with http_client.stream(**kwargs) as response: + if response.status_code == 200: + async for line in response.aiter_lines(): + if not line: + continue + if sse_output: + out = parse_openai_output(line) + if not out.success: + raise ClientException(f"Failed to parse output: {out.text}") + yield out.text + else: + yield line + else: + try: + error = await response.aread() + yield json.loads(error) + except Exception as e: + raise e diff --git a/dbgpt/core/awel/dag/base.py b/dbgpt/core/awel/dag/base.py index f4c96dc2d..461321a6f 100644 --- a/dbgpt/core/awel/dag/base.py +++ b/dbgpt/core/awel/dag/base.py @@ -2,6 +2,7 @@ DAG is the core component of AWEL, it is used to define the relationship between tasks. """ + import asyncio import contextvars import logging @@ -613,10 +614,14 @@ class DAG: """ def __init__( - self, dag_id: str, resource_group: Optional[ResourceGroup] = None + self, + dag_id: str, + resource_group: Optional[ResourceGroup] = None, + tags: Optional[Dict[str, str]] = None, ) -> None: """Initialize a DAG.""" self._dag_id = dag_id + self._tags: Dict[str, str] = tags or {} self.node_map: Dict[str, DAGNode] = {} self.node_name_to_node: Dict[str, DAGNode] = {} self._root_nodes: List[DAGNode] = [] @@ -651,6 +656,22 @@ class DAG: """Return the dag id of current DAG.""" return self._dag_id + @property + def tags(self) -> Dict[str, str]: + """Return the tags of current DAG.""" + return self._tags + + @property + def dev_mode(self) -> bool: + """Whether the current DAG is in dev mode. + + Returns: + bool: Whether the current DAG is in dev mode + """ + from ..operators.base import _dev_mode + + return _dev_mode() + def _build(self) -> None: from ..operators.common_operator import TriggerOperator diff --git a/dbgpt/core/awel/dag/dag_manager.py b/dbgpt/core/awel/dag/dag_manager.py index 611988145..683dbdf39 100644 --- a/dbgpt/core/awel/dag/dag_manager.py +++ b/dbgpt/core/awel/dag/dag_manager.py @@ -3,18 +3,49 @@ DAGManager will load DAGs from dag_dirs, and register the trigger nodes to TriggerManager. """ + import logging import threading -from typing import Dict, List, Optional +from collections import defaultdict +from typing import Dict, List, Optional, Set +from dbgpt._private.pydantic import BaseModel, Field, model_to_dict from dbgpt.component import BaseComponent, ComponentType, SystemApp +from .. import BaseOperator +from ..trigger.base import TriggerMetadata from .base import DAG from .loader import LocalFileDAGLoader logger = logging.getLogger(__name__) +class DAGMetadata(BaseModel): + """Metadata for the DAG.""" + + triggers: List[TriggerMetadata] = Field( + default_factory=list, description="The trigger metadata" + ) + sse_output: bool = Field( + default=False, description="Whether the DAG is a server-sent event output" + ) + streaming_output: bool = Field( + default=False, description="Whether the DAG is a streaming output" + ) + tags: Optional[Dict[str, str]] = Field( + default=None, description="The tags of the DAG" + ) + + def to_dict(self): + """Convert the metadata to dict.""" + triggers_dict = [] + for trigger in self.triggers: + triggers_dict.append(trigger.dict()) + dict_value = model_to_dict(self, exclude={"triggers"}) + dict_value["triggers"] = triggers_dict + return dict_value + + class DAGManager(BaseComponent): """The component of DAGManager.""" @@ -35,6 +66,8 @@ class DAGManager(BaseComponent): self.system_app = system_app self.dag_map: Dict[str, DAG] = {} self.dag_alias_map: Dict[str, str] = {} + self._dag_metadata_map: Dict[str, DAGMetadata] = {} + self._tags_to_dag_ids: Dict[str, Dict[str, Set[str]]] = {} self._trigger_manager: Optional["DefaultTriggerManager"] = None def init_app(self, system_app: SystemApp): @@ -73,12 +106,26 @@ class DAGManager(BaseComponent): if alias_name: self.dag_alias_map[alias_name] = dag_id + trigger_metadata: List["TriggerMetadata"] = [] + dag_metadata = _parse_metadata(dag) if self._trigger_manager: for trigger in dag.trigger_nodes: - self._trigger_manager.register_trigger(trigger, self.system_app) + tm = self._trigger_manager.register_trigger( + trigger, self.system_app + ) + if tm: + trigger_metadata.append(tm) self._trigger_manager.after_register() else: logger.warning("No trigger manager, not register dag trigger") + dag_metadata.triggers = trigger_metadata + self._dag_metadata_map[dag_id] = dag_metadata + tags = dag_metadata.tags + if tags: + for tag_key, tag_value in tags.items(): + if tag_key not in self._tags_to_dag_ids: + self._tags_to_dag_ids[tag_key] = defaultdict(set) + self._tags_to_dag_ids[tag_key][tag_value].add(dag_id) def unregister_dag(self, dag_id: str): """Unregister a DAG.""" @@ -104,7 +151,13 @@ class DAGManager(BaseComponent): for trigger in dag.trigger_nodes: self._trigger_manager.unregister_trigger(trigger, self.system_app) # Finally remove the DAG from the map + metadata = self._dag_metadata_map[dag_id] del self.dag_map[dag_id] + del self._dag_metadata_map[dag_id] + if metadata.tags: + for tag_key, tag_value in metadata.tags.items(): + if tag_key in self._tags_to_dag_ids: + self._tags_to_dag_ids[tag_key][tag_value].remove(dag_id) def get_dag( self, dag_id: Optional[str] = None, alias_name: Optional[str] = None @@ -116,3 +169,33 @@ class DAGManager(BaseComponent): if alias_name in self.dag_alias_map: return self.dag_map.get(self.dag_alias_map[alias_name]) return None + + def get_dags_by_tag(self, tag_key: str, tag_value) -> List[DAG]: + """Get all DAGs with the given tag.""" + with self.lock: + dag_ids = self._tags_to_dag_ids.get(tag_key, {}).get(tag_value, set()) + return [self.dag_map[dag_id] for dag_id in dag_ids] + + def get_dag_metadata( + self, dag_id: Optional[str] = None, alias_name: Optional[str] = None + ) -> Optional[DAGMetadata]: + """Get a DAGMetadata by dag_id or alias_name.""" + dag = self.get_dag(dag_id, alias_name) + if not dag: + return None + return self._dag_metadata_map.get(dag.dag_id) + + +def _parse_metadata(dag: DAG): + from ..util.chat_util import _is_sse_output + + metadata = DAGMetadata() + metadata.tags = dag.tags + if not dag.leaf_nodes: + return metadata + end_node = dag.leaf_nodes[0] + if not isinstance(end_node, BaseOperator): + return metadata + metadata.sse_output = _is_sse_output(end_node) + metadata.streaming_output = end_node.streaming_operator + return metadata diff --git a/dbgpt/core/awel/flow/flow_factory.py b/dbgpt/core/awel/flow/flow_factory.py index b23633378..3f847c07c 100644 --- a/dbgpt/core/awel/flow/flow_factory.py +++ b/dbgpt/core/awel/flow/flow_factory.py @@ -18,6 +18,7 @@ from dbgpt._private.pydantic import ( model_validator, ) from dbgpt.core.awel.dag.base import DAG, DAGNode +from dbgpt.core.awel.dag.dag_manager import DAGMetadata from .base import ( OperatorType, @@ -352,6 +353,9 @@ class FlowPanel(BaseModel): description="The flow panel modified time.", examples=["2021-08-01 12:00:00", "2021-08-01 12:00:01", "2021-08-01 12:00:02"], ) + metadata: Optional[Union[DAGMetadata, Dict[str, Any]]] = Field( + default=None, description="The metadata of the flow" + ) @model_validator(mode="before") @classmethod diff --git a/dbgpt/core/awel/operators/base.py b/dbgpt/core/awel/operators/base.py index 6d486a1f6..58f3acabc 100644 --- a/dbgpt/core/awel/operators/base.py +++ b/dbgpt/core/awel/operators/base.py @@ -69,6 +69,15 @@ class WorkflowRunner(ABC, Generic[T]): default_runner: Optional[WorkflowRunner] = None +def _dev_mode() -> bool: + """Check if the operator is in dev mode. + + In production mode, the default runner is not None, and the operator will run in + the same process with the DB-GPT webserver. + """ + return default_runner is None + + class BaseOperatorMeta(ABCMeta): """Metaclass of BaseOperator.""" @@ -86,7 +95,9 @@ class BaseOperatorMeta(ABCMeta): if not executor: if system_app: executor = system_app.get_component( - ComponentType.EXECUTOR_DEFAULT, DefaultExecutorFactory + ComponentType.EXECUTOR_DEFAULT, + DefaultExecutorFactory, + default_component=DefaultExecutorFactory(), ).create() # type: ignore else: executor = DefaultExecutorFactory().create() @@ -173,13 +184,14 @@ class BaseOperator(DAGNode, ABC, Generic[OUT], metaclass=BaseOperatorMeta): def dev_mode(self) -> bool: """Whether the operator is in dev mode. - In production mode, the default runner is not None. + In production mode, the default runner is not None, and the operator will run in + the same process with the DB-GPT webserver. Returns: bool: Whether the operator is in dev mode. True if the default runner is None. """ - return default_runner is None + return _dev_mode() async def _run(self, dag_ctx: DAGContext, task_log_id: str) -> TaskOutput[OUT]: if not self.node_id: diff --git a/dbgpt/core/awel/trigger/base.py b/dbgpt/core/awel/trigger/base.py index 9b59cd94e..4e3db9998 100644 --- a/dbgpt/core/awel/trigger/base.py +++ b/dbgpt/core/awel/trigger/base.py @@ -1,13 +1,22 @@ """Base class for all trigger classes.""" -from __future__ import annotations from abc import ABC, abstractmethod -from typing import Any, Generic +from typing import Any, Generic, Optional + +from dbgpt._private.pydantic import BaseModel, Field from ..operators.common_operator import TriggerOperator from ..task.base import OUT +class TriggerMetadata(BaseModel): + """Metadata for the trigger.""" + + trigger_type: Optional[str] = Field( + default=None, description="The type of the trigger" + ) + + class Trigger(TriggerOperator[OUT], ABC, Generic[OUT]): """Base class for all trigger classes. diff --git a/dbgpt/core/awel/trigger/http_trigger.py b/dbgpt/core/awel/trigger/http_trigger.py index 0f0931292..22e025c13 100644 --- a/dbgpt/core/awel/trigger/http_trigger.py +++ b/dbgpt/core/awel/trigger/http_trigger.py @@ -43,7 +43,7 @@ from ..operators.base import BaseOperator from ..operators.common_operator import MapOperator from ..util._typing_util import _parse_bool from ..util.http_util import join_paths -from .base import Trigger +from .base import Trigger, TriggerMetadata if TYPE_CHECKING: from fastapi import APIRouter, FastAPI @@ -82,6 +82,17 @@ def _default_streaming_predict_func(body: "CommonRequestType") -> bool: return _parse_bool(streaming) +class HttpTriggerMetadata(TriggerMetadata): + """Trigger metadata.""" + + path: str = Field(..., description="The path of the trigger") + methods: List[str] = Field(..., description="The methods of the trigger") + + trigger_type: Optional[str] = Field( + default="http", description="The type of the trigger" + ) + + class BaseHttpBody(BaseModel): """Http body. @@ -444,7 +455,7 @@ class HttpTrigger(Trigger): def mount_to_router( self, router: "APIRouter", global_prefix: Optional[str] = None - ) -> None: + ) -> HttpTriggerMetadata: """Mount the trigger to a router. Args: @@ -466,8 +477,11 @@ class HttpTrigger(Trigger): )(dynamic_route_function) logger.info(f"Mount http trigger success, path: {path}") + return HttpTriggerMetadata(path=path, methods=self._methods) - def mount_to_app(self, app: "FastAPI", global_prefix: Optional[str] = None) -> None: + def mount_to_app( + self, app: "FastAPI", global_prefix: Optional[str] = None + ) -> HttpTriggerMetadata: """Mount the trigger to a FastAPI app. TODO: The performance of this method is not good, need to be optimized. @@ -498,6 +512,7 @@ class HttpTrigger(Trigger): app.openapi_schema = None app.middleware_stack = None logger.info(f"Mount http trigger success, path: {path}") + return HttpTriggerMetadata(path=path, methods=self._methods) def remove_from_app( self, app: "FastAPI", global_prefix: Optional[str] = None diff --git a/dbgpt/core/awel/trigger/trigger_manager.py b/dbgpt/core/awel/trigger/trigger_manager.py index 0db4a8bef..45b040147 100644 --- a/dbgpt/core/awel/trigger/trigger_manager.py +++ b/dbgpt/core/awel/trigger/trigger_manager.py @@ -2,15 +2,16 @@ After DB-GPT started, the trigger manager will be initialized and register all triggers """ + import logging from abc import ABC, abstractmethod from collections import defaultdict -from typing import TYPE_CHECKING, Any, Dict, List, Optional, Set, Union +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Set, Tuple, Union from dbgpt.component import BaseComponent, ComponentType, SystemApp from ..util.http_util import join_paths -from .base import Trigger +from .base import Trigger, TriggerMetadata if TYPE_CHECKING: from fastapi import APIRouter @@ -23,7 +24,9 @@ class TriggerManager(ABC): """Base class for trigger manager.""" @abstractmethod - def register_trigger(self, trigger: Any, system_app: SystemApp) -> None: + def register_trigger( + self, trigger: Any, system_app: SystemApp + ) -> Optional[TriggerMetadata]: """Register a trigger to current manager.""" @abstractmethod @@ -65,10 +68,12 @@ class HttpTriggerManager(TriggerManager): self._inited = False self._router_prefix = router_prefix self._router = router - self._trigger_map: Dict[str, Trigger] = {} + self._trigger_map: Dict[str, Tuple[Trigger, TriggerMetadata]] = {} self._router_tables: Dict[str, Set[str]] = defaultdict(set) - def register_trigger(self, trigger: Any, system_app: SystemApp) -> None: + def register_trigger( + self, trigger: Any, system_app: SystemApp + ) -> Optional[TriggerMetadata]: """Register a trigger to current manager.""" from .http_trigger import HttpTrigger @@ -86,13 +91,17 @@ class HttpTriggerManager(TriggerManager): if not app: raise ValueError("System app not initialized") # Mount to app, support dynamic route. - trigger.mount_to_app(app, self._router_prefix) + trigger_metadata = trigger.mount_to_app(app, self._router_prefix) else: - trigger.mount_to_router(self._router, self._router_prefix) - self._trigger_map[trigger_id] = trigger + trigger_metadata = trigger.mount_to_router( + self._router, self._router_prefix + ) + self._trigger_map[trigger_id] = (trigger, trigger_metadata) + return trigger_metadata except Exception as e: self._unregister_route_tables(path, methods) raise e + return None def unregister_trigger(self, trigger: Any, system_app: SystemApp) -> None: """Unregister a trigger to current manager.""" @@ -183,7 +192,9 @@ class DefaultTriggerManager(TriggerManager, BaseComponent): if system_app and self.system_app.app: self._http_trigger = HttpTriggerManager() - def register_trigger(self, trigger: Any, system_app: SystemApp) -> None: + def register_trigger( + self, trigger: Any, system_app: SystemApp + ) -> Optional[TriggerMetadata]: """Register a trigger to current manager.""" from .http_trigger import HttpTrigger @@ -191,7 +202,9 @@ class DefaultTriggerManager(TriggerManager, BaseComponent): logger.info(f"Register trigger {trigger}") if not self._http_trigger: raise ValueError("Http trigger manager not initialized") - self._http_trigger.register_trigger(trigger, system_app) + return self._http_trigger.register_trigger(trigger, system_app) + else: + return None def unregister_trigger(self, trigger: Any, system_app: SystemApp) -> None: """Unregister a trigger to current manager.""" diff --git a/dbgpt/core/awel/util/chat_util.py b/dbgpt/core/awel/util/chat_util.py new file mode 100644 index 000000000..464e4ac7d --- /dev/null +++ b/dbgpt/core/awel/util/chat_util.py @@ -0,0 +1,323 @@ +"""The utility functions for chatting with the DAG task.""" + +import json +import traceback +from typing import Any, AsyncIterator, Dict, Optional + +from ...interface.llm import ModelInferenceMetrics, ModelOutput +from ...schema.api import ChatCompletionResponseStreamChoice +from ..operators.base import BaseOperator +from ..trigger.http_trigger import CommonLLMHttpResponseBody + + +def is_chat_flow_type(output_obj: Any, is_class: bool = False) -> bool: + """Check whether the output object is a chat flow type.""" + if is_class: + return output_obj in (str, CommonLLMHttpResponseBody, ModelOutput) + else: + chat_types = (str, CommonLLMHttpResponseBody) + return isinstance(output_obj, chat_types) + + +async def safe_chat_with_dag_task( + task: BaseOperator, request: Any, covert_to_str: bool = False +) -> ModelOutput: + """Chat with the DAG task. + + Args: + task (BaseOperator): The DAG task to be executed. + request (Any): The request to be passed to the DAG task. + covert_to_str (bool, optional): Whether to convert the output to string. + + Returns: + ModelOutput: The model output, the result is not incremental. + """ + try: + finish_reason = None + usage = None + metrics = None + error_code = 0 + text = "" + async for output in safe_chat_stream_with_dag_task( + task, request, False, covert_to_str=covert_to_str + ): + finish_reason = output.finish_reason + usage = output.usage + metrics = output.metrics + error_code = output.error_code + text = output.text + return ModelOutput( + error_code=error_code, + text=text, + metrics=metrics, + usage=usage, + finish_reason=finish_reason, + ) + except Exception as e: + return ModelOutput(error_code=1, text=str(e), incremental=False) + + +async def safe_chat_stream_with_dag_task( + task: BaseOperator, request: Any, incremental: bool, covert_to_str: bool = False +) -> AsyncIterator[ModelOutput]: + """Chat with the DAG task. + + This function is similar to `chat_stream_with_dag_task`, but it will catch the + exception and return the error message. + + Args: + task (BaseOperator): The DAG task to be executed. + request (Any): The request to be passed to the DAG task. + incremental (bool): Whether the output is incremental. + covert_to_str (bool, optional): Whether to convert the output to string. + + Yields: + ModelOutput: The model output. + """ + try: + async for output in chat_stream_with_dag_task( + task, request, incremental, covert_to_str=covert_to_str + ): + yield output + except Exception as e: + simple_error_msg = str(e) + if not simple_error_msg: + simple_error_msg = traceback.format_exc() + yield ModelOutput(error_code=1, text=simple_error_msg, incremental=incremental) + finally: + if task.streaming_operator and task.dag: + await task.dag._after_dag_end(task.current_event_loop_task_id) + + +def _is_sse_output(task: BaseOperator) -> bool: + """Check whether the DAG task is a server-sent event output. + + Args: + task (BaseOperator): The DAG task. + + Returns: + bool: Whether the DAG task is a server-sent event output. + """ + return task.output_format is not None and task.output_format.upper() == "SSE" + + +async def chat_stream_with_dag_task( + task: BaseOperator, request: Any, incremental: bool, covert_to_str: bool = False +) -> AsyncIterator[ModelOutput]: + """Chat with the DAG task. + + Args: + task (BaseOperator): The DAG task to be executed. + request (Any): The request to be passed to the DAG task. + incremental (bool): Whether the output is incremental. + covert_to_str (bool, optional): Whether to convert the output to string. + + Yields: + ModelOutput: The model output. + """ + is_sse = _is_sse_output(task) + if not task.streaming_operator: + try: + result = await task.call(request) + model_output = parse_single_output( + result, is_sse, covert_to_str=covert_to_str + ) + model_output.incremental = incremental + yield model_output + except Exception as e: + simple_error_msg = str(e) + if not simple_error_msg: + simple_error_msg = traceback.format_exc() + yield ModelOutput( + error_code=1, text=simple_error_msg, incremental=incremental + ) + else: + from dbgpt.model.utils.chatgpt_utils import OpenAIStreamingOutputOperator + + if OpenAIStreamingOutputOperator and isinstance( + task, OpenAIStreamingOutputOperator + ): + full_text = "" + async for output in await task.call_stream(request): + model_output = parse_openai_output(output) + # The output of the OpenAI streaming API is incremental + full_text += model_output.text + model_output.incremental = incremental + model_output.text = model_output.text if incremental else full_text + yield model_output + if not model_output.success: + break + else: + full_text = "" + previous_text = "" + async for output in await task.call_stream(request): + model_output = parse_single_output( + output, is_sse, covert_to_str=covert_to_str + ) + model_output.incremental = incremental + if task.incremental_output: + # Output is incremental, append the text + full_text += model_output.text + else: + # Output is not incremental, last output is the full text + full_text = model_output.text + if not incremental: + # Return the full text + model_output.text = full_text + else: + # Return the incremental text + delta_text = full_text[len(previous_text) :] + previous_text = ( + full_text + if len(full_text) > len(previous_text) + else previous_text + ) + model_output.text = delta_text + yield model_output + if not model_output.success: + break + + +def parse_single_output( + output: Any, is_sse: bool, covert_to_str: bool = False +) -> ModelOutput: + """Parse the single output. + + Args: + output (Any): The output to parse. + is_sse (bool): Whether the output is in SSE format. + covert_to_str (bool, optional): Whether to convert the output to string. + Defaults to False. + + Returns: + ModelOutput: The parsed output. + """ + finish_reason: Optional[str] = None + usage: Optional[Dict[str, Any]] = None + metrics: Optional[ModelInferenceMetrics] = None + + if output is None: + error_code = 1 + text = "The output is None!" + elif isinstance(output, str): + if is_sse: + sse_output = parse_sse_data(output) + if sse_output is None: + error_code = 1 + text = "The output is not a SSE format" + else: + error_code = 0 + text = sse_output + else: + error_code = 0 + text = output + elif isinstance(output, ModelOutput): + error_code = output.error_code + text = output.text + finish_reason = output.finish_reason + usage = output.usage + metrics = output.metrics + elif isinstance(output, CommonLLMHttpResponseBody): + error_code = output.error_code + text = output.text + elif isinstance(output, dict): + error_code = 0 + text = json.dumps(output, ensure_ascii=False) + elif covert_to_str: + error_code = 0 + text = str(output) + else: + error_code = 1 + text = f"The output is not a valid format({type(output)})" + return ModelOutput( + error_code=error_code, + text=text, + finish_reason=finish_reason, + usage=usage, + metrics=metrics, + ) + + +def parse_openai_output(output: Any) -> ModelOutput: + """Parse the OpenAI output. + + Args: + output (Any): The output to parse. It must be a stream format. + + Returns: + ModelOutput: The parsed output. + """ + text = "" + if not isinstance(output, str): + return ModelOutput( + error_code=1, + text="The output is not a stream format", + ) + if output.strip() == "data: [DONE]" or output.strip() == "data:[DONE]": + return ModelOutput(error_code=0, text="") + if not output.startswith("data:"): + return ModelOutput( + error_code=1, + text="The output is not a stream format", + ) + + sse_output = parse_sse_data(output) + if sse_output is None: + return ModelOutput(error_code=1, text="The output is not a SSE format") + json_data = sse_output.strip() + try: + dict_data = json.loads(json_data) + except Exception as e: + return ModelOutput( + error_code=1, + text=f"Invalid JSON data: {json_data}, {e}", + ) + if "choices" not in dict_data: + return ModelOutput( + error_code=1, + text=dict_data.get("text", "Unknown error"), + ) + choices = dict_data["choices"] + finish_reason: Optional[str] = None + if choices: + choice = choices[0] + delta_data = ChatCompletionResponseStreamChoice(**choice) + if delta_data.delta.content: + text = delta_data.delta.content + finish_reason = delta_data.finish_reason + return ModelOutput(error_code=0, text=text, finish_reason=finish_reason) + + +def parse_sse_data(output: str) -> Optional[str]: + r"""Parse the SSE data. + + Just keep the data part. + + Examples: + .. code-block:: python + + from dbgpt.core.awel.util.chat_util import parse_sse_data + + assert parse_sse_data("data: [DONE]") == "[DONE]" + assert parse_sse_data("data:[DONE]") == "[DONE]" + assert parse_sse_data("data: Hello") == "Hello" + assert parse_sse_data("data: Hello\n") == "Hello" + assert parse_sse_data("data: Hello\r\n") == "Hello" + assert parse_sse_data("data: Hi, what's up?") == "Hi, what's up?" + + Args: + output (str): The output. + + Returns: + Optional[str]: The parsed data. + """ + if output.startswith("data:"): + output = output.strip() + if output.startswith("data: "): + output = output[6:] + else: + output = output[5:] + + return output + else: + return None diff --git a/dbgpt/serve/flow/service/service.py b/dbgpt/serve/flow/service/service.py index 8cc913bdf..e96230dd7 100644 --- a/dbgpt/serve/flow/service/service.py +++ b/dbgpt/serve/flow/service/service.py @@ -1,19 +1,13 @@ import json import logging -import traceback -from typing import Any, AsyncIterator, List, Optional, cast +from typing import AsyncIterator, List, Optional, cast import schedule from fastapi import HTTPException from dbgpt._private.pydantic import model_to_json from dbgpt.component import SystemApp -from dbgpt.core.awel import ( - DAG, - BaseOperator, - CommonLLMHttpRequestBody, - CommonLLMHttpResponseBody, -) +from dbgpt.core.awel import DAG, BaseOperator, CommonLLMHttpRequestBody from dbgpt.core.awel.dag.dag_manager import DAGManager from dbgpt.core.awel.flow.flow_factory import ( FlowCategory, @@ -22,10 +16,13 @@ from dbgpt.core.awel.flow.flow_factory import ( fill_flow_panel, ) from dbgpt.core.awel.trigger.http_trigger import CommonLLMHttpTrigger +from dbgpt.core.awel.util.chat_util import ( + is_chat_flow_type, + safe_chat_stream_with_dag_task, + safe_chat_with_dag_task, +) from dbgpt.core.interface.llm import ModelOutput from dbgpt.core.schema.api import ( - ChatCompletionResponse, - ChatCompletionResponseChoice, ChatCompletionResponseStreamChoice, ChatCompletionStreamResponse, DeltaMessage, @@ -333,6 +330,11 @@ class Service(BaseService[ServeEntity, ServeRequest, ServerResponse]): flow = self.dao.get_one(query_request) if flow: fill_flow_panel(flow) + metadata = self.dag_manager.get_dag_metadata( + flow.dag_id, alias_name=flow.uid + ) + if metadata: + flow.metadata = metadata.to_dict() return flow def delete(self, uid: str) -> Optional[ServerResponse]: @@ -390,7 +392,14 @@ class Service(BaseService[ServeEntity, ServeRequest, ServerResponse]): Returns: List[ServerResponse]: The response """ - return self.dao.get_list_page(request, page, page_size) + page_result = self.dao.get_list_page(request, page, page_size) + for item in page_result.items: + metadata = self.dag_manager.get_dag_metadata( + item.dag_id, alias_name=item.uid + ) + if metadata: + item.metadata = metadata.to_dict() + return page_result async def chat_stream_flow_str( self, flow_uid: str, request: CommonLLMHttpRequestBody @@ -463,7 +472,7 @@ class Service(BaseService[ServeEntity, ServeRequest, ServerResponse]): incremental = request.incremental try: task = await self._get_callable_task(flow_uid) - return await _safe_chat_with_dag_task(task, request) + return await safe_chat_with_dag_task(task, request) except HTTPException as e: return ModelOutput(error_code=1, text=e.detail, incremental=incremental) except Exception as e: @@ -484,7 +493,7 @@ class Service(BaseService[ServeEntity, ServeRequest, ServerResponse]): incremental = request.incremental try: task = await self._get_callable_task(flow_uid) - async for output in _safe_chat_stream_with_dag_task( + async for output in safe_chat_stream_with_dag_task( task, request, incremental ): yield output @@ -556,220 +565,7 @@ class Service(BaseService[ServeEntity, ServeRequest, ServerResponse]): output = leaf_node.metadata.outputs[0] try: real_class = _get_type_cls(output.type_cls) - if common_http_trigger and _is_chat_flow_type(real_class, is_class=True): + if common_http_trigger and is_chat_flow_type(real_class, is_class=True): return FlowCategory.CHAT_FLOW except Exception: return FlowCategory.COMMON - - -def _is_chat_flow_type(output_obj: Any, is_class: bool = False) -> bool: - if is_class: - return ( - output_obj == str - or output_obj == CommonLLMHttpResponseBody - or output_obj == ModelOutput - ) - else: - chat_types = (str, CommonLLMHttpResponseBody) - return isinstance(output_obj, chat_types) - - -async def _safe_chat_with_dag_task(task: BaseOperator, request: Any) -> ModelOutput: - """Chat with the DAG task.""" - try: - finish_reason = None - usage = None - metrics = None - error_code = 0 - text = "" - async for output in _safe_chat_stream_with_dag_task(task, request, False): - finish_reason = output.finish_reason - usage = output.usage - metrics = output.metrics - error_code = output.error_code - text = output.text - return ModelOutput( - error_code=error_code, - text=text, - metrics=metrics, - usage=usage, - finish_reason=finish_reason, - ) - except Exception as e: - return ModelOutput(error_code=1, text=str(e), incremental=False) - - -async def _safe_chat_stream_with_dag_task( - task: BaseOperator, - request: Any, - incremental: bool, -) -> AsyncIterator[ModelOutput]: - """Chat with the DAG task.""" - try: - async for output in _chat_stream_with_dag_task(task, request, incremental): - yield output - except Exception as e: - yield ModelOutput(error_code=1, text=str(e), incremental=incremental) - finally: - if task.streaming_operator: - if task.dag: - await task.dag._after_dag_end(task.current_event_loop_task_id) - - -async def _chat_stream_with_dag_task( - task: BaseOperator, - request: Any, - incremental: bool, -) -> AsyncIterator[ModelOutput]: - """Chat with the DAG task.""" - is_sse = task.output_format and task.output_format.upper() == "SSE" - if not task.streaming_operator: - try: - result = await task.call(request) - model_output = _parse_single_output(result, is_sse) - model_output.incremental = incremental - yield model_output - except Exception as e: - yield ModelOutput(error_code=1, text=str(e), incremental=incremental) - else: - from dbgpt.model.utils.chatgpt_utils import OpenAIStreamingOutputOperator - - if OpenAIStreamingOutputOperator and isinstance( - task, OpenAIStreamingOutputOperator - ): - full_text = "" - async for output in await task.call_stream(request): - model_output = _parse_openai_output(output) - # The output of the OpenAI streaming API is incremental - full_text += model_output.text - model_output.incremental = incremental - model_output.text = model_output.text if incremental else full_text - yield model_output - if not model_output.success: - break - else: - full_text = "" - previous_text = "" - async for output in await task.call_stream(request): - model_output = _parse_single_output(output, is_sse) - model_output.incremental = incremental - if task.incremental_output: - # Output is incremental, append the text - full_text += model_output.text - else: - # Output is not incremental, last output is the full text - full_text = model_output.text - if not incremental: - # Return the full text - model_output.text = full_text - else: - # Return the incremental text - delta_text = full_text[len(previous_text) :] - previous_text = ( - full_text - if len(full_text) > len(previous_text) - else previous_text - ) - model_output.text = delta_text - yield model_output - if not model_output.success: - break - - -def _parse_single_output(output: Any, is_sse: bool) -> ModelOutput: - """Parse the single output.""" - finish_reason = None - usage = None - metrics = None - if output is None: - error_code = 1 - text = "The output is None!" - elif isinstance(output, str): - if is_sse: - sse_output = _parse_sse_data(output) - if sse_output is None: - error_code = 1 - text = "The output is not a SSE format" - else: - error_code = 0 - text = sse_output - else: - error_code = 0 - text = output - elif isinstance(output, ModelOutput): - error_code = output.error_code - text = output.text - finish_reason = output.finish_reason - usage = output.usage - metrics = output.metrics - elif isinstance(output, CommonLLMHttpResponseBody): - error_code = output.error_code - text = output.text - elif isinstance(output, dict): - error_code = 0 - text = json.dumps(output, ensure_ascii=False) - else: - error_code = 1 - text = f"The output is not a valid format({type(output)})" - return ModelOutput( - error_code=error_code, - text=text, - finish_reason=finish_reason, - usage=usage, - metrics=metrics, - ) - - -def _parse_openai_output(output: Any) -> ModelOutput: - """Parse the OpenAI output.""" - text = "" - if not isinstance(output, str): - return ModelOutput( - error_code=1, - text="The output is not a stream format", - ) - if output.strip() == "data: [DONE]" or output.strip() == "data:[DONE]": - return ModelOutput(error_code=0, text="") - if not output.startswith("data:"): - return ModelOutput( - error_code=1, - text="The output is not a stream format", - ) - - sse_output = _parse_sse_data(output) - if sse_output is None: - return ModelOutput(error_code=1, text="The output is not a SSE format") - json_data = sse_output.strip() - try: - dict_data = json.loads(json_data) - except Exception as e: - return ModelOutput( - error_code=1, - text=f"Invalid JSON data: {json_data}, {e}", - ) - if "choices" not in dict_data: - return ModelOutput( - error_code=1, - text=dict_data.get("text", "Unknown error"), - ) - choices = dict_data["choices"] - finish_reason: Optional[str] = None - if choices: - choice = choices[0] - delta_data = ChatCompletionResponseStreamChoice(**choice) - if delta_data.delta.content: - text = delta_data.delta.content - finish_reason = delta_data.finish_reason - return ModelOutput(error_code=0, text=text, finish_reason=finish_reason) - - -def _parse_sse_data(output: str) -> Optional[str]: - if output.startswith("data:"): - if output.startswith("data: "): - output = output[6:] - else: - output = output[5:] - - return output - else: - return None diff --git a/dbgpt/util/dbgpts/loader.py b/dbgpt/util/dbgpts/loader.py index eaf12f479..8545ad067 100644 --- a/dbgpt/util/dbgpts/loader.py +++ b/dbgpt/util/dbgpts/loader.py @@ -320,6 +320,51 @@ def _load_package_from_path(path: str): return parsed_packages +def _load_flow_package_from_path(name: str, path: str = INSTALL_DIR) -> FlowPackage: + raw_packages = _load_installed_package(path) + new_name = name.replace("_", "-") + packages = [p for p in raw_packages if p.package == name or p.name == name] + if not packages: + packages = [ + p for p in raw_packages if p.package == new_name or p.name == new_name + ] + if not packages: + raise ValueError(f"Can't find the package {name} or {new_name}") + flow_package = _parse_package_metadata(packages[0]) + if flow_package.package_type != "flow": + raise ValueError(f"Unsupported package type: {flow_package.package_type}") + return cast(FlowPackage, flow_package) + + +def _flow_package_to_flow_panel(package: FlowPackage) -> FlowPanel: + dict_value = { + "name": package.name, + "label": package.label, + "version": package.version, + "editable": False, + "description": package.description, + "source": package.repo, + "define_type": "json", + } + if isinstance(package, FlowJsonPackage): + dict_value["flow_data"] = package.read_definition_json() + elif isinstance(package, FlowPythonPackage): + dict_value["flow_data"] = { + "nodes": [], + "edges": [], + "viewport": { + "x": 213, + "y": 269, + "zoom": 0, + }, + } + dict_value["flow_dag"] = package.dag + dict_value["define_type"] = "python" + else: + raise ValueError(f"Unsupported package type: {package}") + return FlowPanel(**dict_value) + + class DBGPTsLoader(BaseComponent): """The loader of the dbgpts packages""" @@ -373,32 +418,8 @@ class DBGPTsLoader(BaseComponent): if package.package_type != "flow": continue package = cast(FlowPackage, package) - dict_value = { - "name": package.name, - "label": package.label, - "version": package.version, - "editable": False, - "description": package.description, - "source": package.repo, - "define_type": "json", - } - if isinstance(package, FlowJsonPackage): - dict_value["flow_data"] = package.read_definition_json() - elif isinstance(package, FlowPythonPackage): - dict_value["flow_data"] = { - "nodes": [], - "edges": [], - "viewport": { - "x": 213, - "y": 269, - "zoom": 0, - }, - } - dict_value["flow_dag"] = package.dag - dict_value["define_type"] = "python" - else: - raise ValueError(f"Unsupported package type: {package}") - panels.append(FlowPanel(**dict_value)) + flow_panel = _flow_package_to_flow_panel(package) + panels.append(flow_panel) return panels def _register_packages(self, package: BasePackage): diff --git a/docs/docs/dbgpts/introduction.md b/docs/docs/dbgpts/introduction.md new file mode 100644 index 000000000..1063a7297 --- /dev/null +++ b/docs/docs/dbgpts/introduction.md @@ -0,0 +1,280 @@ +# dbgpts + +[dbgpts](https://github.com/eosphoros-ai/dbgpts) contains some data apps, AWEL operators, AWEL workflows, agents and resources +which build upon the DB-GPT. + +## Introduction + +### Why We Need `dbgpts` + +In a production-level LLM's application, there are many components that need to be +integrated, and you want to start your research and creativity quickly by using the +existing components. + +At the same time, we hope that the core components of DB-GPT keep simple and easy to +maintain, and some complex components can be developed in the form of plugins. + +So, we need a plugin system to extend the capabilities of DB-GPT, and `dbgpts` is the +plugin system or a part of ecosystem of DB-GPT. + +### What Is `dbgpts` + +There are some concepts in `dbgpts`: +- `app`: It includes data apps, AWEL operators, AWEL workflows, agents and resources, sometimes, we +call it `dbgpts` app or `dbgpts` package. +- `repo`: It is a repository of `dbgpts` apps, you can install a `dbgpts` app from a `dbgpts` repo, +the default `dbgpts` repo is [eosphoros-ai/dbgpts](https://github.com/eosphoros-ai/dbgpts), you can +also create your own `dbgpts` repo or use other's `dbgpts` repo. + +### How To Run `dbgpts` + +1. When you install a `dbgpts` app, it will be loaded to your DB-GPT webserver automatically, +and you can use it in the DB-GPT webserver or trigger it by command line `dbgpt run ...`. +2. You can also run a `dbgpts` app as a command line tool, you can use it in your terminal by +`dbgpt app run ...` with `--local` option, it will run the app in your local environment. + +## Quick Start + +Let's install a `dbgpts` package named [awel-flow-simple-streaming-chat](https://github.com/eosphoros-ai/dbgpts/tree/main/workflow/awel-flow-simple-streaming-chat) + +```bash +dbgpt app install awel-flow-simple-streaming-chat -U +``` + +### Run The App Locally + +Then, you can run the app in your terminal: + +```bash +dbgpt run flow --local chat \ +--name awel-flow-simple-streaming-chat \ +--model "gpt-3.5-turbo" \ +--messages "hello" \ +--stream +``` +- `dbgpt run flow`: Means you want to run a AWEL workflow. +- `--local`: Means you want to run the workflow in your local environment without +starting the DB-GPT webserver, it will find the `app` installed in your local +environment, then run it, also, you can use `--file` to specify the python file. +- `--name`: The name of the app. +- `--model`: The LLM model you want to use, `awel-flow-simple-streaming-chat` will +use OpenAI LLM by default if you run it with `--local`. +- `--messages`: The messages you want to send to the LLM. +- `--stream`: Means you want to run the workflow in streaming mode. + +The output will be like this: + +```bash +You: hello +[~info] Chat stream started +[~info] JSON data: {"model": "gpt-3.5-turbo", "messages": "hello", "stream": true} +Bot: +Hello! How can I assist you today? +🎉 Chat stream finished, timecost: 1.12 s +``` + +### Run The App In DB-GPT Webserver + +After you install the `awel-flow-simple-streaming-chat` app, you can run it in the DB-GPT webserver. +Also, you can use the `dbgpt` command line tool to trigger the app. + +```bash +dbgpt run flow chat \ +--name awel-flow-simple-streaming-chat \ +--model "chatgpt_proxyllm" \ +--messages "hello" \ +--stream +``` + +You just remove the `--local` option, then the command will connect to the DB-GPT webserver and run the app. +And you should modify the `--model` option to your model name in the DB-GPT webserver. + +The output will be like this: + +```bash +You: hello +[~info] Chat stream started +[~info] JSON data: {"model": "chatgpt_proxyllm", "messages": "hello", "stream": true, "chat_param": "1ecd35d4-a60a-420b-8943-8fc44f7f054a", "chat_mode": "chat_flow"} +Bot: +Hello! How can I assist you today? +🎉 Chat stream finished, timecost: 0.98 s +``` + +## Run The App With `command` Mode + +In previous examples, we run the app in `chat` mode, but not all `dbgpts` apps support `chat` mode, +some apps support `command` mode, you can run the app with `dbgpt run flow cmd` command. + +### Run The App Locally + +```bash +dbgpt run flow --local cmd \ +--name awel-flow-simple-streaming-chat \ +-d ' +{ + "model": "gpt-3.5-turbo", + "messages": "hello", + "stream": true +} +' +``` + +We replace the `chat` mode with `cmd` mode, and use `-d` option to specify the data in JSON format. + +The output will be like this: + +```bash +[~info] Flow started +[~info] JSON data: {"model": "gpt-3.5-turbo", "messages": "hello", "stream": true} +Command output: +Hello! How can I assist you today? +🎉 Flow finished, timecost: 1.35 s +``` + +### Run The App In DB-GPT Webserver + +Just remove the `--local` option, then the command will connect to the DB-GPT webserver and run the app. + +```bash +dbgpt run flow cmd \ +--name awel-flow-simple-streaming-chat \ +-d ' +{ + "model": "chatgpt_proxyllm", + "messages": "hello", + "stream": true +} +' +``` + +The output will be like this: + +```bash +[~info] Flow started +[~info] JSON data: {"model": "chatgpt_proxyllm", "messages": "hello", "stream": true} +Command output: +Hello! How can I assist you today? +🎉 Flow finished, timecost: 1.09 s +``` + +## `chat` Mode vs `command` Mode + +In short, `chat` mode is used for chat applications, and `command` mode is used to +trigger the app with a command. + +For example, you want to load your documents to the DB-GPT, you can use `command` mode +to trigger the app to load the documents, it always runs once and the result will be +returned. + +And `chat` mode is a special case of `command` mode, it provides a chat interface to +the user, and you can chat with the LLM in an interactive way. + + +## Run You App With Python Script + +If you run app locally, it will find the app which is installed in your local environment, +also, you can run the app by providing the python file. + +Let's create a python file named `simple_chat_app.py`: + +```python +import os +from dbgpt._private.pydantic import BaseModel, Field +from dbgpt.core import ModelMessage, ModelRequest +from dbgpt.core.awel import DAG, HttpTrigger, MapOperator +from dbgpt.model.proxy import OpenAILLMClient +from dbgpt.model.operators import LLMOperator + + +class TriggerReqBody(BaseModel): + model: str = Field(..., description="Model name") + messages: str = Field(..., description="User input") + + +class RequestHandleOperator(MapOperator[TriggerReqBody, ModelRequest]): + def __init__(self, **kwargs): + super().__init__(**kwargs) + + async def map(self, input_value: TriggerReqBody) -> ModelRequest: + messages = [ModelMessage.build_human_message(input_value.messages)] + return ModelRequest.build_request(input_value.model, messages) + + +with DAG("dbgpts_simple_chat_app") as dag: + # Receive http request and trigger dag to run. + trigger = HttpTrigger( + "/dbgpts/simple_chat_app", methods="POST", request_body=TriggerReqBody + ) + llm_client = OpenAILLMClient( + model_alias="gpt-3.5-turbo", # or other models, eg. "gpt-4o" + api_base=os.getenv("OPENAI_API_BASE"), + api_key=os.getenv("OPENAI_API_KEY"), + ) + request_handle_task = RequestHandleOperator() + llm_task = LLMOperator(llm_client=llm_client) + model_parse_task = MapOperator(lambda out: out.text) + trigger >> request_handle_task >> llm_task >> model_parse_task +``` + +Then you can run the app by providing the python file: + +```bash +dbgpt run flow --local --file simple_chat_app.py \ +chat \ +--name dbgpts_simple_chat_app \ +--model "gpt-3.5-turbo" \ +--messages "hello" +``` + +The output will be like this: + +```bash +You: hello +[~info] Chat started +[~info] JSON data: {"model": "gpt-3.5-turbo", "messages": "hello", "stream": false} +Bot: +Hello! How can I assist you today? + +🎉 Chat stream finished, timecost: 1.06 s +``` + +And you can run previous examples with `command` mode. + +```bash +dbgpt run flow --local --file simple_chat_app.py \ +cmd \ +--name dbgpts_simple_chat_app \ +-d ' +{ + "model": "gpt-3.5-turbo", + "messages": "hello" +}' +``` + +The output will be like this: + +```bash +[~info] Flow started +[~info] JSON data: {"model": "gpt-3.5-turbo", "messages": "hello"} +Command output: +Hello! How can I assist you today? +🎉 Flow finished, timecost: 1.04 s +``` + +## Show Your App In DB-GPT Webserver + +When you install the workflow, you can see the workflow in the DB-GPT webserver, you can open +the **AWEL Flow** page, then you can see the workflow named `awel_flow_simple_streaming_chat`. + +

+ +

+ +Then you can click the `edit` button to see the details of the workflow. +

+ +

+ +Note: Not all workflows support editing, there are two types of workflows according to the +definition type: `json` and `python`, the `json` type workflow can be edited in the DB-GPT, +We will show you more details in the next sections. diff --git a/docs/sidebars.js b/docs/sidebars.js index 2e26dfe5f..75c536dec 100755 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -621,6 +621,16 @@ const sidebars = { } ], }, + { + type: "category", + label: "dbgpts", + items: [ + { + type: "doc", + id: 'dbgpts/introduction', + } + ] + } ], }, diff --git a/docs/static/img/dbgpts/awel_flow_simple_streaming_chat_1.png b/docs/static/img/dbgpts/awel_flow_simple_streaming_chat_1.png new file mode 100644 index 0000000000000000000000000000000000000000..4b58ee1fb42e2fd81d31e0b9f5e5fde2c9c4bb6f GIT binary patch literal 23388 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 literal 0 HcmV?d00001 diff --git a/docs/static/img/dbgpts/awel_flow_simple_streaming_chat_2.png b/docs/static/img/dbgpts/awel_flow_simple_streaming_chat_2.png new file mode 100644 index 0000000000000000000000000000000000000000..8d023a06757c2aaa414606cfb46c7ecf8a625ace GIT binary patch literal 264824 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%0DLtT2e|NYcNNOWR+;e;e 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 literal 0 HcmV?d00001 diff --git a/examples/awel/simple_chat_dag_example.py b/examples/awel/simple_chat_dag_example.py index bb0fc7242..2848e2ad1 100644 --- a/examples/awel/simple_chat_dag_example.py +++ b/examples/awel/simple_chat_dag_example.py @@ -14,6 +14,7 @@ "user_input": "hello" }' """ + from dbgpt._private.pydantic import BaseModel, Field from dbgpt.core import ModelMessage, ModelRequest from dbgpt.core.awel import DAG, HttpTrigger, MapOperator @@ -35,7 +36,7 @@ class RequestHandleOperator(MapOperator[TriggerReqBody, ModelRequest]): return ModelRequest.build_request(input_value.model, messages) -with DAG("dbgpt_awel_simple_dag_example") as dag: +with DAG("dbgpt_awel_simple_dag_example", tags={"label": "example"}) as dag: # Receive http request and trigger dag to run. trigger = HttpTrigger( "/examples/simple_chat", methods="POST", request_body=TriggerReqBody