Spaces:
Runtime error
Runtime error
# app/main.py | |
import uvicorn | |
from fastapi import FastAPI, HTTPException, File, UploadFile | |
from pydantic import BaseModel | |
from app import models, openai_integration | |
app = FastAPI(title="Materials AI Extraction API") | |
# Pydantic models for request/response bodies | |
class ExtractionRequest(BaseModel): | |
text: str | |
class QueryRequest(BaseModel): | |
query: str | |
class SummarizeRequest(BaseModel): | |
text: str | |
async def extract_data(request: ExtractionRequest): | |
try: | |
# Use our domain-specific model (e.g. MatSciBERT or BatteryBERT) for token classification | |
extracted = models.extract_entities(request.text) | |
return {"entities": extracted} | |
except Exception as e: | |
raise HTTPException(status_code=500, detail=str(e)) | |
async def query_data(request: QueryRequest): | |
try: | |
# This endpoint performs a Q&A on the provided query using the domain models | |
answer = models.answer_question(request.query) | |
return {"answer": answer} | |
except Exception as e: | |
raise HTTPException(status_code=500, detail=str(e)) | |
async def summarize(request: SummarizeRequest): | |
try: | |
summary = openai_integration.generate_summary(request.text) | |
return {"summary": summary} | |
except Exception as e: | |
raise HTTPException(status_code=500, detail=str(e)) | |
if __name__ == "__main__": | |
uvicorn.run(app, host="0.0.0.0", port=8000) | |