ailixir-chemical-rag / app /schemas.py
AILIXIR Bot
Auto-sync: f5ce6ac77794a3b45f6053fe4c4a770721c82ec1
8cc99a5
Raw
History Blame Contribute Delete
920 Bytes
from pydantic import BaseModel
from typing import List, Optional
class SearchRequest(BaseModel):
"""API request for chemical similarity search."""
smiles: str
top_k: int = 3
explain: bool = True # Generate explanation for why compounds are similar
class CompoundResult(BaseModel):
"""Individual search result with Tanimoto similarity score and LLM explanation."""
smiles: str
similarity_score: float # Tanimoto similarity (0.0 to 1.0)
image: Optional[str] = None
explanation: Optional[str] = None # LLM-generated explanation of similarity
cid: Optional[str] = None # PubChem CID identifier
name: Optional[str] = None # Compound name
class SearchResponse(BaseModel):
"""API response containing search results with explanations."""
results: List[CompoundResult]
query_smiles: str # Query compound SMILES
total_results: int # Total number of results