livekit / flask_app.py
andrymamboro's picture
Update flask_app.py
7d71db7 verified
Raw
History Blame Contribute Delete
1.71 kB
from flask import Flask, jsonify, render_template, request # Tambahkan request
from flask_cors import CORS
import os
import time
from dotenv import load_dotenv
from livekit import api
load_dotenv()
app = Flask(__name__)
CORS(app) # Tambahkan ini agar CORS aktif!
@app.route('/')
def home():
return render_template("index.html")
@app.route('/status')
def status():
return jsonify({
"status": "online",
"message": "Voice Agent API Helper is running",
"agent_config": {
"voice": os.getenv("INWORLD_VOICE", "default"),
"stt": "AssemblyAI/Deepgram"
}
})
@app.route('/api/update-config', methods=['POST'])
def update_config():
data = request.json
# Di sini Anda bisa memproses data konfigurasi yang dikirim dari UI lokal
print(f"Konfigurasi diterima: {data}")
return jsonify({"status": "success", "message": "Konfigurasi diperbarui"})
@app.route('/token')
def get_token():
# Ambil konfigurasi dari .env
lk_api_key = os.getenv("LIVEKIT_API_KEY")
lk_api_secret = os.getenv("LIVEKIT_API_SECRET")
# Buat Token untuk user web
token = api.AccessToken(lk_api_key, lk_api_secret) \
.with_identity("web_user_" + str(int(time.time()))) \
.with_name("Web Visitor") \
.with_grants(api.VideoGrants(
room_join=True,
room="my-voice-room", # Harus sama dengan yang dipantau agent
))
return jsonify({
"token": token.to_jwt(),
"server_url": os.getenv("LIVEKIT_URL")
})
if __name__ == "__main__":
print("Starting Flask helper on port 7860...")
# Hugging Face Spaces menggunakan port 7860
app.run(host="0.0.0.0", port=7860)