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

OpenAI API v1.0.0兼容问题:名片生成项目报错求助

OpenAI v1.0.0 适配指南(Streamlit名片生成项目)

核心修改要点

  • 客户端初始化:从全局设置API密钥改为创建OpenAI类实例
  • 图片生成调用:将openai.Image.create()替换为client.images.generate()
  • 响应解析:返回数据结构基本兼容,仅调用方式从字典索引改为属性访问

旧版本问题代码示例

import streamlit as st
import openai

openai.api_key = st.secrets["OPENAI_API_KEY"]

def generate_business_card(user_info):
    prompt = f"生成专业名片:{user_info},风格简洁商务"
    response = openai.Image.create(
        prompt=prompt,
        n=1,
        size="1024x1024"
    )
    return response['data'][0]['url']

# Streamlit UI
st.title("智能名片生成器")
user_input = st.text_area("输入个人/公司信息:")
if st.button("生成名片"):
    card_url = generate_business_card(user_input)
    st.image(card_url, caption="生成的名片")

适配OpenAI v1.0.0+的代码

import streamlit as st
from openai import OpenAI

# 初始化OpenAI客户端
client = OpenAI(api_key=st.secrets["OPENAI_API_KEY"])

def generate_business_card(user_info):
    prompt = f"生成专业名片:{user_info},风格简洁商务"
    # 替换为新版本图片生成方法
    response = client.images.generate(
        prompt=prompt,
        n=1,
        size="1024x1024"
    )
    # 响应解析逻辑与旧版本兼容,仅改为属性访问
    return response.data[0].url

# Streamlit UI部分无需修改
st.title("智能名片生成器")
user_input = st.text_area("输入个人/公司信息:")
if st.button("生成名片"):
    card_url = generate_business_card(user_input)
    st.image(card_url, caption="生成的名片")

关键说明

  • 客户端实例化是v1.0.0+的强制要求,不再支持全局openai.api_key的设置方式
  • client.images.generate()的参数与旧方法完全一致,无需调整业务逻辑
  • 响应数据的结构未发生本质变化,仅从字典键值对改为对象属性访问,原有逻辑可直接复用

内容的提问来源于stack exchange,提问作者SAV

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 22:52:08