Spaces:
Sleeping
Sleeping
File size: 2,814 Bytes
f171e60 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | from pydantic import BaseModel, Field
from typing import Optional, List, Dict, Any
from enum import Enum
class LLMProvider(str, Enum):
OPENAI = "openai"
GROQ = "groq"
class MessageRole(str, Enum):
SYSTEM = "system"
USER = "user"
ASSISTANT = "assistant"
class Message(BaseModel):
role: MessageRole
content: str
class Config:
json_schema_extra = {
"example": {
"role": "user",
"content": "Hello, how are you?"
}
}
class ChatRequest(BaseModel):
messages: List[Message] = Field(
...,
description = "List các message trong conversation",
min_length = 1
)
provider: LLMProvider = Field(
default=LLMProvider.OPENAI,
description="LLM provider để sử dụng"
)
model: Optional[str] = Field(
default=None,
description="Model cụ thể"
)
temperature: float = Field(
default=0.7,
ge=0.0,
le=2.0,
description="Creativity level of the response (0-2)"
)
max_tokens: Optional[int] = Field(
default=1000,
ge=1,
le=4000,
description="Max token in the response (1-4000)"
)
stream: bool = Field(
default=False,
description="Enable streaming response"
)
class Config:
json_schoma_extra = {
"example": {
"messages": [
{"rold": "user", "content": "Hello, how are you?"}
],
"provider": "openai",
"model": "gpt-4o-mini",
"temperature": 0.5,
"max_tokens": 1000,
# "stream": True
}
}
class CompletionRequest(BaseModel):
prompt: str = Field(
...,
description="Prompt text to generate completion",
min_length=1
)
provider: LLMProvider = Field(
default=LLMProvider.OPENAI,
description="LLM provider để sử dụng"
)
model: Optional[str] = Field(
default=None,
description="Model cụ thể"
)
temperature: float = Field(
default=0.7,
ge=0.0,
le=2.0
)
max_tokens: Optional[int] = Field(
default=500,
ge=1,
le=4000
)
system_prompt: Optional[str] = Field(
default=None,
description="System prompt để định hướng behavior"
)
class Config:
json_schema_extra = {
"example": {
"prompt": "Viết một đoạn giới thiệu về AI",
"provider": "openai",
"temperature": 0.5,
"max_tokens": 1000,
"system_prompt": "Bạn là một chuyên gia về AI"
}
} |