29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
from datetime import datetime
|
|
from typing import List, Optional
|
|
|
|
from pgvector.sqlalchemy import VECTOR
|
|
from pydantic import BaseModel
|
|
from sqlalchemy import Column, Text, BigInteger, DateTime, Identity
|
|
from sqlmodel import SQLModel, Field
|
|
|
|
|
|
class Terminology(SQLModel, table=True):
|
|
__tablename__ = "terminology"
|
|
id: Optional[int] = Field(sa_column=Column(BigInteger, Identity(always=True), primary_key=True))
|
|
oid: Optional[int] = Field(sa_column=Column(BigInteger, nullable=True, default=1))
|
|
pid: Optional[int] = Field(sa_column=Column(BigInteger, nullable=True))
|
|
create_time: Optional[datetime] = Field(sa_column=Column(DateTime(timezone=False), nullable=True))
|
|
word: Optional[str] = Field(max_length=255)
|
|
description: Optional[str] = Field(sa_column=Column(Text, nullable=True))
|
|
embedding: Optional[List[float]] = Field(sa_column=Column(VECTOR(), nullable=True))
|
|
|
|
|
|
class TerminologyInfo(BaseModel):
|
|
id: Optional[int] = None
|
|
create_time: Optional[datetime] = None
|
|
word: Optional[str] = None
|
|
description: Optional[str] = None
|
|
other_words: Optional[List[str]] = []
|
|
|
|
|