You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradio Interface无输出问题:如何显示Prompter类方法返回值?

解决Gradio Interface无输出问题

核心问题排查与修复项

  • 修正输入参数配置
    你定义了inputs = gr.inputs.Textbox(label="Name"),但创建Interface时传入inputs=None,这会导致Gradio无法传递输入参数,函数逻辑无法正确触发。需将inputs参数设置为你定义的文本框组件。

  • 适配新版Gradio API
    gr.inputs和gr.outputs属于旧版已弃用API,建议改用gr.Textbox()直接创建输入输出组件,避免兼容性问题。

  • 关联输入参数与业务逻辑
    函数emo接收name参数,但返回时直接使用emo_name_prompts,需确保该变量结合输入的name构造了符合OpenAI要求的messages列表,否则调用逻辑不符合预期。

  • 添加异常捕获与日志
    在emo函数中加入异常捕获,打印错误信息,便于排查API调用时的潜在问题(如网络超时、参数错误等)。

修复后完整代码示例

import gradio as gr
import os
import openai

class Prompter:
    def __init__(self, gpt_model, temper):
        if not os.environ.get("OPENAI_API_KEY"):
            raise Exception("Please set the OPENAI_API_KEY environment variable")

        openai.api_key = os.environ.get("OPENAI_API_KEY")
        self.gpt_model = gpt_model
        self.temper = temper

    def prompt_model_print(self, messages: list):
        response = openai.ChatCompletion.create(model=self.gpt_model, messages=messages)
        return response["choices"][0]["message"]["content"]

# 初始化Prompter实例(参数根据实际情况调整)
prompter = Prompter(gpt_model="gpt-3.5-turbo", temper=0.7)

def emo(name):
    # 结合输入name构造OpenAI所需的messages列表
    emo_name_prompts = [
        {"role": "user", "content": f"Please generate a Python list of 10 new feelings related to the name {name}, provide name and sentiment"}
    ]
    try:
        result = prompter.prompt_model_print(emo_name_prompts)
        return result
    except Exception as e:
        print(f"Error: {str(e)}")
        return f"Error occurred: {str(e)}"

# 使用新版Gradio组件
inputs = gr.Textbox(label="Name")
outputs = gr.Textbox(label="Emotion")

demo = gr.Interface(
    fn=emo, 
    inputs=inputs, 
    outputs=outputs, 
    title="Discover Emotion", 
    description="Enter a name to generate a Python list of 10 new feelings with name and sentiment"
)
demo.launch(share=True)

额外验证步骤

  1. 确认Colab中已正确设置OPENAI_API_KEY环境变量,可通过print(os.environ.get("OPENAI_API_KEY"))检查。
  2. 再次测试prompter.prompt_model_print在Gradio外的调用,确保API密钥、模型参数、messages格式均正确。

内容的提问来源于stack exchange,提问作者S.H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 17:33:28