feat(core): Upgrade pydantic to 2.x (#1428)

This commit is contained in:
Fangyin Cheng
2024-04-20 09:41:16 +08:00
committed by GitHub
parent baa1e3f9f6
commit 57be1ece18
103 changed files with 1146 additions and 534 deletions

View File

@@ -1,7 +1,7 @@
# Define your Pydantic schemas here
from typing import Any, Optional
from typing import Any, Dict, Optional
from dbgpt._private.pydantic import BaseModel, Field
from dbgpt._private.pydantic import BaseModel, ConfigDict, Field, model_to_dict
from ..config import SERVE_APP_NAME_HUMP
@@ -9,8 +9,7 @@ from ..config import SERVE_APP_NAME_HUMP
class ServeRequest(BaseModel):
"""Conversation request model"""
class Config:
title = f"ServeRequest for {SERVE_APP_NAME_HUMP}"
model_config = ConfigDict(title=f"ServeRequest for {SERVE_APP_NAME_HUMP}")
# Just for query
chat_mode: str = Field(
@@ -42,12 +41,17 @@ class ServeRequest(BaseModel):
],
)
def to_dict(self, **kwargs) -> Dict[str, Any]:
"""Convert the model to a dictionary"""
return model_to_dict(self, **kwargs)
class ServerResponse(BaseModel):
"""Conversation response model"""
class Config:
title = f"ServerResponse for {SERVE_APP_NAME_HUMP}"
model_config = ConfigDict(
title=f"ServerResponse for {SERVE_APP_NAME_HUMP}", protected_namespaces=()
)
conv_uid: str = Field(
...,
@@ -99,8 +103,13 @@ class ServerResponse(BaseModel):
],
)
def to_dict(self, **kwargs) -> Dict[str, Any]:
"""Convert the model to a dictionary"""
return model_to_dict(self, **kwargs)
class MessageVo(BaseModel):
model_config = ConfigDict(protected_namespaces=())
role: str = Field(
...,
description="The role that sends out the current message.",
@@ -139,3 +148,7 @@ class MessageVo(BaseModel):
"vicuna-13b-v1.5",
],
)
def to_dict(self, **kwargs) -> Dict[str, Any]:
"""Convert the model to a dictionary"""
return model_to_dict(self, **kwargs)

View File

@@ -2,7 +2,6 @@
You can define your own models and DAOs here
"""
import json
from datetime import datetime
from typing import Any, Dict, List, Optional, Union
from dbgpt.core import MessageStorageItem
@@ -31,7 +30,9 @@ class ServeDao(BaseDao[ServeEntity, ServeRequest, ServerResponse]):
Returns:
T: The entity
"""
request_dict = request.dict() if isinstance(request, ServeRequest) else request
request_dict = (
request.to_dict() if isinstance(request, ServeRequest) else request
)
entity = ServeEntity(**request_dict)
# TODO implement your own logic here, transfer the request_dict to an entity
return entity