36 lines
1015 B
Python
36 lines
1015 B
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
File: DataModels.py
|
|
Author: oyyz
|
|
Date: 2025-05-13
|
|
Description: 提取和分类的数据模型
|
|
"""
|
|
|
|
from pydantic import BaseModel, Field
|
|
from typing import List, Optional
|
|
|
|
|
|
# 定义输出模型
|
|
class Term(BaseModel):
|
|
name: str = Field(description="专业名词")
|
|
synonymous: List[str] = Field(description="同义词列表")
|
|
description: str = Field(description="描述信息", default="")
|
|
|
|
def __hash__(self):
|
|
return hash(self.name)
|
|
|
|
def __eq__(self, other):
|
|
if isinstance(other, Term):
|
|
return self.name == other.name
|
|
return False
|
|
|
|
class TermList(BaseModel):
|
|
terms: List[Term] = Field(description="专业名词列表")
|
|
|
|
class Classification(BaseModel):
|
|
vertical_classification:str = Field(description="垂直领域一级分类")
|
|
sub_classification:str = Field(description="一级分类下的二级分类")
|
|
|
|
class QueryRewrite(BaseModel):
|
|
rewrite:str = Field(description="问题改写") |