python+flask反向代理义千问chatgpt api接口流式和非流式输出

代码语言:python

所属分类:其他

代码描述:python+flask反向代理义千问chatgpt api接口流式和非流式输出,根据body中的stream来判别是否启用流式代理请求。

代码标签: python flask 反向代理 通义千问 chatgpt api 接口 流式 非流式 输出

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

#!/usr/local/python3/bin/python3
# -*- coding: utf-8 -*
from flask import Flask, request, Response
import requests

app = Flask(__name__)



@app.route('/', defaults={'path': ''})
@app.route('/api/<path:subpath>', methods=['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'])
def proxy(subpath):
    # 定义目标URL
    target_url =urljoin('https://dashscope.aliyuncs.com/', quote(subpath)) 
    
    # 解析请求中的JSON数据
    try:
        data = json.loads(request.get_data())
    except json.JSONDecodeError:
        data = {}
    
    # 判断是否启用流模式
    stream_enabled = data.get('stream', False)

    # 返回目标URL的响应
    if stream_enabled:
        # 转发请求到目标URL
        response = requests.request(
            method=request.method,
            url=target_url,
            headers={key: value for (key, value) in request.headers if key != 'Host'},
            data=request.get_data(),
        
            allow_redirects=False,
            stream=True,  # 根据条件启用流式传输
            timeout=100    # 设置超时时间为10秒
        )
        return Response(
            response.iter_content(chunk_size=1024),  # 流式输.........完整代码请登录后点击上方下载按钮下载查看

网友评论0