Spaces:
Runtime error
Runtime error
| #uvicorn main:app --reload | |
| import os | |
| os.environ['HF_HOME'] = './src/cache/' | |
| from fastapi import FastAPI, status | |
| from fastapi.responses import Response, JSONResponse | |
| from pydantic import BaseModel | |
| from typing import List | |
| import os | |
| import json | |
| import time | |
| from src.myNLI import FactChecker | |
| from src.crawler import MyCrawler | |
| #request body | |
| class Claim(BaseModel): | |
| claim: str | |
| class ScrapeBase(BaseModel): | |
| id: int | |
| name: str | |
| scraping_url: str | |
| class ScrapeList(BaseModel): | |
| data: List[ScrapeBase] | |
| app = FastAPI() | |
| # load model | |
| t_0 = time.time() | |
| fact_checker = FactChecker() | |
| t_load = time.time() - t_0 | |
| print("time load model: {}".format(t_load)) | |
| crawler = MyCrawler() | |
| label_code = { | |
| "REFUTED": 0, | |
| "SUPPORTED": 1, | |
| "NEI": 2 | |
| } | |
| async def root(): | |
| return {"msg": "This is for interacting with Fact-checking AI Model"} | |
| async def get_claim(req: Claim): | |
| claim = req.claim | |
| result = fact_checker.predict(claim) | |
| print(result) | |
| if not result: | |
| return Response(status_code=status.HTTP_204_NO_CONTENT) | |
| return { "claim": claim, | |
| "final_label": label_code[result["label"]], | |
| "evidence": result["evidence"], | |
| "provider": result["provider"], | |
| "url": result["url"] | |
| } | |
| async def get_claim(req: ScrapeList): | |
| response = [] | |
| for ele in req.data: | |
| response.append({ | |
| "id": ele.id, | |
| "name": ele.name, | |
| "scraping_url": ele.scraping_url, | |
| "status": crawler.scraping(ele.scraping_url) | |
| }) | |
| return JSONResponse({ | |
| "list": response | |
| }) |