Spaces:
Sleeping
Sleeping
File size: 2,095 Bytes
9b71c73 acdfb2b 9b71c73 1d010bc 9b71c73 acdfb2b 1d010bc acdfb2b 9b71c73 acdfb2b 9b71c73 acdfb2b 9b71c73 acdfb2b 9b71c73 acdfb2b 9b71c73 acdfb2b 9b71c73 acdfb2b 9b71c73 acdfb2b 9b71c73 acdfb2b 9b71c73 acdfb2b 9b71c73 acdfb2b 9b71c73 acdfb2b 1d010bc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# app.py
from config import Flask, pipeline_dict, Response, convHandler, get_user_id
from application.chat_inference import ChatInference
from flask import render_template, request, make_response
from application.utils.image_captioning import ImageCaptioning
from application.utils.text_to_speech import generate_tts # Import
app = Flask(__name__, template_folder='application/templates', static_folder='application/static')
chat_inference = ChatInference()
image_captioning = ImageCaptioning()
@app.route('/')
def home():
user_id = get_user_id()
response = make_response(render_template('index.html'))
response.set_cookie('user_id', user_id) # Set the cookie
return response
@app.route('/completions', methods=['POST'])
def completeions():
user_id = get_user_id()
data = request.json
models = pipeline_dict['api']['models']
if data.get('model', None) not in models:
return "Model Not Found", 404
model_info = models[data['model']]
data.update({
"base_url": model_info['api_url'],
"type": model_info['type']
})
return chat_inference.chat(data=data, handle_stream=pipeline_dict['handle_stream'], user=user_id)
@app.route('/convs')
def get_conv():
user_id = get_user_id()
return convHandler.get_conv(user_id)
@app.route('/create', methods=['POST'])
def create_conv():
user_id = get_user_id()
sysPrompt = request.json.get('system_prompt', '')
return convHandler.create_conv(ip=user_id, sysPrompt=sysPrompt)
@app.route('/fetch', methods=['POST'])
def fetch():
user_id = get_user_id()
convId = request.json.get('convId')
return convHandler.fetch_conv(convId=convId, ip=user_id)
@app.route('/models')
def models():
return list(pipeline_dict['api']['models'].keys())
@app.route('/tts') # New route for TTS
def tts():
text = request.args.get('text')
if not text:
return "No text provided", 400
audio_stream = generate_tts(text)
return Response(audio_stream, mimetype="audio/wav")
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860, debug=False) |