mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-09-29 05:18:47 +00:00
111 lines
2.4 KiB
Python
111 lines
2.4 KiB
Python
from pydantic import BaseModel, Field
|
|
from typing import TypeVar, Generic, Any, Optional, Literal, List
|
|
import uuid
|
|
import time
|
|
|
|
T = TypeVar("T")
|
|
|
|
|
|
class Result(Generic[T], BaseModel):
|
|
success: bool
|
|
err_code: str = None
|
|
err_msg: str = None
|
|
data: T = None
|
|
|
|
@classmethod
|
|
def succ(cls, data: T):
|
|
return Result(success=True, err_code=None, err_msg=None, data=data)
|
|
|
|
@classmethod
|
|
def faild(cls, msg):
|
|
return Result(success=False, err_code="E000X", err_msg=msg, data=None)
|
|
|
|
@classmethod
|
|
def faild(cls, code, msg):
|
|
return Result(success=False, err_code=code, err_msg=msg, data=None)
|
|
|
|
|
|
class ChatSceneVo(BaseModel):
|
|
chat_scene: str = Field(..., description="chat_scene")
|
|
scene_name: str = Field(..., description="chat_scene name show for user")
|
|
scene_describe: str = Field("", description="chat_scene describe ")
|
|
param_title: str = Field("", description="chat_scene required parameter title")
|
|
show_disable: bool = Field(False, description="chat_scene show disable")
|
|
|
|
|
|
class ConversationVo(BaseModel):
|
|
"""
|
|
dialogue_uid
|
|
"""
|
|
|
|
conv_uid: str = ""
|
|
"""
|
|
user input
|
|
"""
|
|
user_input: str = ""
|
|
"""
|
|
user
|
|
"""
|
|
user_name: str = ""
|
|
"""
|
|
the scene of chat
|
|
"""
|
|
chat_mode: str = ""
|
|
|
|
"""
|
|
chat scene select param
|
|
"""
|
|
select_param: str = None
|
|
"""
|
|
llm model name
|
|
"""
|
|
model_name: str = None
|
|
|
|
"""Used to control whether the content is returned incrementally or in full each time.
|
|
If this parameter is not provided, the default is full return.
|
|
"""
|
|
incremental: bool = False
|
|
|
|
|
|
class MessageVo(BaseModel):
|
|
"""
|
|
role that sends out the current message
|
|
"""
|
|
|
|
role: str
|
|
"""
|
|
current message
|
|
"""
|
|
context: str
|
|
|
|
""" message postion order """
|
|
order: int
|
|
|
|
"""
|
|
time the current message was sent
|
|
"""
|
|
time_stamp: Any = None
|
|
|
|
"""
|
|
model_name
|
|
"""
|
|
model_name: str
|
|
|
|
|
|
class DeltaMessage(BaseModel):
|
|
role: Optional[str] = None
|
|
content: Optional[str] = None
|
|
|
|
|
|
class ChatCompletionResponseStreamChoice(BaseModel):
|
|
index: int
|
|
delta: DeltaMessage
|
|
finish_reason: Optional[Literal["stop", "length"]] = None
|
|
|
|
|
|
class ChatCompletionStreamResponse(BaseModel):
|
|
id: str = Field(default_factory=lambda: f"chatcmpl-{str(uuid.uuid1())}")
|
|
created: int = Field(default_factory=lambda: int(time.time()))
|
|
model: str
|
|
choices: List[ChatCompletionResponseStreamChoice]
|