Spaces:
Sleeping
Sleeping
# app.py (Slight modification) | |
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() | |
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 | |
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) | |
def get_conv(): | |
user_id = get_user_id() | |
return convHandler.get_conv(user_id) | |
def create_conv(): | |
user_id = get_user_id() | |
sysPrompt = request.json.get('system_prompt', '') | |
return convHandler.create_conv(ip=user_id, sysPrompt=sysPrompt) | |
def fetch(): | |
user_id = get_user_id() | |
convId = request.json.get('convId') | |
return convHandler.fetch_conv(convId=convId, ip=user_id) | |
def models(): | |
return list(pipeline_dict['api']['models'].keys()) | |
# New route for TTS | |
def tts(): | |
text = request.args.get('text') | |
if not text: | |
return "No text provided", 400 | |
audio_stream = generate_tts(text) # Await the result | |
return Response(audio_stream, mimetype="audio/wav") | |
if __name__ == "__main__": | |
app.run(host="0.0.0.0", port=7860, debug=False) |