mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-07-26 21:37:40 +00:00
Co-authored-by: 夏姜 <wenfengjiang.jwf@digital-engine.com> Co-authored-by: aries_ckt <916701291@qq.com> Co-authored-by: wb-lh513319 <wb-lh513319@alibaba-inc.com> Co-authored-by: csunny <cfqsunny@163.com>
216 lines
8.5 KiB
Python
216 lines
8.5 KiB
Python
from typing import List, Optional, Union
|
|
|
|
from fastapi import File, UploadFile
|
|
|
|
from dbgpt._private.pydantic import BaseModel, ConfigDict, Field
|
|
from dbgpt.rag.chunk_manager import ChunkParameters
|
|
|
|
from ..config import SERVE_APP_NAME_HUMP
|
|
|
|
|
|
class SpaceServeRequest(BaseModel):
|
|
"""name: knowledge space name"""
|
|
|
|
"""vector_type: vector type"""
|
|
id: Optional[int] = Field(None, description="The space id")
|
|
name: str = Field(None, description="The space name")
|
|
"""vector_type: vector type"""
|
|
vector_type: str = Field(None, description="The vector type")
|
|
"""domain_type: domain type"""
|
|
domain_type: str = Field(None, description="The domain type")
|
|
"""desc: description"""
|
|
desc: Optional[str] = Field(None, description="The description")
|
|
"""owner: owner"""
|
|
owner: Optional[str] = Field(None, description="The owner")
|
|
"""context: argument context"""
|
|
context: Optional[str] = Field(None, description="The context")
|
|
"""gmt_created: created time"""
|
|
gmt_created: Optional[str] = Field(None, description="The created time")
|
|
"""gmt_modified: modified time"""
|
|
gmt_modified: Optional[str] = Field(None, description="The modified time")
|
|
|
|
|
|
class DocumentServeRequest(BaseModel):
|
|
id: Optional[int] = Field(None, description="The doc id")
|
|
doc_name: Optional[str] = Field(None, description="doc name")
|
|
"""doc_type: document type"""
|
|
doc_type: Optional[str] = Field(None, description="The doc type")
|
|
"""content: description"""
|
|
content: Optional[str] = Field(None, description="content")
|
|
"""doc file"""
|
|
doc_file: Union[UploadFile, str] = File(None)
|
|
"""space id: space id"""
|
|
space_id: Optional[str] = Field(None, description="space id")
|
|
"""space name: space name"""
|
|
space_name: Optional[str] = Field(None, description="space name")
|
|
"""questions: questions"""
|
|
questions: Optional[List[str]] = Field(None, description="questions")
|
|
|
|
|
|
class DocumentServeResponse(BaseModel):
|
|
id: Optional[int] = Field(None, description="The doc id")
|
|
doc_name: Optional[str] = Field(None, description="doc type")
|
|
"""vector_type: vector type"""
|
|
doc_type: Optional[str] = Field(None, description="The doc content")
|
|
"""desc: description"""
|
|
content: Optional[str] = Field(None, description="content")
|
|
"""vector ids"""
|
|
vector_ids: Optional[str] = Field(None, description="vector ids")
|
|
"""space: space name"""
|
|
space: Optional[str] = Field(None, description="space name")
|
|
"""status: status"""
|
|
status: Optional[str] = Field(None, description="status")
|
|
"""last_sync: last sync time"""
|
|
last_sync: Optional[str] = Field(None, description="last sync time")
|
|
"""result: result"""
|
|
result: Optional[str] = Field(None, description="result")
|
|
"""summary: summary"""
|
|
summary: Optional[str] = Field(None, description="summary")
|
|
"""gmt_created: created time"""
|
|
gmt_created: Optional[str] = Field(None, description="created time")
|
|
"""gmt_modified: modified time"""
|
|
gmt_modified: Optional[str] = Field(None, description="modified time")
|
|
"""chunk_size: chunk size"""
|
|
chunk_size: Optional[int] = Field(None, description="chunk size")
|
|
"""questions: questions"""
|
|
questions: Optional[str] = Field(None, description="questions")
|
|
|
|
|
|
class ChunkServeRequest(BaseModel):
|
|
id: Optional[int] = Field(None, description="The primary id")
|
|
document_id: Optional[int] = Field(None, description="document id")
|
|
doc_name: Optional[str] = Field(None, description="document name")
|
|
doc_type: Optional[str] = Field(None, description="document type")
|
|
content: Optional[str] = Field(None, description="chunk content")
|
|
meta_info: Optional[str] = Field(None, description="chunk meta info")
|
|
questions: Optional[List[str]] = Field(None, description="chunk questions")
|
|
gmt_created: Optional[str] = Field(None, description="chunk create time")
|
|
gmt_modified: Optional[str] = Field(None, description="chunk modify time")
|
|
|
|
|
|
class ChunkServeResponse(BaseModel):
|
|
id: Optional[int] = Field(None, description="The primary id")
|
|
document_id: Optional[int] = Field(None, description="document id")
|
|
doc_name: Optional[str] = Field(None, description="document name")
|
|
doc_type: Optional[str] = Field(None, description="document type")
|
|
content: Optional[str] = Field(None, description="chunk content")
|
|
meta_info: Optional[str] = Field(None, description="chunk meta info")
|
|
questions: Optional[str] = Field(None, description="chunk questions")
|
|
|
|
|
|
class KnowledgeSyncRequest(BaseModel):
|
|
"""Sync request"""
|
|
|
|
"""doc_ids: doc ids"""
|
|
doc_id: Optional[int] = Field(None, description="The doc id")
|
|
|
|
"""space id"""
|
|
space_id: Optional[str] = Field(None, description="space id")
|
|
|
|
"""model_name: model name"""
|
|
model_name: Optional[str] = Field(None, description="model name")
|
|
|
|
"""chunk_parameters: chunk parameters
|
|
"""
|
|
chunk_parameters: Optional[ChunkParameters] = Field(
|
|
None, description="chunk parameters"
|
|
)
|
|
|
|
|
|
class KnowledgeRetrieveRequest(BaseModel):
|
|
"""Retrieve request"""
|
|
|
|
"""space id"""
|
|
space_id: int = Field(None, description="space id")
|
|
|
|
"""query: query"""
|
|
query: str = Field(None, description="query")
|
|
|
|
"""top_k: top k"""
|
|
top_k: Optional[int] = Field(5, description="top k")
|
|
|
|
"""score_threshold: score threshold
|
|
"""
|
|
score_threshold: Optional[float] = Field(0.0, description="score threshold")
|
|
|
|
|
|
# 复用这里代码
|
|
|
|
|
|
class SpaceServeResponse(BaseModel):
|
|
"""Flow response model"""
|
|
|
|
model_config = ConfigDict(title=f"ServeResponse for {SERVE_APP_NAME_HUMP}")
|
|
|
|
"""name: knowledge space name"""
|
|
|
|
"""vector_type: vector type"""
|
|
id: Optional[int] = Field(None, description="The space id")
|
|
name: Optional[str] = Field(None, description="The space name")
|
|
"""vector_type: vector type"""
|
|
vector_type: Optional[str] = Field(None, description="The vector type")
|
|
"""desc: description"""
|
|
desc: Optional[str] = Field(None, description="The description")
|
|
"""context: argument context"""
|
|
context: Optional[str] = Field(None, description="The context")
|
|
"""owner: owner"""
|
|
owner: Optional[str] = Field(None, description="The owner")
|
|
"""user_id: user_id"""
|
|
user_id: Optional[str] = Field(None, description="user id")
|
|
"""user_id: user_ids"""
|
|
user_ids: Optional[str] = Field(None, description="user ids")
|
|
"""sys code"""
|
|
sys_code: Optional[str] = Field(None, description="The sys code")
|
|
"""domain type"""
|
|
domain_type: Optional[str] = Field(None, description="domain_type")
|
|
|
|
|
|
class DocumentChunkVO(BaseModel):
|
|
id: int = Field(..., description="document chunk id")
|
|
document_id: int = Field(..., description="document id")
|
|
doc_name: str = Field(..., description="document name")
|
|
doc_type: str = Field(..., description="document type")
|
|
content: str = Field(..., description="document content")
|
|
meta_info: str = Field(..., description="document meta info")
|
|
gmt_created: str = Field(..., description="document create time")
|
|
gmt_modified: str = Field(..., description="document modify time")
|
|
|
|
|
|
class DocumentVO(BaseModel):
|
|
"""Document Entity."""
|
|
|
|
id: int = Field(..., description="document id")
|
|
doc_name: str = Field(..., description="document name")
|
|
doc_type: str = Field(..., description="document type")
|
|
space: str = Field(..., description="document space name")
|
|
chunk_size: int = Field(..., description="document chunk size")
|
|
status: str = Field(..., description="document status")
|
|
last_sync: str = Field(..., description="document last sync time")
|
|
content: str = Field(..., description="document content")
|
|
result: Optional[str] = Field(None, description="document result")
|
|
vector_ids: Optional[str] = Field(None, description="document vector ids")
|
|
summary: Optional[str] = Field(None, description="document summary")
|
|
gmt_created: str = Field(..., description="document create time")
|
|
gmt_modified: str = Field(..., description="document modify time")
|
|
|
|
|
|
class KnowledgeDomainType(BaseModel):
|
|
"""Knowledge domain type"""
|
|
|
|
name: str = Field(..., description="The domain type name")
|
|
desc: str = Field(..., description="The domain type description")
|
|
|
|
|
|
class KnowledgeStorageType(BaseModel):
|
|
"""Knowledge storage type"""
|
|
|
|
name: str = Field(..., description="The storage type name")
|
|
desc: str = Field(..., description="The storage type description")
|
|
domain_types: List[KnowledgeDomainType] = Field(..., description="The domain types")
|
|
|
|
|
|
class KnowledgeConfigResponse(BaseModel):
|
|
"""Knowledge config response"""
|
|
|
|
storage: List[KnowledgeStorageType] = Field(..., description="The storage types")
|