ClaimCheckAI / app /main.py
Aryan Gosaliya
dockerfile
c8c351a
Raw
History Blame Contribute Delete
1.89 kB
# app/main.py
import os
from fastapi import FastAPI
from fastapi import Body
from fastapi import UploadFile, File
from fastapi.middleware.cors import CORSMiddleware
from app.core.orchestrator import process_call
from app.core.ibm_sanity import sanity_embeddings, sanity_generation
from fastapi.staticfiles import StaticFiles
from fastapi.responses import FileResponse
import os
app = FastAPI(title="ClaimCheck")
# After creating the FastAPI app
if os.path.exists("static"):
app.mount("/assets", StaticFiles(directory="static/assets"), name="assets")
@app.get("/")
async def serve_frontend():
return FileResponse("static/index.html")
app.add_middleware(
CORSMiddleware,
allow_origins=[
"http://localhost:5173",
"http://127.0.0.1:5173",
"https://huggingface.co",
"*", # Or be more specific with your Space URL
],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.get("/health")
def health():
return {"status": "ok", "service": "ClaimCheck"}
@app.get("/health/ibm")
def health_ibm():
emb = sanity_embeddings()
claim = sanity_generation(os.getenv("IBM_CLAIM_MODEL_ID", ""), "Say OK")
verify = sanity_generation(os.getenv("IBM_VERIFIER_MODEL_ID", ""), "Say OK")
return {"embeddings": emb, "claim_gen": claim, "verify_gen": verify}
@app.post("/process-transcript")
def process_transcript(text: str = Body(..., embed=True)):
"""
Accepts raw transcript text and returns a CallReport JSON.
For now, the orchestrator returns a dummy report (no AI).
"""
report = process_call(transcript=text)
return report
@app.post("/process-audio")
async def process_audio(file: UploadFile = File(...)):
path = f"data/audio/{file.filename}"
with open(path, "wb") as f:
f.write(await file.read())
return process_call(audio_path=path)