43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
from fastapi import APIRouter, Request
|
|
import os
|
|
import queue
|
|
from dotenv import load_dotenv
|
|
import json
|
|
|
|
load_dotenv()
|
|
|
|
router = APIRouter()
|
|
|
|
@router.post("/handle_whisper_live_eos_utterance/{user_id}")
|
|
async def handle_whisper_live_eos_utterance(user_id: str, request: Request):
|
|
data = await request.json()
|
|
utterance = data.get("utterance")
|
|
print(f"Utterance: {utterance}")
|
|
start = data.get("start")
|
|
end = data.get("end")
|
|
print(f"Start: {start}")
|
|
print(f"End: {end}")
|
|
eos = data.get("eos")
|
|
print(f"Eos: {eos}")
|
|
user_dir = f"../../data/users/{user_id}/transcripts"
|
|
if not os.path.exists(user_dir):
|
|
os.makedirs(user_dir)
|
|
|
|
log_file = os.path.join(user_dir, "utterances.log")
|
|
with open(log_file, "a") as f:
|
|
f.write(json.dumps(data) + "\n")
|
|
|
|
return {"message": "Utterance logged successfully"}
|
|
|
|
@router.get("/get_utterances/{user_id}")
|
|
async def get_utterances(user_id: str):
|
|
user_dir = f"../../data/users/{user_id}/transcripts"
|
|
log_file = os.path.join(user_dir, "utterances.log")
|
|
if not os.path.exists(log_file):
|
|
return {"utterances": []}
|
|
|
|
with open(log_file, "r") as f:
|
|
utterances = [json.loads(line) for line in f]
|
|
|
|
return {"utterances": utterances}
|