import gradio as gr import openai import time # **配置 OpenAI API Key** OPENAI_API_KEY = "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" # 👈 **替换这里!** # **使用新版本的 OpenAI Client** client = openai.OpenAI(api_key=OPENAI_API_KEY) def generate_task_structure(prompt): """ 通过 OpenAI GPT-4o 生成任务管理计划,**支持进度条 & 流式输出** """ structured_prompt = f""" 你是 `StratAI`,一个智能任务管理 AI 助手。请根据用户的需求,生成一份完整的任务管理计划。 任务应包括: - **目标** - **主要任务** - **子任务** - **里程碑** - **时间安排** 用户的需求是:{prompt} 请输出结构化的任务规划,使其适合直接阅读。 """ # **1️⃣ 任务开始,初始化进度条** progress_steps = [ ("🟢 开始处理任务...", 0.1), ("🟡 调用 OpenAI GPT-4o...", 0.3), ("🔵 AI 生成任务内容中...", 0.6), ("✅ 任务完成!", 1.0) ] # **2️⃣ 调用 OpenAI API(流式输出)** response = client.chat.completions.create( model="gpt-4o", messages=[ {"role": "system", "content": "你是一个任务管理 AI 助手,帮助用户创建任务计划。"}, {"role": "user", "content": structured_prompt} ], temperature=0.5, stream=True # **开启流式响应** ) # **3️⃣ UI 进度条** with gr.update() as ui: for text, progress in progress_steps: ui.progress(progress) # **更新进度条** ui.update(text) # **更新进度信息** time.sleep(0.5) # **4️⃣ 流式输出** full_text = "" for chunk in response: text_chunk = chunk.choices[0].delta.content or "" full_text += text_chunk yield full_text # **实时输出** yield "✅ 任务已完成!" # **Gradio UI** with gr.Blocks() as demo: gr.Markdown("# 🧠 StratAI - AI 任务管理助手") gr.Markdown("输入你的想法,让 AI 生成 **目标 -> 任务 -> 里程碑 -> 排期**") user_input = gr.Textbox(label="输入你的想法", placeholder="例如:我想开一家精品咖啡店") with gr.Row(): progress_bar = gr.Slider(minimum=0, maximum=1, step=0.01, label="任务进度", value=0, interactive=False) output_text = gr.Textbox(label="任务规划", lines=15) submit_button = gr.Button("生成任务") submit_button.click(fn=generate_task_structure, inputs=user_input, outputs=[progress_bar, output_text]) demo.launch()