mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-08 03:08:45 +00:00
feat(proxy): accept spend field on /team/member_update (#30783)
This commit is contained in:
parent
ad6a0acf19
commit
598bfa32bb
2 changed files with 27 additions and 0 deletions
|
|
@ -3639,6 +3639,9 @@ class TeamMemberDeleteRequest(MemberDeleteRequest):
|
|||
|
||||
class TeamMemberUpdateRequest(TeamMemberDeleteRequest):
|
||||
max_budget_in_team: Optional[float] = None
|
||||
spend: Optional[float] = Field(
|
||||
default=None, description="Amount spent by team member"
|
||||
)
|
||||
role: Optional[Literal["admin", "user"]] = None
|
||||
tpm_limit: Optional[int] = Field(
|
||||
default=None, description="Tokens per minute limit for this team member"
|
||||
|
|
@ -3659,6 +3662,7 @@ class TeamMemberUpdateRequest(TeamMemberDeleteRequest):
|
|||
class TeamMemberUpdateResponse(MemberUpdateResponse):
|
||||
team_id: str
|
||||
max_budget_in_team: Optional[float] = None
|
||||
spend: Optional[float] = None
|
||||
tpm_limit: Optional[int] = None
|
||||
rpm_limit: Optional[int] = None
|
||||
budget_duration: Optional[str] = None
|
||||
|
|
|
|||
|
|
@ -3028,6 +3028,28 @@ async def team_member_update(
|
|||
team_default_budget_id=team_default_budget_id,
|
||||
)
|
||||
|
||||
### update team member spend
|
||||
if data.spend is not None:
|
||||
await prisma_client.db.litellm_teammembership.update(
|
||||
where={"user_id_team_id": {"user_id": received_user_id, "team_id": data.team_id}},
|
||||
data={"spend": data.spend}
|
||||
)
|
||||
|
||||
from litellm.proxy.proxy_server import spend_counter_cache
|
||||
if spend_counter_cache is not None:
|
||||
_counter_key = f"spend:team_member:{received_user_id}:{data.team_id}"
|
||||
if spend_counter_cache.in_memory_cache is not None:
|
||||
spend_counter_cache.in_memory_cache.set_cache(
|
||||
key=_counter_key, value=data.spend, ttl=60
|
||||
)
|
||||
if spend_counter_cache.redis_cache is not None:
|
||||
try:
|
||||
await spend_counter_cache.redis_cache.async_set_cache(
|
||||
key=_counter_key, value=data.spend, ttl=60
|
||||
)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
### update team member role
|
||||
if data.role is not None:
|
||||
team_members: List[Member] = []
|
||||
|
|
@ -3056,6 +3078,7 @@ async def team_member_update(
|
|||
user_id=received_user_id,
|
||||
user_email=data.user_email,
|
||||
max_budget_in_team=data.max_budget_in_team,
|
||||
spend=data.spend,
|
||||
tpm_limit=data.tpm_limit,
|
||||
rpm_limit=data.rpm_limit,
|
||||
budget_duration=data.budget_duration,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue