Skip to content

Commit cc841f7

Browse files
committed
refactor(provider): 简化 Z.AI 提供商实现
本次重构旨在提高 Z.AI 提供商代码的内聚性和可维护性。 主要变更包括: - 删除了独立的 `zai_transformer.py` 模块,并将其中的辅助函数(如动态请求头生成)直接整合到 `ZAIProvider` 类中。 - 清理了 `models/schemas.py` 和 `providers/base.py` 中一系列未被使用的 Pydantic 模型和数据类。 - 移除了 `core/openai.py` 中不再需要的 `create_chunk` 辅助函数。 这些改动使得 Z.AI 相关逻辑更加集中,减少了模块间的耦合,并清除了冗余代码。
1 parent cbf1051 commit cc841f7

File tree

6 files changed

+170
-348
lines changed

6 files changed

+170
-348
lines changed

app/core/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/env python
22
# -*- coding: utf-8 -*-
33

4-
from app.core import config, zai_transformer, openai
4+
from app.core import config, openai
55

6-
__all__ = ["config", "zai_transformer", "openai"]
6+
__all__ = ["config", "openai"]

app/core/openai.py

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,23 +28,6 @@ def get_provider_router_instance():
2828
return provider_router
2929

3030

31-
def create_chunk(chat_id: str, model: str, delta: Dict[str, Any], finish_reason: Optional[str] = None) -> Dict[str, Any]:
32-
"""创建标准的 OpenAI chunk 结构"""
33-
return {
34-
"choices": [{
35-
"delta": delta,
36-
"finish_reason": finish_reason,
37-
"index": 0,
38-
"logprobs": None,
39-
}],
40-
"created": int(time.time()),
41-
"id": chat_id,
42-
"model": model,
43-
"object": "chat.completion.chunk",
44-
"system_fingerprint": "fp_zai_001",
45-
}
46-
47-
4831
async def handle_non_stream_response(stream_response, request: OpenAIRequest) -> JSONResponse:
4932
"""处理非流式响应"""
5033
logger.info("📄 开始处理非流式响应")

app/core/zai_transformer.py

Lines changed: 0 additions & 141 deletions
This file was deleted.

app/models/schemas.py

Lines changed: 0 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -34,32 +34,6 @@ class OpenAIRequest(BaseModel):
3434
thinking: Optional[Dict[str, Any]] = None
3535

3636

37-
class ModelItem(BaseModel):
38-
"""Model information item"""
39-
40-
id: str
41-
name: str
42-
owned_by: str
43-
44-
45-
class UpstreamRequest(BaseModel):
46-
"""Upstream service request model"""
47-
48-
stream: bool
49-
model: str
50-
messages: List[Message]
51-
params: Dict[str, Any] = {}
52-
features: Dict[str, Any] = {}
53-
background_tasks: Optional[Dict[str, bool]] = None
54-
chat_id: Optional[str] = None
55-
id: Optional[str] = None
56-
mcp_servers: Optional[List[str]] = None
57-
model_item: Optional[Dict[str, Any]] = {} # Model item dictionary
58-
tools: Optional[List[Dict[str, Any]]] = None # Add tools field for OpenAI compatibility
59-
variables: Optional[Dict[str, str]] = None
60-
model_config = {"protected_namespaces": ()}
61-
62-
6337
class Delta(BaseModel):
6438
"""Stream delta model"""
6539

@@ -97,39 +71,6 @@ class OpenAIResponse(BaseModel):
9771
usage: Optional[Usage] = None
9872

9973

100-
class UpstreamError(BaseModel):
101-
"""Upstream error model"""
102-
103-
detail: str
104-
code: int
105-
106-
107-
class UpstreamDataInner(BaseModel):
108-
"""Inner upstream data model"""
109-
110-
error: Optional[UpstreamError] = None
111-
112-
113-
class UpstreamDataData(BaseModel):
114-
"""Upstream data content model"""
115-
116-
delta_content: str = ""
117-
edit_content: str = ""
118-
phase: str = ""
119-
done: bool = False
120-
usage: Optional[Usage] = None
121-
error: Optional[UpstreamError] = None
122-
inner: Optional[UpstreamDataInner] = None
123-
124-
125-
class UpstreamData(BaseModel):
126-
"""Upstream data model"""
127-
128-
type: str
129-
data: UpstreamDataData
130-
error: Optional[UpstreamError] = None
131-
132-
13374
class Model(BaseModel):
13475
"""Model information for listing"""
13576

app/providers/base.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,6 @@ class ProviderConfig:
2929
extra_config: Optional[Dict[str, Any]] = None
3030

3131

32-
@dataclass
33-
class ProviderResponse:
34-
"""提供商响应"""
35-
success: bool
36-
content: str = ""
37-
error: Optional[str] = None
38-
usage: Optional[Dict[str, int]] = None
39-
extra_data: Optional[Dict[str, Any]] = None
40-
41-
4232
class BaseProvider(ABC):
4333
"""基础提供商抽象类"""
4434

0 commit comments

Comments
 (0)