在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策略