1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- from flask import Flask, Response
- from flask_cors import CORS
- import time
- from http import HTTPStatus
- import dashscope
- from dashscope import Generation
- DASHSCOPE_API_KEY = "sk-01961138995e44ac8226e56882fa0f5a"
- dashscope.api_key = DASHSCOPE_API_KEY
- app = Flask(__name__)
- CORS(app)
- @app.route("/")
- def index():
- return "Welcome to Lianqi AI"
- @app.route("/subscribe_qwen/<question>", methods=["GET", "POST"])
- def stream(question):
- return Response(call_with_stream(question), mimetype="text/event-stream")
- def event_stream():
- while True:
- yield "data: {}\n\n".format(time.time())
- time.sleep(1)
- def call_with_stream(msg):
- messages = [{"role": "user", "content": msg}]
- responses = Generation.call(
- Generation.Models.qwen_turbo,
- messages=messages,
- result_format="message", # set the result to be "message" format.
- stream=True,
- incremental_output=True, # get streaming output incrementally
- )
- full_content = "" # with incrementally we need to merge output.
- for response in responses:
- if response.status_code == HTTPStatus.OK:
- full_content += response.output.choices[0]["message"]["content"]
- print(full_content)
- yield full_content + "\n\n"
- else:
- yield (
- "Request id: %s, Status code: %s, error code: %s, error message: %s\n\n"
- % (
- response.request_id,
- response.status_code,
- response.code,
- response.message,
- )
- )
- if __name__ == "__main__":
- app.run(host="0.0.0.0", debug=True, threaded=True, port=20021)
|