Wall06's picture
Upload folder using huggingface_hub
18a005f verified
from fastapi import FastAPI, UploadFile, File
from fastapi.middleware.cors import CORSMiddleware
from dotenv import load_dotenv
import pandas as pd
import io
import os
from scraper import scrape_company
from ai_engine import analyze_lead
from database import save_lead, get_pending_leads, update_lead_status
load_dotenv()
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # Allow all origins for Vercel integration
allow_credentials=False,
allow_methods=["*"],
allow_headers=["*"],
)
@app.post("/process-csv")
async def process_csv(file: UploadFile = File(...)):
contents = await file.read()
df = pd.read_csv(io.BytesIO(contents))
for _, row in df.iterrows():
summary = scrape_company(row["url"])
result = analyze_lead(row["name"], row["company"], summary)
save_lead({
"name": row["name"],
"company": row["company"],
"url": row["url"],
"email": row.get("email", ""),
"company_summary": summary,
"score": result["score"],
"score_reason": result["score_reason"],
"cold_email": result["cold_email"]
})
return {"status": "success"}
@app.get("/get-leads")
def fetch_leads():
return get_pending_leads()
@app.post("/update-lead/{lead_id}")
def update_lead(lead_id: int, status: str = "approved"):
update_lead_status(lead_id, status)
return {"status": "updated"}
@app.get("/")
def read_root():
return {"message": "Lead Qualifier API is running!"}