| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- """
- 请求模型定义
- """
- from pydantic import BaseModel, Field
- from typing import Optional, List
- class PositionInfo(BaseModel):
- """位置信息"""
- char_start: int = Field(..., alias="charStart", description="字符起始位置")
- char_end: int = Field(..., alias="charEnd", description="字符结束位置")
- line: Optional[int] = Field(None, description="所在行号")
- page: Optional[int] = Field(None, description="所在页码")
- file_id: Optional[str] = Field(None, alias="fileId", description="文件ID")
-
- class Config:
- populate_by_name = True
- class EntityInfo(BaseModel):
- """实体信息"""
- name: str = Field(..., description="实体名称")
- type: str = Field(..., description="实体类型")
- value: Optional[str] = Field(None, description="实体值")
- position: Optional[PositionInfo] = Field(None, description="位置信息")
- context: Optional[str] = Field(None, description="上下文片段")
- confidence: Optional[float] = Field(None, description="置信度")
- temp_id: Optional[str] = Field(None, alias="tempId", description="临时ID")
-
- class Config:
- populate_by_name = True
- class NerRequest(BaseModel):
- """NER 请求"""
- document_id: Optional[str] = Field(None, alias="documentId", description="文档ID")
- text: str = Field(..., description="待提取的文本内容")
- entity_types: Optional[List[str]] = Field(None, alias="entityTypes", description="指定提取的实体类型")
- extract_relations: bool = Field(True, alias="extractRelations", description="是否提取关系")
- user_id: Optional[str] = Field(None, alias="userId", description="用户ID")
-
- class Config:
- populate_by_name = True
- class RelationRequest(BaseModel):
- """关系抽取请求"""
- document_id: Optional[str] = Field(None, alias="documentId", description="文档ID")
- text: str = Field(..., description="原始文本内容")
- entities: List[EntityInfo] = Field(..., description="已提取的实体列表")
-
- class Config:
- populate_by_name = True
|