欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > gradio 订单处理agent

gradio 订单处理agent

2025/4/27 12:03:05 来源:https://blog.csdn.net/u014158430/article/details/147500230  浏览:    关键词:gradio 订单处理agent

太棒了!我们可以加一版结合 Gradio 界面、多步骤状态图调用日志 以及 GPT智能决策 的版本。这样不仅可以提升用户体验,还能帮助你快速搭建一个完整的业务流演示。

✅ 版本概要

  • Gradio:提供一个简单易用的前端界面,用户输入自然语言发起操作。
  • 多步骤状态图:使用 Graphviz(或 Mermaid)生成业务流状态图,显示从下单到完成的每一步。
  • 调用日志:记录每一步的操作,用户可查看执行的过程。
  • GPT智能决策:根据用户输入的自然语言,自动分析意图并选择相应的业务操作。

✅ 环境依赖安装

pip install openai gradio requests graphviz pydot

✅ 完整代码实现

1. 业务流后端(FastAPI)

首先我们用 FastAPI 完成业务流的接口,模拟电商订单的提交、处理、完成流程。

from fastapi import FastAPI, Request
from pydantic import BaseModel
from typing import Dict
import uuid
import time
import openai
import jsonapp = FastAPI()# 存储所有订单的字典
orders_db: Dict[str, Dict] = {}# -------- GPT 分析用户意图 --------
def gpt_analyze_intent(user_input: str) -> str:openai.api_key = "YOUR_OPENAI_API_KEY"  # 替换为你的 OpenAI API 密钥prompt = f"""请根据用户输入的自然语言,判断其意图并返回相应的操作:用户输入:{user_input}可选操作:1. 提交订单:包括订单信息(用户ID、商品ID、数量等)。2. 处理订单:包括验证支付、库存、发货等。3. 完结订单:包括发货、订单完成等。"""response = openai.Completion.create(engine="gpt-4",prompt=prompt,max_tokens=50)return response.choices[0].text.strip()# -------- Step 1: 用户下单 --------
class OrderRequest(BaseModel):user_id: strproduct_id: strquantity: int@app.post("/submit_order")
def submit_order(req: OrderRequest):order_id = str(uuid.uuid4())orders_db[order_id] = {"status": "submitted","user_id": req.user_id,"product_id": req.product_id,"quantity": req.quantity,"timestamp": time.time()}return {"order_id": order_id, "message": "✅ 订单已提交", "status": "submitted"}# -------- Step 2: 系统处理订单(支付、库存) --------
@app.post("/process_order")
def process_order(request: Request):body = await request.json()order_id = body.get("order_id")if order_id not in orders_db:return {"error": "❌ 未找到订单"}orders_db[order_id]["status"] = "processing"orders_db[order_id]["processed_at"] = time.time()return {"order_id": order_id,"message": "🛠️ 订单处理中(支付验证、库存锁定)","status": "processing"}# -------- Step 3: 完结订单(发货、关闭) --------
@app.post("/complete_order")
def complete_order(request: Request):body = await request.json()order_id = body.get("order_id")if order_id not in orders_db:return {"error": "❌ 未找到订单"}orders_db[order_id]["status"] = "completed"orders_db[order_id]["completed_at"] = time.time()return {"order_id": order_id,"message": "📦 订单已完成,进入发货流程","status": "completed"}

2. Gradio 前端(用户输入自然语言)

Gradio 提供了一个简单的界面,用户可以输入自然语言,GPT 将分析意图,决定是“提交订单”、还是“处理订单”、或是“完结订单”。

import gradio as gr
import requests
import json
from graphviz import Digraph# 定义订单操作的状态图
def generate_status_graph():dot = Digraph(comment='Order Workflow')dot.node('A', '提交订单')dot.node('B', '处理订单')dot.node('C', '发货 & 完结')dot.edges(['AB', 'BC'])return dot.render(filename='order_flow', format='png')# GPT 智能决策(处理用户输入并返回操作)
def gpt_decision(user_input):action = gpt_analyze_intent(user_input)return action# 执行业务流操作
def execute_action(user_input):action = gpt_decision(user_input)order_id = Noneif action == "提交订单":resp = requests.post("http://localhost:8000/submit_order", json={"user_id": "user123","product_id": "p456","quantity": 2})order_id = resp.json()["order_id"]elif action == "处理订单":resp = requests.post("http://localhost:8000/process_order", json={"order_id": order_id})elif action == "完结订单":resp = requests.post("http://localhost:8000/complete_order", json={"order_id": order_id})# 调用状态图生成graph_path = generate_status_graph()return graph_path, f"Action: {action}", json.dumps(resp.json(), indent=2)# Gradio 界面
with gr.Blocks() as demo:gr.Markdown("## 电商订单流程自动化")with gr.Row():user_input = gr.Textbox(label="请输入订单操作指令", placeholder="如:我要下单")run_button = gr.Button("开始操作")with gr.Row():chart_output = gr.Image(label="订单流程图")action_output = gr.Textbox(label="GPT 判定的操作", lines=3)json_output = gr.Textbox(label="执行结果 JSON", lines=10)run_button.click(fn=execute_action,inputs=[user_input],outputs=[chart_output, action_output, json_output])demo.launch()

3. 功能详解

  1. 用户输入:通过 Gradio 提供的文本框,用户可以输入如 “我要下单”、“处理订单” 等命令。
  2. GPT 智能决策:使用 GPT 分析用户输入的自然语言,判断用户要执行哪个操作(提交订单、处理订单或完结订单)。
  3. 订单状态图:每一步的执行情况都通过 Graphviz 绘制一个简单的状态图,展示“下单→处理→完结”的流程。
  4. JSON 记录:每一次操作的日志和返回的状态会以 JSON 格式输出,方便查看每一步的执行情况。

4. 运行示例

  1. 启动 FastAPI 服务:首先启动 FastAPI 后端服务。
uvicorn main:app --reload
  1. 启动 Gradio 前端界面:然后启动 Gradio 前端。
python gradio_app.py
  1. 在浏览器中输入:访问生成的 Gradio 界面,输入如 “我要下单”,系统会根据智能决策生成订单,并展示状态图和操作日志。

✅ 后续拓展方向

功能描述
🛠️ 自定义操作流程支持用户定义更多的业务操作,例如取消订单、修改订单等。
🌍 数据持久化配合数据库持久化订单状态,实现更复杂的业务流程。
🧠 多轮对话支持使用 LangChain 实现多个步骤之间的上下文记忆,实现更智能的多轮对话流程。
📦 图表美化增加图表美化,例如使用不同的颜色表示不同的状态,或绘制 Gantt 图等。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词