feat:精简
Some checks failed
Create and publish Docker images with specific build args / build-main-image (linux/amd64, ubuntu-latest) (push) Has been cancelled
Create and publish Docker images with specific build args / build-main-image (linux/arm64, ubuntu-24.04-arm) (push) Has been cancelled
Create and publish Docker images with specific build args / build-cuda-image (linux/amd64, ubuntu-latest) (push) Has been cancelled
Create and publish Docker images with specific build args / build-cuda-image (linux/arm64, ubuntu-24.04-arm) (push) Has been cancelled
Create and publish Docker images with specific build args / build-cuda126-image (linux/amd64, ubuntu-latest) (push) Has been cancelled
Create and publish Docker images with specific build args / build-cuda126-image (linux/arm64, ubuntu-24.04-arm) (push) Has been cancelled
Create and publish Docker images with specific build args / build-ollama-image (linux/amd64, ubuntu-latest) (push) Has been cancelled
Create and publish Docker images with specific build args / build-ollama-image (linux/arm64, ubuntu-24.04-arm) (push) Has been cancelled
Create and publish Docker images with specific build args / build-slim-image (linux/amd64, ubuntu-latest) (push) Has been cancelled
Create and publish Docker images with specific build args / build-slim-image (linux/arm64, ubuntu-24.04-arm) (push) Has been cancelled
Python CI / Format Backend (3.11.x) (push) Has been cancelled
Python CI / Format Backend (3.12.x) (push) Has been cancelled
Frontend Build / Format & Build Frontend (push) Has been cancelled
Frontend Build / Frontend Unit Tests (push) Has been cancelled
Create and publish Docker images with specific build args / merge-main-images (push) Has been cancelled
Create and publish Docker images with specific build args / merge-cuda-images (push) Has been cancelled
Create and publish Docker images with specific build args / merge-cuda126-images (push) Has been cancelled
Create and publish Docker images with specific build args / merge-ollama-images (push) Has been cancelled
Create and publish Docker images with specific build args / merge-slim-images (push) Has been cancelled
Close inactive issues / close-issues (push) Has been cancelled

This commit is contained in:
2026-01-16 18:34:38 +08:00
parent 16263710d9
commit 11fcec9387
137 changed files with 68993 additions and 6435 deletions

View File

@@ -36,7 +36,6 @@ from open_webui.env import (
from open_webui.models.users import UserModel
from open_webui.constants import ERROR_MESSAGES
from open_webui.utils.credit.utils import check_credit_by_user_id
from open_webui.utils.payload import (
apply_model_params_to_body_openai,
@@ -49,7 +48,6 @@ from open_webui.utils.misc import (
from open_webui.utils.auth import get_admin_user, get_verified_user
from open_webui.utils.access_control import has_access
from open_webui.utils.credit.usage import CreditDeduct
from open_webui.utils.headers import include_user_info_headers
@@ -805,8 +803,6 @@ async def generate_chat_completion(
user=Depends(get_verified_user),
bypass_filter: Optional[bool] = False,
):
check_credit_by_user_id(user_id=user.id, form_data=form_data)
if BYPASS_MODEL_ACCESS_CONTROL:
bypass_filter = True
@@ -975,14 +971,7 @@ async def generate_chat_completion(
else:
return PlainTextResponse(status_code=r.status, content=response)
with CreditDeduct(
user=user,
model_id=model_id,
body=form_data,
is_stream=False,
) as credit_deduct:
credit_deduct.run(response=response)
return credit_deduct.add_usage_to_resp(response)
return response
except Exception as e:
log.exception(e)
@@ -1008,10 +997,6 @@ async def embeddings(request: Request, form_data: dict, user):
dict: OpenAI-compatible embeddings response.
"""
# check credit
if user:
check_credit_by_user_id(user_id=user.id, form_data={}, is_embedding=True)
idx = 0
# Prepare payload/body
body = json.dumps(form_data)
@@ -1047,17 +1032,6 @@ async def embeddings(request: Request, form_data: dict, user):
)
if "text/event-stream" in r.headers.get("Content-Type", ""):
if user:
with CreditDeduct(
user=user,
model_id=model_id,
body={
"messages": [{"role": "user", "content": form_data["input"]}]
},
is_stream=False,
is_embedding=True,
) as credit_deduct:
credit_deduct.run(form_data["input"])
streaming = True
return StreamingResponse(
r.content,
@@ -1081,24 +1055,6 @@ async def embeddings(request: Request, form_data: dict, user):
status_code=r.status, content=response_data
)
if user:
with CreditDeduct(
user=user,
model_id=model_id,
body={
"messages": [{"role": "user", "content": form_data["input"]}]
},
is_stream=False,
is_embedding=True,
) as credit_deduct:
if "usage" in response_data:
credit_deduct.is_official_usage = True
prompt_tokens = response_data["usage"]["prompt_tokens"]
credit_deduct.usage.prompt_tokens = prompt_tokens
credit_deduct.usage.total_tokens = prompt_tokens
else:
credit_deduct.run(form_data["input"])
return response_data
except Exception as e:
log.exception(e)