c71211c8f604_add_tool_invoke_model_log.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. """add tool_invoke_model_log
  2. Revision ID: c71211c8f604
  3. Revises: f25003750af4
  4. Create Date: 2024-01-09 11:42:50.664797
  5. """
  6. import sqlalchemy as sa
  7. from alembic import op
  8. from sqlalchemy.dialects import postgresql
  9. # revision identifiers, used by Alembic.
  10. revision = 'c71211c8f604'
  11. down_revision = 'f25003750af4'
  12. branch_labels = None
  13. depends_on = None
  14. def upgrade():
  15. # ### commands auto generated by Alembic - please adjust! ###
  16. op.create_table('tool_model_invokes',
  17. sa.Column('id', postgresql.UUID(), server_default=sa.text('uuid_generate_v4()'), nullable=False),
  18. sa.Column('user_id', postgresql.UUID(), nullable=False),
  19. sa.Column('tenant_id', postgresql.UUID(), nullable=False),
  20. sa.Column('provider', sa.String(length=40), nullable=False),
  21. sa.Column('tool_type', sa.String(length=40), nullable=False),
  22. sa.Column('tool_name', sa.String(length=40), nullable=False),
  23. sa.Column('tool_id', postgresql.UUID(), nullable=False),
  24. sa.Column('model_parameters', sa.Text(), nullable=False),
  25. sa.Column('prompt_messages', sa.Text(), nullable=False),
  26. sa.Column('model_response', sa.Text(), nullable=False),
  27. sa.Column('prompt_tokens', sa.Integer(), server_default=sa.text('0'), nullable=False),
  28. sa.Column('answer_tokens', sa.Integer(), server_default=sa.text('0'), nullable=False),
  29. sa.Column('answer_unit_price', sa.Numeric(precision=10, scale=4), nullable=False),
  30. sa.Column('answer_price_unit', sa.Numeric(precision=10, scale=7), server_default=sa.text('0.001'), nullable=False),
  31. sa.Column('provider_response_latency', sa.Float(), server_default=sa.text('0'), nullable=False),
  32. sa.Column('total_price', sa.Numeric(precision=10, scale=7), nullable=True),
  33. sa.Column('currency', sa.String(length=255), nullable=False),
  34. sa.Column('created_at', sa.DateTime(), server_default=sa.text('CURRENT_TIMESTAMP(0)'), nullable=False),
  35. sa.Column('updated_at', sa.DateTime(), server_default=sa.text('CURRENT_TIMESTAMP(0)'), nullable=False),
  36. sa.PrimaryKeyConstraint('id', name='tool_model_invoke_pkey')
  37. )
  38. # ### end Alembic commands ###
  39. def downgrade():
  40. # ### commands auto generated by Alembic - please adjust! ###
  41. op.drop_table('tool_model_invokes')
  42. # ### end Alembic commands ###