ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

DB-GPT SMMF 多模型管理框架实战:从 Web 界面部署到命令行运维

DB-GPT SMMF 多模型管理框架实战:从 Web 界面部署到命令行运维 DB-GPT SMMF 多模型管理框架实战从 Web 界面部署到命令行运维【免费下载链接】DB-GPTopen-source agentic AI data assistant for the next generation of AI Data products.项目地址: https://gitcode.com/GitHub_Trending/db/DB-GPTDB-GPT 通过服务化多模型管理框架Service-oriented Multi-model Management Framework简称 SMMF屏蔽了底层推理框架的差异为上层应用提供统一的模型服务能力。本文以 SMMF 模块文档 为骨架结合 高级教程中的 SMMF 使用指南、集群部署文档 与源码实现系统讲解 SMMF 的架构原理、Web 界面下的模型管理操作、命令行部署与运维、以及可观测性排查方法读完即可在实际项目中完成多模型的部署、切换、启停与调试。SMMF 是什么为什么需要多模型管理框架在 AIGC 应用探索与生产落地过程中直接对接模型服务是绕不开的环节但目前大模型推理部署并没有事实上的统一标准新模型不断发布新的训练与推理方法不断提出底层建模环境持续变化开发者需要耗费大量时间去适配。这种局面在一定程度上制约了 AIGC 应用的探索与落地。DB-GPT 提出的 SMMF服务化多模型管理框架正是为了简化模型适配过程、提升模型部署效率与性能而设计。它由模型推理层model inference layer和模型部署层model deployment layer两部分组成模型推理层对应 vLLM、TGI、TensorRT 等模型推理框架模型部署层向下对接推理层向上提供模型服务能力基于推理框架提供多模型实例、多推理框架、多云、自动扩缩容与可观测性等能力。需要说明的是根据模块文档附录的说明自动扩缩容automatic scaling与可观测性observability等能力目前仍处于孵化阶段尚未完整实现。本文涉及的自动扩缩容相关表述仅代表框架的设计方向。在 DB-GPT 中的完整分层在 DB-GPT 中SMMF 的具体分层结构如下顶层服务与应用层例如 DB-GPT WebServer、Agents 系统以及各类应用模型部署框架层包含向应用层提供模型服务的API Server与Model Handle、管理整个部署框架元数据的Metadata Management / Control CenterModel Controller以及直接对接推理框架与底层环境的Model Worker推理框架层包括 vLLM、llama.cpp 和 FastChatDB-GPT 直接使用 FastChat 的推理接口因此也将其归入推理框架Vicuna、Llama、Baichuan、ChatGLM 等大语言模型部署在这一层底层部署环境包括 Kubernetes、Ray、AWS、阿里云、私有云等。SMMF 的五大特性模块文档将 SMMF 的核心特性总结为五点这也是理解后续所有操作设计的出发点多模型与多推理框架支持DB-GPT 原生无缝支持 FastChat、vLLM 与 llama.cpp。理论上DB-GPT 支持这三个框架所支持的全部模型。追求推理速度与战术能力可以选用 vLLM希望在 CPU 或 Mac M1/M2 芯片上获得良好推理性能可以选用 llama.cpp。此外还支持代理模型Proxy Model如 OpenAI、Azure、Google Bard、通义、百川、讯飞星火、百度文心、智谱 AI 等。可扩展性与稳定性借鉴 Kubernetes、Istio 等计算调度层的设计理念通过模型注册中心 多实例实现高可用。高框架性能框架层不应成为模型推理性能的瓶颈避免过度封装模型服务层只提供异步接口以兼容推理框架对接层。可管理与可监控通过 API 或命令行对模型实例进行上线、下线、重启、调试等管理与控制并重视用户输入、上下文、模型参数、输出内容与响应时间等可观测信息。轻量用户可按需安装依赖避免不必要的依赖捆绑。WorkerType 的三种类型从源码看模型 Worker 分为三种类型定义在 parameter.py 的WorkerType枚举中llm大语言模型 Workertext2vecEmbedding向量化模型 Worker如 text2vecreranker重排序模型 Worker如 bge-reranker。DB-GPT 通过WorkerType.to_worker_key生成模型名worker类型的唯一标识例如vicuna-13b-v1.5llm、text2vectext2vec在注册表与 API 中统一使用该 key 区分不同实例因此同一个模型名可以在不同 worker 类型下各自注册。支持的模型开源模型与代理模型模块文档列出了 SMMF 支持的典型开源模型与代理模型覆盖了从 6B 到 40B 的常见参数规模开源模型Vicuna13b / 13b-v1.5、LLama27b-chat-hf、Baichuan27b / 13b、ChatGLM6b / chatglm2-6b / chatglm3-6b、Falcon-40B、InternLM7b / 20b、Qwen7b-chat / 14b-chat、WizardLM-13B、Orca-27b / 13b、OpenChat 3.5、Zephyr-7b-alpha、Mistral-7B-Instruct-v0.1、Yi-34B-Chat 等。代理模型ProxyOpenAI·ChatGPT、百川·Baichuan、阿里·通义、Google·Bard、百度·文心、智谱·ChatGLM、讯飞·星火。更多受支持的模型列表可查看 model_metadata.py 中的ModelMetadata注册表。当前仓库中已内置了 DeepSeek-R1 系列、Qwen2.5 系列含 Coder 变体、GLM-4 系列等新模型的元数据含context_length、max_output_length、function_calling等属性。需要强调的是模型适配并不靠穷举名单而是通过适配器Adapter机制动态匹配。在 base.py 中get_supported_models(worker_type)会遍历所有注册的模型适配器收集每个适配器supported_models()声明的模型并将模型的参数描述_get_parameter_descriptions一并包装成SupportedModel返回。这意味着创建模型时弹出的参数表单、可选项列表本质上都是由对应适配器的参数类model_param_class()动态生成的模型新增支持主要体现为新增适配器与元数据注册。从 Web 界面开始多模型管理操作指南使用 Web 界面是体验 SMMF 最直接的方式。启动 DB-GPT Web 前端服务后点击左侧的Model Management模型管理即可进入多模型管理界面。以下操作均以 SMMF 使用教程 为准。查看模型列表List Models打开模型管理界面后可以看到当前已部署模型的列表。列表中的每一项对应一个已经注册到 Model Controller 的模型实例。列表背后对应的 HTTP 接口是 endpoints.py 中的GET /api/v1/serve/model/models它先从 Model Controller 拉取WorkerManagerservice实例用于记录管理端点再拉取全部模型实例并按模型名worker类型拆分后返回模型名、worker 类型、host、port、健康状态、最近心跳时间、prompt 模板等字段。切换使用模型Use Models模型部署完成后可以在多模型界面切换到对应模型进行对话验证。切换的本质是让上层应用WebServer / Agents通过 WorkerManager 将请求路由到指定的模型实例。停止模型Stop Models在模型列表界面选中某个模型点击红色的Stop Model按钮即可停止该模型。模型停止后界面右上角的显示状态会同步变化。该操作对应的后端逻辑是 endpoints.py 中的POST /models/stop它构造WorkerStartupRequest并调用worker_manager.model_shutdown(request)完成下线。部署新模型Model Deployment通过 Web 界面部署新模型分为三步打开网页点击左侧模型管理按钮进入模型列表页点击左上角Create Model在弹出的对话框中选中要部署的模型名称。以下示例选择vicuna-7b-v1.5。根据实际部署的模型选择合适参数不确定时使用默认值即可然后点击对话框左下角的Submit按钮等待模型部署成功。新模型部署完成后即可在模型页看到新部署的模型。创建模型的前端请求对应 endpoints.py 中的POST /models调用worker_manager.model_startup(request)完成启动与注册。如果该模型之前已注册过元数据则POST /models/start会先从持久化存储ModelStorage中查询已有配置再启动保证部署一次、可反复启停。底层原理Controller、Worker 与注册中心的协作理解 Web 界面操作背后还需要掌握 SMMF 的核心运行机制。整个模型部署框架的调用链在 manager.py 的WorkerManager.model_startup()中实现它根据WorkerStartupRequest中的模型名与 worker 类型解析出要加载的适配器与参数类创建对应 worker 的运行时数据WorkerRunData然后依次执行注册register、心跳发送send_heartbeat等回调。模型注册中心Model RegistrySMMF 借鉴微服务注册中心思想一个模型可以拥有多个模型实例所有实例统一注册到模型注册中心调用方根据模型名从注册中心拉取实例列表再按负载均衡策略调用具体实例。注册中心负责存储模型实例元数据可以复用 nacos、eureka、etcd、consul 等现有微服务注册中心实现从而让整个部署系统实现高可用。在 controller.py 的_create_registry中可以看到当前支持两种注册中心实现EmbeddedModelRegistry默认内嵌在 Model Controller 进程内的内存注册中心适合单机或轻量部署StorageModelRegistry基于数据库的注册中心。当controller_params.registry配置了DBModelRegistryParameters时会将模型实例元数据持久化到 SQLite、MySQL 或 OceanBase 数据库源码注释明确只支持这三类数据库作为元数据存储适合多 Worker 分布式部署场景。Model Controller 与健康检查Model Controller 是整个部署框架的控制中心其核心抽象定义在 controller.py 的BaseModelController中包含四个关键方法register_instance注册模型实例deregister_instance注销模型实例get_all_instances获取全部或按模型名、仅健康实例列表send_heartbeat接收实例心跳以确认存活。LocalModelController将上述操作委托给ModelRegistry_RemoteModelController则通过 HTTP 远程调用/api/controller/models、/api/controller/heartbeat等接口实现 Controller 的远程与集群化部署。Controller 默认监听8000端口。相关参数定义在 parameter.py 的ModelControllerParameters中参数默认值说明port8000Model Controller 部署端口registryNone注册中心配置为 None 时使用内嵌注册中心heartbeat_interval_secs20心跳检查间隔秒heartbeat_timeout_secs60心跳超时时间秒超过该时间未响应会将 Worker 标记为不健康服务化接口与鉴权DB-GPT 同时提供了面向应用的模型服务化 API。ModelAPIServerParameters默认端口8100定义于 parameter.py关键参数包括controller_addr要连接的 Model Controller 地址默认http://127.0.0.1:8000api_keys逗号分隔的 API Key 列表为空时不校验cors_allowed_origins允许的 CORS 来源默认*。dbgpt-serve模型模块的 endpoints.py 中实现了check_api_key依赖当配置了api_keys时请求需携带Authorization: Bearer api_key头否则返回 401未配置则放行所有请求。/health端点可用于健康检查。命令行部署集群模式下的完整流程对于习惯命令行的开发者可以使用dbgpt命令行工具完成模型的分布式部署完整流程记录在 集群部署文档 中。前置安装使用dbgpt命令前需要先安装 DB-GPT 项目pip install -e .[default]也可以使用脚本模式运行python pilot/scripts/cli_scripts.py第一步启动 Model Controllerdbgpt start controllerController 启动后默认监听 8000 端口可通过日志确认docker logs db-gpt-webserver-1 -f第二步启动模型 Worker启动glm-4-9b-chat模型 Workerdbgpt start worker --model_name glm-4-9b-chat \ --model_path /app/models/glm-4-9b-chat \ --port 8001 \ --controller_addr http://127.0.0.1:8000启动vicuna-13b-v1.5模型 Workerdbgpt start worker --model_name vicuna-13b-v1.5 \ --model_path /app/models/vicuna-13b-v1.5 \ --port 8002 \ --controller_addr http://127.0.0.1:8000注意务必替换为你自己的模型名称与模型路径。第三步启动 Embedding 与重排序模型 Worker启动 Embedding 模型 Workertext2vecdbgpt start worker --model_name text2vec \ --model_path /app/models/text2vec-large-chinese \ --worker_type text2vec \ --port 8003 \ --controller_addr http://127.0.0.1:8000启动重排序模型 Workerbge-reranker-basedbgpt start worker --worker_type text2vec \ --rerank \ --model_path /app/models/bge-reranker-base \ --model_name bge-reranker-base \ --port 8004 \ --controller_addr http://127.0.0.1:8000查看已部署模型dbgpt model list输出示例---------------------------------------------------------------------------------------------------------------- | Model Name | Model Type | Host | Port | Healthy | Enabled | Prompt Template | Last Heartbeat | ---------------------------------------------------------------------------------------------------------------- | glm-4-9b-chat | llm | 172.17.0.2 | 8001 | True | True | | 2023-09-12T23:04:31.287654 | | WorkerManager | service | 172.17.0.2 | 8001 | True | True | | 2023-09-12T23:04:31.286668 | | WorkerManager | service | 172.17.0.2 | 8003 | True | True | | 2023-09-12T23:04:29.845617 | | WorkerManager | service | 172.17.0.2 | 8002 | True | True | | 2023-09-12T23:04:24.598439 | | WorkerManager | service | 172.21.0.5 | 8004 | True | True | | 2023-09-12T23:04:24.598439 | | text2vec | text2vec | 172.17.0.2 | 8003 | True | True | | 2023-09-12T23:04:29.844796 | | vicuna-13b-v1.5 | llm | 172.17.0.2 | 8002 | True | True | | 2023-09-12T23:04:24.597775 | | bge-reranker-base | text2vec | 172.21.0.5 | 8004 | True | True | | 2024-05-15T11:36:12.935012 | ----------------------------------------------------------------------------------------------------------------可以看到每个模型 Worker 注册后WorkerManager 服务本身也会作为一个service类型的实例注册到 ControllerHealthyTrue表示该 Worker 在心跳超时窗口内保持存活。连接模型服务启动 WebServer上述部署好的模型服务可通过dbgpt_server使用。先修改.env配置文件将连接模型地址指向 Model ControllerLLM_MODELvicuna-13b-v1.5 # 当前默认的 MODEL_SERVER 地址就是 Model Controller 的地址 MODEL_SERVERhttp://127.0.0.1:8000然后启动 WebServerdbgpt start webserver --light--light表示不启动内嵌的模型服务。也可以直接在命令行指定模型LLM_MODELglm-4-9b-chat dbgpt start webserver --light --remote_embedding--remote_embedding表示使用远程部署的 Embedding 模型对应前面部署的 text2vec Worker。dbgpt 命令行工具全景除了 Web 界面dbgpt命令行工具还提供了一整套运维能力包括启动和停止各类服务、知识库管理批量导入、自定义导入、查看与删除知识库文档、模型管理查看、启动、停止模型以及对话调试、以及可观测性工具查看与分析可观测性日志。总览dbgpt --helpdbgpt --help Already connect dbgpt Usage: dbgpt [OPTIONS] COMMAND [ARGS]... Options: --log-level TEXT Log level --version Show the version and exit. --help Show this message and exit. Commands: install Install dependencies, plugins, etc. knowledge Knowledge command line tool model Clients that manage model serving start Start specific server. stop Start specific server. trace Analyze and visualize trace spans.服务启动子命令dbgpt start --helpdbgpt start --help Usage: dbgpt start [OPTIONS] COMMAND [ARGS]... Start specific server. Options: --help Show this message and exit. Commands: apiserver Start apiserver controller Start model controller webserver Start webserver(dbgpt_server.py) worker Start model workerWorker 启动参数dbgpt start worker --helpdbgpt start worker的参数非常丰富是命令行部署的核心参考完整参数如下dbgpt start worker --help Usage: dbgpt start worker [OPTIONS] Start model worker Options: --model_name TEXT Model name [required] --model_path TEXT Model path [required] --worker_type TEXT Worker type --worker_class TEXT Model worker class, pilot.model.cluster.DefaultModelWorker --model_type TEXT Model type: huggingface, llama.cpp, proxy and vllm [default: huggingface] --host TEXT Model worker deploy host [default: 0.0.0.0] --port INTEGER Model worker deploy port [default: 8001] --daemon Run Model Worker in background --limit_model_concurrency INTEGER Model concurrency limit [default: 5] --standalone Standalone mode. If True, embedded Run ModelController --register Register current worker to model controller [default: True] --worker_register_host TEXT The ip address of current worker to register to ModelController. If None, the address is automatically determined --controller_addr TEXT The Model controller address to register --send_heartbeat Send heartbeat to model controller [default: True] --heartbeat_interval INTEGER The interval for sending heartbeats (seconds) [default: 20] --log_level TEXT Logging level --log_file TEXT The filename to store log [default: dbgpt_model_worker_manager.log] --tracer_file TEXT The filename to store tracer span records [default: dbgpt_model_worker_manager_tracer.jsonl] --tracer_storage_cls TEXT The storage class to storage tracer span records --device TEXT Device to run model. If None, the device is automatically determined --prompt_template TEXT Prompt template. If None, the prompt template is automatically determined from model path, supported template: zero_shot,vi cuna_v1.1,llama-2,codellama,alpaca,baichuan- chat,internlm-chat --max_context_size INTEGER Maximum context size [default: 4096] --num_gpus INTEGER The number of gpus you expect to use, if it is empty, use all of them as much as possible --max_gpu_memory TEXT The maximum memory limit of each GPU, only valid in multi-GPU configuration --cpu_offloading CPU offloading --load_8bit 8-bit quantization --load_4bit 4-bit quantization --quant_type TEXT Quantization datatypes, fp4 (four bit float) and nf4 (normal four bit float), only valid when load_4bitTrue [default: nf4] --use_double_quant Nested quantization, only valid when load_4bitTrue [default: True] --compute_dtype TEXT Model compute type --trust_remote_code Trust remote code [default: True] --verbose Show verbose output. --help Show this message and exit.这些命令行参数与 ModelWorkerParameters 定义一一对应。几个值得注意的要点--standalone独立模式。为 True 时会内嵌运行 ModelController适合单机把所有组件跑在一个进程里的轻量部署集群模式下应关闭默认 False。--register/--send_heartbeat/--heartbeat_interval控制 Worker 是否向 Controller 注册、是否发送心跳及心跳间隔默认 20 秒这是 Controller 健康检查默认 60 秒超时能够工作的前提。--load_8bit/--load_4bit/--quant_typefp4/nf4/--use_double_quant量化部署相关对应 compression.py 中加载 8bit/4bit 量化的实现路径。--prompt_template可指定zero_shot、vicuna_v1.1、llama-2、codellama、alpaca、baichuan-chat、internlm-chat等模板不指定时会根据模型路径自动推断。模型管理子命令dbgpt model --helpdbgpt model --help Usage: dbgpt model [OPTIONS] COMMAND [ARGS]... Clients that manage model serving Options: --address TEXT Address of the Model Controller to connect to. Just support light deploy model, If the environment variable CONTROLLER_ADDRESS is configured, read from the environment variable --help Show this message and exit. Commands: chat Interact with your bot from the command line list List model instances restart Restart model instances start Start model instances stop Stop model instancesdbgpt model提供了chat命令行直接对话调试、list列出模型实例、start/stop/restart启停与重启模型实例五个子命令。--address用于指定要连接的 Model Controller 地址也支持通过环境变量CONTROLLER_ADDRESS配置。可观测性与调试用 trace 定位模型调用问题可观测性是生产系统的重要能力。DB-GPT 将关键系统运行信息写入 trace 日志默认位于logs/dbgpt*.jsonl并提供dbgpt trace命令行工具帮助分析这些日志。完整的排查方法记录在 调试文档 中。查看聊天详情dbgpt trace chat默认展示最近一次会话信息--hide_conv可隐藏对话内容、只查看服务运行时信息dbgpt trace chat --hide_conv输出中可以看到 WebServer、EmbeddingModel、ModelWorker、WorkerManager 各组件当前生效的全部配置模型名、模型路径、设备、worker 类型、controller 地址、心跳间隔、量化参数等非常适合核对实际部署参数。查看对话详情与调用链dbgpt trace chat --hide_run_params --tree--tree会以树形结构展示一次请求的完整调用链例如Operation: DB-GPT-Web-Entry Operation: get_chat_instance Operation: stream_generator Operation: BaseChat.stream_call Operation: WorkerManager.generate_stream Operation: DefaultModelWorker.generate_stream Operation: DefaultModelWorker_call.generate_stream_func这条调用链揭示了模型请求的完整路由Web 入口 → 聊天实例 → BaseChat 流式调用 → WorkerManager 路由 → DefaultModelWorker 实际推理。同时会输出该次请求的详细字段包括trace_id、conv_uid、user_input、chat_mode、model_name实际命中的模型、temperature、max_new_tokens、使用的 LLM 适配器例如FastChatLLMModelAdaperWrapper(VicunaAdapter)、最终的用户 prompt 与模型输出用于判断是否命中预期的模型与参数。按 trace_id 定位与分析dbgpt trace chat --hide_run_params --trace_id ec30d733-7b35-4d61-b02e-2832fd2e29ffdbgpt trace chat --help的全部选项Options: --trace_id TEXT Specify the trace ID to analyze. If None, show latest conversation details --tree Display trace spans as a tree --hide_conv Hide your conversation details --hide_run_params Hide run params --output [text|html|csv|latex|json] The output format --help Show this message and exit.列出与检索 trace列出全部 trace 信息dbgpt trace list按 span 类型过滤例如只看聊天相关的 spandbgpt trace list --span_type chat按关键字搜索例如搜索用户输入Hellodbgpt trace list --search Hellodbgpt trace list --help的完整选项包括--trace_id、--span_id、--span_type、--parent_span_id、--search、-l/--limit、--start_time/--end_time时间过滤格式YYYY-MM-DD HH:MM:SS.mmm、--desc倒序以及--outputtext/html/csv/latex/json 输出格式。配置化部署通过 TOML 声明模型除了命令行与 Web 界面DB-GPT 还支持通过配置文件声明式地管理多模型。在 dbgpt-app-config.example.toml 中模型配置通过[models]段声明[models] [[models.llms]] name ${env:LLM_MODEL_NAME:-gpt-4o} provider ${env:LLM_MODEL_PROVIDER:-proxy/openai} api_base ${env:OPENAI_API_BASE:-https://api.openai.com/v1} api_key ${env:OPENAI_API_KEY} [[models.embeddings]] name ${env:EMBEDDING_MODEL_NAME:-text-embedding-3-small} provider ${env:EMBEDDING_MODEL_PROVIDER:-proxy/openai} api_url ${env:EMBEDDING_MODEL_API_URL:-https://api.openai.com/v1/embeddings} api_key ${env:OPENAI_API_KEY}这些配置段与 parameter.py 的ModelsDeployParameters对应支持llms、embeddings、rerankers三类列表以及default_llm、default_embedding、default_reranker三个默认模型指定字段。关键语义provider支持huggingface、llama.cpp、llama_cpp_server、vllm以及proxy/平台名代理模型定义于 parameter.py 的BaseDeployModelParameters.provider合法值列表中default_*字段用于在多模型共存时指定默认使用哪个模型__post_init__中会自动将列表第一个模型设为默认配置文件支持${env:VAR:-default}环境变量插值语法便于在不同环境间复用同一份配置。若以集群模式部署每个模型通常只需部署一个 Worker默认模型则通过default_llm等字段在服务端指定。按需安装依赖保持轻量考虑到支持的模型与推理框架众多SMMF 强调避免不必要的依赖。DB-GPT 允许用户按需安装依赖主要可选的安装方式如下# 最基础依赖 pip install -e . # 或 pip install -e .[core] # 基础框架依赖 pip install -e .[framework] # openai 代理模型依赖 pip install -e .[openai] # 默认依赖 pip install -e .[default] # vLLM 推理框架依赖 pip install -e .[vllm] # 模型量化部署依赖 pip install -e .[quantization] # 知识库相关依赖 pip install -e .[knowledge] # pytorch 依赖 pip install -e .[torch] # llama.cpp 依赖 pip install -e .[llama_cpp] # 向量数据库依赖 pip install -e .[vstore] # 数据源依赖 pip install -e .[datasource]这些 extras 定义在项目的 pyproject.toml 中。实际部署时按需选择例如只用 vLLM 就装.[vllm]要在 CPU/Mac 上跑就装.[llama_cpp]做 RAG 知识库就补上.[knowledge]与.[vstore]。小结SMMF 是 DB-GPT 模型服务的核心支撑围绕多模型、多推理框架、可扩展、可观测、轻量五大特性设计。实践中可以按三条路径使用Web 界面路径适合快速体验与日常管理通过模型管理界面完成查看、部署、切换与停止模型命令行路径适合生产集群使用dbgpt start controllerdbgpt start worker拉起多模型实例通过dbgpt model系列命令管理配合dbgpt trace进行可观测性排查配置文件路径适合声明式部署通过[models]TOML 段一次性声明 LLM / Embedding / Reranker 模型及其默认选择。更进一步可以阅读 SMMF 完整设计modules/smmf.md、集群部署文档 以及 调试文档并结合本仓库源码模型核心实现位于 packages/dbgpt-core/src/dbgpt/model、服务化 API 位于 packages/dbgpt-serve/src/dbgpt_serve/model进行深入探索。【免费下载链接】DB-GPTopen-source agentic AI data assistant for the next generation of AI Data products.项目地址: https://gitcode.com/GitHub_Trending/db/DB-GPT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表