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

Python Azure WebApp集成OpenAI遇缩进错误,请求技术支持

解决Flask中OpenAI Azure接口调用的缩进错误及响应处理问题

核心问题分析

你的代码出现缩进错误是因为Python代码的缩进格式不统一——部分代码使用3个空格缩进,部分使用更多空格,违反了Python严格的缩进规则(必须统一使用4个空格或Tab,不能混合)。同时还有两个额外问题需要修正才能正常获取并展示OpenAI响应:

  1. OpenAI响应是对象,直接传递给模板无法正常渲染
  2. 环境变量名称需确保和你配置的一致

修正后的完整代码

import os
import openai

from flask import (Flask, redirect, render_template, request,
                   send_from_directory, url_for)

app = Flask(__name__)


@app.route('/')
def index():
    print('Request for index page received')
    return render_template('index.html')

@app.route('/favicon.ico')
def favicon():
    return send_from_directory(os.path.join(app.root_path, 'static'),
                               'favicon.ico', mimetype='image/vnd.microsoft.icon')

@app.route('/hello', methods=['POST'])
def hello():
    name = request.form.get('name')
    # 统一缩进为4个空格,配置OpenAI Azure参数
    openai.api_type = "azure"
    openai.api_base = "https://itsavvy.openai.azure.com/"
    openai.api_version = "2022-12-01"
    openai.api_key = os.getenv("OPENAI_API_KEY")  # 建议使用规范的环境变量名

    response = openai.Completion.create(
        engine="ITsavvy",
        prompt=name,
        temperature=1,
        max_tokens=100,
        top_p=0.5,
        frequency_penalty=0,
        presence_penalty=0,
        stop=None
    )

    if name:
        # 提取响应文本内容,而非直接传递响应对象
        ai_response = response.choices[0].text.strip()
        print('Request for hello page received with response=%s' % ai_response)
        return render_template('hello.html', name=ai_response)
    else:
        print('Request for hello page received with no name or blank name -- redirecting')
        return redirect(url_for('index'))


if __name__ == '__main__':
    app.run(debug=True)  # 添加debug=True方便开发时调试

关键修正点说明

  • 统一缩进格式:所有代码块的缩进改为4个空格,确保Python解释器能正确识别代码块层级
  • 响应处理优化:从OpenAI返回的response对象中提取choices[0].text字段,去除首尾空白后再传递给模板
  • 环境变量规范:将环境变量名改为更通用的OPENAI_API_KEY,需确保你在Azure或本地环境中配置了对应的密钥值
  • 调试模式:添加debug=True到app.run(),开发时能看到详细错误信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 01:03:14