fix py lock
This commit is contained in:
parent
c02ce51d86
commit
c3084a3290
@ -51,63 +51,71 @@ async def completions(body: CompletionBody, request: Request):
|
|||||||
while completion_lock.locked():
|
while completion_lock.locked():
|
||||||
await asyncio.sleep(0.1)
|
await asyncio.sleep(0.1)
|
||||||
else:
|
else:
|
||||||
with completion_lock:
|
completion_lock.acquire()
|
||||||
set_rwkv_config(model, global_var.get(global_var.Model_Config))
|
set_rwkv_config(model, global_var.get(global_var.Model_Config))
|
||||||
set_rwkv_config(model, body)
|
set_rwkv_config(model, body)
|
||||||
if body.stream:
|
if body.stream:
|
||||||
for response, delta in rwkv_generate(
|
for response, delta in rwkv_generate(
|
||||||
model, completion_text, stop="\n\nBob"
|
model, completion_text, stop="\n\nBob"
|
||||||
):
|
):
|
||||||
if await request.is_disconnected():
|
if await request.is_disconnected():
|
||||||
break
|
break
|
||||||
yield json.dumps(
|
|
||||||
{
|
|
||||||
"response": response,
|
|
||||||
"model": "rwkv",
|
|
||||||
"choices": [
|
|
||||||
{
|
|
||||||
"delta": {"content": delta},
|
|
||||||
"index": 0,
|
|
||||||
"finish_reason": None,
|
|
||||||
}
|
|
||||||
],
|
|
||||||
}
|
|
||||||
)
|
|
||||||
yield json.dumps(
|
yield json.dumps(
|
||||||
{
|
{
|
||||||
"response": response,
|
"response": response,
|
||||||
"model": "rwkv",
|
"model": "rwkv",
|
||||||
"choices": [
|
"choices": [
|
||||||
{
|
{
|
||||||
"delta": {},
|
"delta": {"content": delta},
|
||||||
"index": 0,
|
"index": 0,
|
||||||
"finish_reason": "stop",
|
"finish_reason": None,
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
yield "[DONE]"
|
if await request.is_disconnected():
|
||||||
else:
|
completion_lock.release()
|
||||||
response = None
|
return
|
||||||
for response, delta in rwkv_generate(
|
yield json.dumps(
|
||||||
model, completion_text, stop="\n\nBob"
|
{
|
||||||
):
|
|
||||||
pass
|
|
||||||
yield {
|
|
||||||
"response": response,
|
"response": response,
|
||||||
"model": "rwkv",
|
"model": "rwkv",
|
||||||
"choices": [
|
"choices": [
|
||||||
{
|
{
|
||||||
"message": {
|
"delta": {},
|
||||||
"role": "assistant",
|
|
||||||
"content": response,
|
|
||||||
},
|
|
||||||
"index": 0,
|
"index": 0,
|
||||||
"finish_reason": "stop",
|
"finish_reason": "stop",
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
# torch_gc()
|
)
|
||||||
|
yield "[DONE]"
|
||||||
|
else:
|
||||||
|
response = None
|
||||||
|
for response, delta in rwkv_generate(
|
||||||
|
model, completion_text, stop="\n\nBob"
|
||||||
|
):
|
||||||
|
if await request.is_disconnected():
|
||||||
|
break
|
||||||
|
if await request.is_disconnected():
|
||||||
|
completion_lock.release()
|
||||||
|
return
|
||||||
|
yield {
|
||||||
|
"response": response,
|
||||||
|
"model": "rwkv",
|
||||||
|
"choices": [
|
||||||
|
{
|
||||||
|
"message": {
|
||||||
|
"role": "assistant",
|
||||||
|
"content": response,
|
||||||
|
},
|
||||||
|
"index": 0,
|
||||||
|
"finish_reason": "stop",
|
||||||
|
}
|
||||||
|
],
|
||||||
|
}
|
||||||
|
# torch_gc()
|
||||||
|
completion_lock.release()
|
||||||
|
|
||||||
if body.stream:
|
if body.stream:
|
||||||
return EventSourceResponse(eval_rwkv())
|
return EventSourceResponse(eval_rwkv())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user