arxplorer / src /schema /paper.py
Subhadeep Mandal
Fresh deploy
54eb2ce
Raw
History Blame Contribute Delete
2.47 kB
from typing import Optional
from pydantic import BaseModel
from datetime import datetime
class PaperCreate(BaseModel):
title: str
abstract: str
authors: str
arxiv_id: Optional[str] = None
pdf_url: Optional[str] = None
paper_url: Optional[str] = None
github_url: Optional[str] = None
topics: Optional[str] = None
published_date: Optional[str] = None
institution: Optional[str] = None
date_published: Optional[str] = None
thumbnail_url: Optional[str] = None
paper_source: Optional[str] = "arxiv"
class PaperUploadMetadata(BaseModel):
"""Metadata for uploaded PDF papers (non-arxiv)"""
title: str
abstract: str
authors: str
# Optional fields
github_url: Optional[str] = None
topics: Optional[str] = None
published_date: Optional[str] = None
institution: Optional[str] = None
date_published: Optional[str] = None
class PaperResponse(BaseModel):
id: int
user_id: int
title: str
abstract: str
authors: str
arxiv_id: Optional[str] = None
pdf_url: Optional[str] = None
paper_url: Optional[str] = None
github_url: Optional[str] = None
topics: Optional[str] = None
published_date: Optional[str] = None
thumbnail_url: Optional[str] = None
institution: Optional[str] = None
date_published: Optional[str] = None
created_at: datetime
ingested: bool
paper_summary: Optional[str] = None
paper_source: Optional[str] = "arxiv"
keywords: Optional[str] = None
class BulkDeletePapers(BaseModel):
paper_ids: list[int]
class RecommendationRequest(BaseModel):
title: str
abstract: str
authors: str
primary_category: Optional[str] = None
arxiv_id: Optional[str] = None
class RecommendationItem(BaseModel):
arxiv_id: Optional[str] = None
title: Optional[str] = None
abstract: Optional[str] = None
authors: Optional[str] = None
categories: Optional[str] = None
primary_category: Optional[str] = None
published_date: Optional[str] = None
paper_url: Optional[str] = None
pdf_url: Optional[str] = None
score: Optional[float] = None
final_score: Optional[float] = None
class RecommendationsResponse(BaseModel):
similar_papers: list[RecommendationItem] = []
on_this_topic: list[RecommendationItem] = []
from_these_authors: list[RecommendationItem] = []