fed8b2eed7
Backend release / release (push) Waiting to run
Bandit Security Scan / bandit_scan (push) Waiting to run
Build and push multi-arch DocsGPT Docker image / build (linux/amd64, ubuntu-latest, amd64) (push) Waiting to run
Build and push multi-arch DocsGPT Docker image / build (linux/arm64, ubuntu-24.04-arm, arm64) (push) Waiting to run
Build and push multi-arch DocsGPT Docker image / manifest (push) Blocked by required conditions
Build and push DocsGPT FE Docker image for development / build (linux/amd64, ubuntu-latest, amd64) (push) Waiting to run
Build and push DocsGPT FE Docker image for development / build (linux/arm64, ubuntu-24.04-arm, arm64) (push) Waiting to run
Build and push DocsGPT FE Docker image for development / manifest (push) Blocked by required conditions
Python linting / ruff (push) Waiting to run
Run python tests with pytest / Run tests and count coverage (3.12) (push) Waiting to run
React Widget Build / build (push) Waiting to run
35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
"""0015 token_usage model_id — record which model each call ran under.
|
|
|
|
Adds ``token_usage.model_id`` (canonical id: catalog name for built-ins,
|
|
UUID for BYOM) so analytics can group spend by model. The partial index
|
|
mirrors ``token_usage_request_id_idx`` — it excludes the NULL rows that
|
|
pre-date the column.
|
|
|
|
Revision ID: 0015_token_usage_model_id
|
|
Revises: 0014_device_token_hash_index
|
|
"""
|
|
|
|
from typing import Sequence, Union
|
|
|
|
from alembic import op
|
|
|
|
|
|
revision: str = "0015_token_usage_model_id"
|
|
down_revision: Union[str, None] = "0014_device_token_hash_index"
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
|
depends_on: Union[str, Sequence[str], None] = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
op.execute("ALTER TABLE token_usage ADD COLUMN model_id TEXT;")
|
|
op.execute(
|
|
'CREATE INDEX token_usage_model_ts_idx '
|
|
'ON token_usage (model_id, "timestamp" DESC) '
|
|
"WHERE model_id IS NOT NULL;"
|
|
)
|
|
|
|
|
|
def downgrade() -> None:
|
|
op.execute("DROP INDEX IF EXISTS token_usage_model_ts_idx;")
|
|
op.execute("ALTER TABLE token_usage DROP COLUMN IF EXISTS model_id;")
|