| from typing import List, Optional
|
| from pydantic import BaseModel, Field
|
| from langchain_core.output_parsers import JsonOutputParser
|
|
|
|
|
|
|
|
|
| class Entity(BaseModel):
|
| name : str = Field(description="The specific name of the entity. ")
|
| type : str = Field(description="The type or category that the entity belongs to.")
|
| class EntityList(BaseModel):
|
| entity_list : List[Entity] = Field(description="Named entities appearing in the text.")
|
|
|
|
|
|
|
|
|
| class Relation(BaseModel):
|
| head : str = Field(description="The starting entity in the relationship.")
|
| tail : str = Field(description="The ending entity in the relationship.")
|
| relation : str = Field(description="The predicate that defines the relationship between the two entities.")
|
|
|
| class RelationList(BaseModel):
|
| relation_list : List[Relation] = Field(description="The collection of relationships between various entities.")
|
|
|
|
|
|
|
|
|
| class Event(BaseModel):
|
| event_type : str = Field(description="The type of the event.")
|
| event_trigger : str = Field(description="A specific word or phrase that indicates the occurrence of the event.")
|
| event_argument : dict = Field(description="The arguments or participants involved in the event.")
|
|
|
| class EventList(BaseModel):
|
| event_list : List[Event] = Field(description="The events presented in the text.")
|
|
|
|
|
|
|
|
|
| class Triple(BaseModel):
|
| head: str = Field(description="The subject or head of the triple.")
|
| head_type: str = Field(description="The type of the subject entity.")
|
| relation: str = Field(description="The predicate or relation between the entities.")
|
| relation_type: str = Field(description="The type of the relation.")
|
| tail: str = Field(description="The object or tail of the triple.")
|
| tail_type: str = Field(description="The type of the object entity.")
|
| class TripleList(BaseModel):
|
| triple_list: List[Triple] = Field(description="The collection of triples and their types presented in the text.")
|
|
|
|
|
|
|
|
|
| class TextDescription(BaseModel):
|
| field: str = Field(description="The field of the given text, such as 'Science', 'Literature', 'Business', 'Medicine', 'Entertainment', etc.")
|
| genre: str = Field(description="The genre of the given text, such as 'Article', 'Novel', 'Dialog', 'Blog', 'Manual','Expository', 'News Report', 'Research Paper', etc.")
|
|
|
|
|
|
|
|
|
|
|
|
|
| class MetaData(BaseModel):
|
| title : str = Field(description="The title of the article")
|
| authors : List[str] = Field(description="The list of the article's authors")
|
| abstract: str = Field(description="The article's abstract")
|
| key_words: List[str] = Field(description="The key words associated with the article")
|
|
|
| class Baseline(BaseModel):
|
| method_name : str = Field(description="The name of the baseline method")
|
| proposed_solution : str = Field(description="the proposed solution in details")
|
| performance_metrics : str = Field(description="The performance metrics of the method and comparative analysis")
|
|
|
| class ExtractionTarget(BaseModel):
|
|
|
| key_contributions: List[str] = Field(description="The key contributions of the article")
|
| limitation_of_sota : str=Field(description="the summary limitation of the existing work")
|
| proposed_solution : str = Field(description="the proposed solution in details")
|
| baselines : List[Baseline] = Field(description="The list of baseline methods and their details")
|
| performance_metrics : str = Field(description="The performance metrics of the method and comparative analysis")
|
| paper_limitations : str=Field(description="The limitations of the proposed solution of the paper")
|
|
|
|
|
| class Person(BaseModel):
|
| name: str = Field(description="The name of the person")
|
| identity: Optional[str] = Field(description="The occupation, status or characteristics of the person.")
|
| role: Optional[str] = Field(description="The role or function the person plays in an event.")
|
|
|
| class Event(BaseModel):
|
| name: str = Field(description="Name of the event")
|
| time: Optional[str] = Field(description="Time when the event took place")
|
| people_involved: Optional[List[Person]] = Field(description="People involved in the event")
|
| cause: Optional[str] = Field(default=None, description="Reason for the event, if applicable")
|
| process: Optional[str] = Field(description="Details of the event process")
|
| result: Optional[str] = Field(default=None, description="Result or outcome of the event")
|
|
|
| class NewsReport(BaseModel):
|
| title: str = Field(description="The title or headline of the news report")
|
| summary: str = Field(description="A brief summary of the news report")
|
| publication_date: Optional[str] = Field(description="The publication date of the report")
|
| keywords: Optional[List[str]] = Field(description="List of keywords or topics covered in the news report")
|
| events: List[Event] = Field(description="Events covered in the news report")
|
| quotes: Optional[dict] = Field(default=None, description="Quotes related to the news, with keys as the citation sources and values as the quoted content. ")
|
| viewpoints: Optional[List[str]] = Field(default=None, description="Different viewpoints regarding the news")
|
|
|
|
|
| class ChemicalSubstance(BaseModel):
|
| name: str = Field(description="Name of the chemical substance")
|
| formula: str = Field(description="Molecular formula")
|
| appearance: str = Field(description="Physical appearance")
|
| uses: List[str] = Field(description="Primary uses")
|
| hazards: str = Field(description="Hazard classification")
|
|
|
| class ChemicalList(BaseModel):
|
| chemicals: List[ChemicalSubstance] = Field(description="List of chemicals")
|
|
|