Initial commit
This commit is contained in:
0
backend/app/models/__init__.py
Normal file
0
backend/app/models/__init__.py
Normal file
61
backend/app/models/schemas.py
Normal file
61
backend/app/models/schemas.py
Normal file
@@ -0,0 +1,61 @@
|
||||
from pydantic import BaseModel
|
||||
from typing import Optional, List
|
||||
|
||||
|
||||
class AttributeNode(BaseModel):
|
||||
name: str
|
||||
category: Optional[str] = None # 材料, 功能, 用途, 使用族群
|
||||
children: Optional[List["AttributeNode"]] = None
|
||||
|
||||
|
||||
AttributeNode.model_rebuild()
|
||||
|
||||
|
||||
class AnalyzeRequest(BaseModel):
|
||||
query: str
|
||||
model: Optional[str] = None
|
||||
temperature: Optional[float] = 0.7
|
||||
categories: Optional[List[str]] = None # 如果為 None,使用預設類別
|
||||
|
||||
|
||||
class AnalyzeResponse(BaseModel):
|
||||
query: str
|
||||
attributes: AttributeNode
|
||||
|
||||
|
||||
class ModelListResponse(BaseModel):
|
||||
models: List[str]
|
||||
|
||||
|
||||
# ===== Multi-step streaming schemas =====
|
||||
|
||||
class Step1Result(BaseModel):
|
||||
"""Step 1 的結果:各類別屬性列表"""
|
||||
materials: List[str]
|
||||
functions: List[str]
|
||||
usages: List[str]
|
||||
users: List[str]
|
||||
|
||||
|
||||
class CausalChain(BaseModel):
|
||||
"""單條因果鏈"""
|
||||
material: str
|
||||
function: str
|
||||
usage: str
|
||||
user: str
|
||||
|
||||
|
||||
class StreamAnalyzeRequest(BaseModel):
|
||||
"""多步驟分析請求"""
|
||||
query: str
|
||||
model: Optional[str] = None
|
||||
temperature: Optional[float] = 0.7
|
||||
chain_count: int = 5 # 用戶可設定要生成多少條因果鏈
|
||||
|
||||
|
||||
class StreamAnalyzeResponse(BaseModel):
|
||||
"""最終完整結果"""
|
||||
query: str
|
||||
step1_result: Step1Result
|
||||
causal_chains: List[CausalChain]
|
||||
attributes: AttributeNode
|
||||
Reference in New Issue
Block a user