Skip to content

Commit 81b741a

Browse files
committed
优化架构实现
1 parent 0ba8d28 commit 81b741a

File tree

9 files changed

+452
-28
lines changed

9 files changed

+452
-28
lines changed

gpt_server/model_worker/base/base_model_worker.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
from fastapi.responses import StreamingResponse, JSONResponse
77
import requests
88

9-
from fastchat.constants import WORKER_HEART_BEAT_INTERVAL
109
from fastchat.conversation import Conversation
1110
from fastchat.utils import pretty_print_semaphore
1211

@@ -19,11 +18,11 @@ def build_logger():
1918

2019
worker = None
2120
logger = None
22-
21+
WORKER_HEART_BEAT_INTERVAL = 6
2322
app = FastAPI()
2423

2524

26-
def heart_beat_worker(obj):
25+
def heart_beat_worker(obj: "BaseModelWorker"):
2726
while True:
2827
time.sleep(WORKER_HEART_BEAT_INTERVAL)
2928
obj.send_heart_beat()
@@ -96,7 +95,7 @@ def register_to_controller(self):
9695

9796
url = self.controller_addr + "/register_worker"
9897
data = {
99-
"worker_name": self.worker_addr,
98+
"worker_addr": self.worker_addr,
10099
"check_heart_beat": True,
101100
"worker_status": self.get_status(),
102101
"multimodal": self.multimodal,
@@ -105,12 +104,6 @@ def register_to_controller(self):
105104
assert r.status_code == 200
106105

107106
def send_heart_beat(self):
108-
# logger.info(
109-
# f"Send heart beat. Models: {self.model_names}. "
110-
# f"Semaphore: {pretty_print_semaphore(self.semaphore)}. "
111-
# f"call_ct: {self.call_ct}. "
112-
# f"worker_id: {self.worker_id}. "
113-
# )
114107

115108
url = self.controller_addr + "/receive_heart_beat"
116109

@@ -119,7 +112,7 @@ def send_heart_beat(self):
119112
ret = requests.post(
120113
url,
121114
json={
122-
"worker_name": self.worker_addr,
115+
"worker_addr": self.worker_addr,
123116
"queue_length": self.get_queue_length(),
124117
},
125118
timeout=5,

gpt_server/model_worker/qwen_image.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import asyncio
12
import os
23
from typing import List
34
import uuid
@@ -65,21 +66,24 @@ def __init__(
6566
logger.warning(f"模型:{model_names[0]}")
6667

6768
async def get_image_output(self, params):
69+
self.call_ct += 1
6870
prompt = params["prompt"]
6971
if contains_chinese(prompt):
7072
prompt += positive_magic["zh"]
7173
else:
7274
prompt += positive_magic["en"]
7375
response_format = params.get("response_format", "b64_json")
74-
image = self.pipe(
75-
prompt,
76-
negative_prompt=" ",
77-
height=height,
78-
width=width,
79-
num_inference_steps=50,
80-
true_cfg_scale=4.0,
81-
generator=torch.Generator(self.device).manual_seed(0),
82-
).images[0]
76+
inputs = {
77+
"prompt": prompt,
78+
"negative_prompt": " ",
79+
"height": height,
80+
"width": width,
81+
"num_inference_steps": 50,
82+
"true_cfg_scale": 4.0,
83+
"generator": torch.Generator(self.device).manual_seed(0),
84+
}
85+
output = await asyncio.to_thread(self.pipe, **inputs)
86+
image = output.images[0]
8387
result = {}
8488
if response_format == "b64_json":
8589
# Convert PIL image to base64

gpt_server/model_worker/qwen_image_edit.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ async def get_image_output(self, params):
6363
"num_inference_steps": 50,
6464
}
6565
with torch.inference_mode():
66-
output = self.pipe(**inputs)
66+
output = await asyncio.to_thread(self.pipe, **inputs)
6767
image = output.images[0]
6868

6969
result = {}

gpt_server/openai_api_protocol/custom_api_protocol.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,11 @@ class CustomModelCard(BaseModel):
380380
owned_by: str = "gpt_server"
381381

382382

383+
class ModelList(BaseModel):
384+
object: str = "list"
385+
data: List[CustomModelCard] = []
386+
387+
383388
class CustomEmbeddingsRequest(BaseModel):
384389
model: Optional[str] = None
385390
engine: Optional[str] = None

0 commit comments

Comments
 (0)