在Flask中实现OpenaiApi 流式输出

在Flask中实现OpenaiApi 流式输出

其他支持openai风格的也可以,直接上代码了

#运行依赖
pip install flask,openai
from openai import OpenAI 
from flask import Flask, request, jsonify,Response
tm=0.3
#主函数,其中proxy_url可以指定第三方的openai服务器
def gpt_completions_stream(prompt, system_prompt=""):
    proxy_url = "https://api.openai.com/v1" 
    API = "sk-这里放置你自己的api,token就可以,可以用deep-seek的"  
    client = OpenAI(api_key=API, base_url=proxy_url) 
    send = [{'role': 'system', 'content': system_prompt}, {"role": "user", "content": prompt}] 
    completion = client.chat.completions.create( 
    	#用deep-seek的api-key,对应模型也需要切换
        model="gpt-4o", 
        messages=send,
        stream=True,
        temperature=tm
    )
    for chunk in completion:
        if  chunk.choices[0].delta.content:
        	#遵守SSE要求
            yield f"data: {chunk.choices[0].delta.content}\n\n".encode('utf-8')
app = Flask(__name__)

@app.route('/ai', methods=['GET'])
def chat():
    return Response(gpt_completions_stream("你好"), mimetype='text/event-stream')

if __name__ == '__main__':
    app.run(debug=False,threaded=True)

#其他说明:如果要作为多个网站的api服务器,需要配置cors策略
Flask ,可以使用 Flask-Login 扩展来实现用户登录认证。 首先,需要安装 Flask-Login 扩展: ``` pip install flask-login ``` 然后,在 Flask 应用初始化 Flask-Login: ```python from flask import Flask from flask_login import LoginManager app = Flask(__name__) login_manager = LoginManager() login_manager.init_app(app) ``` 接着,需要定义一个 User 类,用于表示用户: ```python class User: def __init__(self, user_id): self.id = user_id ``` 实际运用时,需要将 User 类与具体的用户模型关联起来。 然后,需要实现一个回调函数,用于加载用户: ```python @login_manager.user_loader def load_user(user_id): return User(user_id) ``` 在用户登录时,需要验证用户的身份,并将用户登录状态保存到会话: ```python from flask import request, redirect, url_for from flask_login import login_user, current_user @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': # 验证用户身份 user_id = authenticate(request.form['username'], request.form['password']) if user_id is not None: # 登录成功,保存用户状态 user = User(user_id) login_user(user) return redirect(url_for('index')) return render_template('login.html') ``` 最后,在需要进行用户认证的视图函数,可以使用 `current_user` 变量来获取当前已登录的用户对象: ```python from flask import abort from flask_login import login_required @app.route('/dashboard') @login_required def dashboard(): # 获取当前已登录的用户对象 user = current_user if not user.is_admin: abort(403) # 显示用户的仪表盘 return render_template('dashboard.html', user=user) ``` 以上就是在 Flask 实现用户登录认证的基本流程。需要注意的是,上述代码只是一个示例,实际应用还需要根据具体的业务需求进行修改和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值