Spaces:
Sleeping
Sleeping
try: | |
from enum import StrEnum | |
except ImportError: | |
from strenum import StrEnum | |
from http import HTTPStatus | |
from typing import Optional, List | |
from pydantic import BaseModel, ConfigDict | |
class Mode(StrEnum): | |
CHAT = "chat" | |
COMPLETION = "completion" | |
class ResponseMode(StrEnum): | |
STREAMING = 'streaming' | |
BLOCKING = 'blocking' | |
class FileType(StrEnum): | |
IMAGE = "image" | |
class TransferMethod(StrEnum): | |
REMOTE_URL = "remote_url" | |
LOCAL_FILE = "local_file" | |
# Allows the entry of various variable values defined by the App. | |
# The inputs parameter contains multiple key/value pairs, with each key corresponding to a specific variable and | |
# each value being the specific value for that variable. | |
# The text generation application requires at least one key/value pair to be inputted. | |
class CompletionInputs(BaseModel): | |
model_config = ConfigDict(extra='allow') | |
# Required The input text, the content to be processed. | |
query: str | |
class File(BaseModel): | |
type: FileType | |
transfer_method: TransferMethod | |
url: Optional[str] | |
# Uploaded file ID, which must be obtained by uploading through the File Upload API in advance | |
# (when the transfer method is local_file) | |
upload_file_id: Optional[str] | |
class Usage(BaseModel): | |
prompt_tokens: int | |
completion_tokens: int | |
total_tokens: int | |
prompt_unit_price: str | |
prompt_price_unit: str | |
prompt_price: str | |
completion_unit_price: str | |
completion_price_unit: str | |
completion_price: str | |
total_price: str | |
currency: str | |
latency: float | |
class RetrieverResource(BaseModel): | |
position: int | |
dataset_id: str | |
dataset_name: str | |
document_id: str | |
document_name: str | |
segment_id: str | |
score: float | |
content: str | |
class Metadata(BaseModel): | |
usage: Usage | |
retriever_resources: List[RetrieverResource] = [] | |
class StopRequest(BaseModel): | |
user: str | |
class StopResponse(BaseModel): | |
result: str # success | |
class ErrorResponse(BaseModel): | |
status: int = HTTPStatus.INTERNAL_SERVER_ERROR # HTTP status code | |
code: str = "" | |
message: str = "" | |