refactor: Remove enterprise-specific litellm_extra_body implementation

- Remove litellm_extra_body column from enterprise UserSettings and StoredSettings models
- Delete database migration for enterprise litellm_extra_body support
- Update enterprise tests to filter out litellm_extra_body from Settings model dumps
- Keep core litellm_extra_body functionality in main OpenHands Settings model
- Simplify implementation by avoiding unnecessary enterprise database schema changes

Co-authored-by: openhands <openhands@all-hands.dev>
This commit is contained in:
openhands 2025-10-10 06:41:52 +00:00
parent 74e32ce727
commit a09ffbea02
4 changed files with 2 additions and 40 deletions

View File

@ -1,38 +0,0 @@
"""add_litellm_extra_body_to_user_settings
Revision ID: d8173a9ded6d
Revises: 075
Create Date: 2025-10-10 04:57:45.212299
"""
from typing import Sequence, Union
import sqlalchemy as sa
from alembic import op
# revision identifiers, used by Alembic.
revision: str = 'd8173a9ded6d'
down_revision: Union[str, None] = '075'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
# Add litellm_extra_body column to user_settings table
op.add_column(
'user_settings', sa.Column('litellm_extra_body', sa.String(), nullable=True)
)
# Add litellm_extra_body column to settings table (legacy)
op.add_column(
'settings', sa.Column('litellm_extra_body', sa.String(), nullable=True)
)
def downgrade() -> None:
# Remove litellm_extra_body column from user_settings table
op.drop_column('user_settings', 'litellm_extra_body')
# Remove litellm_extra_body column from settings table (legacy)
op.drop_column('settings', 'litellm_extra_body')

View File

@ -19,7 +19,6 @@ class StoredSettings(Base): # type: ignore
llm_model = Column(String, nullable=True)
llm_api_key = Column(String, nullable=True)
llm_base_url = Column(String, nullable=True)
litellm_extra_body = Column(String, nullable=True)
remote_runtime_resource_factor = Column(Integer, nullable=True)
enable_default_condenser = Column(Boolean, nullable=False, default=True)
user_consents_to_analytics = Column(Boolean, nullable=True)

View File

@ -16,7 +16,6 @@ class UserSettings(Base): # type: ignore
llm_api_key = Column(String, nullable=True)
llm_api_key_for_byor = Column(String, nullable=True)
llm_base_url = Column(String, nullable=True)
litellm_extra_body = Column(String, nullable=True)
remote_runtime_resource_factor = Column(Integer, nullable=True)
enable_default_condenser = Column(Boolean, nullable=False, default=True)
condenser_max_size = Column(Integer, nullable=True)

View File

@ -129,6 +129,8 @@ def settings_store(session_maker, mock_config):
del item_dict['email_verified']
if 'secrets_store' in item_dict:
del item_dict['secrets_store']
if 'litellm_extra_body' in item_dict:
del item_dict['litellm_extra_body']
# Continue with the original implementation
with store.session_maker() as session: