移动端支持 #3172
Replies: 9 comments
|
可以做,但建议拆成两层:DB-GPT 本体继续提供 Web/API,移动端和 IM 渠道作为独立适配层实现。 1. 移动端 / H5 支持目前最简单的方式是把 DB-GPT Web UI 通过 HTTPS 暴露出来,手机浏览器直接访问,即 H5 方式。 如果要“原生 App”体验,可以不改 DB-GPT 核心,直接包一层 WebView:
建议前端做几件事: 如果只是 H5,可以先加 PWA manifest,让用户“添加到主屏幕”。 2. 飞书 / |
|
可以支持,建议按“前端适配 + Channel Gateway”两层来做: 1. 移动端 / H5 支持DB-GPT 本身主要是服务端 + Web UI + OpenAPI,因此 |
|
可以把这个需求拆成两部分:移动端 H5/原生壳 和 ** |
|
可以,建议把“移动端支持”拆成两个独立能力来做: 1. H5 / 原生移动端如果目标是移动端页面,不建议一开始做完整原生 App,可以先做 H5:
核心调用示例: const res = await fetch("/api/v1/chat/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
},
body: JSON.stringify({
model: "your_model_or_app",
messages: [{ role: "user", content: "查询最近 7 天销售额" }],
stream: false,
}),
});移动端重点注意:
2. 飞书 / 企业微信 / 钉钉 Message Channel可以做一个 建议不要同步等待 DB-GPT 返回,因为 SQL 生成、Agent、知识库检索可能耗时较长。正确方式是:收到消息后立即 ack,再异步调用 DB-GPT,最后通过 IM 平台 API 回复。 FastAPI 示例骨架: from fastapi import FastAPI, Request
import asyncio
import httpx
app = FastAPI()
DBGPT_URL = "http://localhost:5670/api/v1/chat/completions"
DBGPT_API_KEY = "your_api_key"
@app.post("/feishu/webhook")
async |
|
可以把“移动端支持”拆成两个独立能力建设,不建议一开始就做重度的原生 App: 1. H5 / 移动端页面支持更推荐走 移动端 H5 + DB-GPT API 的方式:
|
|
可以,建议按“移动端 H5/WebView + IM Channel Adapter”两层来做。 1. 移动端支持如果目标是移动端使用 DB-GPT,短期最稳的方案不是立刻做原生 App,而是:
|
|
可以做,建议按“移动端只走 API,不直接魔改主 Web”来实现。 1. 原生移动端 / H5 支持目前更稳妥的方案是:DB-GPT 服务端保持不变,单独做一个移动端 H5/PWA/小程序,通过 DB-GPT 的 HTTP API 对话。 步骤:
2. 飞书 / 企业微信 / 钉钉等 Message Channel可以实现一个独立 架构: 最小设计: |
|
可以支持,但建议分成两层来做:
|
|
可以把“移动端支持”拆成两件事来做:H5/原生壳接入 和 IM Channel 接入。如果目前还没有官方原生移动端/飞书/钉钉通道,比较稳的方案是先走 DB-GPT 的后端 API。 1. H5 / 移动端支持建议不要直接魔改桌面 Web 页面,而是做一个轻量移动端页面,直接调用 DB-GPT 的 Chat API。 // H5 页面调用示例
const res = await fetch("http://your-dbgpt-host:5670/api/v1/chat/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer YOUR_TOKEN"
},
body: JSON.stringify({
model: "your_model",
messages: [
{ role: "user", content: "帮我查询最近 7 天销售额" }
],
stream: false
})
});
const data = await res.json();
console.log(data.choices?.[0]?.message?.content);如果要接近原生体验,可以用 Capacitor / Taro / React Native WebView 包一层。注意:
|
Uh oh!
There was an error while loading. Please reload this page.
All reactions