feat: feat: add interface params

This commit is contained in:
Swayam 2025-10-06 03:00:25 +05:30
parent 6b7ce53c58
commit 9f99b09e0d
3 changed files with 51 additions and 2 deletions

View file

@ -0,0 +1,38 @@
"""add inference_params to searchspaces
Revision ID: eb0c978da8fd
Revises: 22
Create Date: 2025-10-06 02:54:11.618100
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision: str = 'eb0c978da8fd'
down_revision: Union[str, None] = '22'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
"""Upgrade schema."""
# ### commands auto generated by Alembic - please adjust! ###
op.drop_index(op.f('chucks_search_index'), table_name='chunks', postgresql_using='gin')
op.drop_index(op.f('chucks_vector_index'), table_name='chunks', postgresql_using='hnsw')
op.drop_index(op.f('document_search_index'), table_name='documents', postgresql_using='gin')
op.drop_index(op.f('document_vector_index'), table_name='documents', postgresql_using='hnsw')
# ### end Alembic commands ###
def downgrade() -> None:
"""Downgrade schema."""
# ### commands auto generated by Alembic - please adjust! ###
op.create_index(op.f('document_vector_index'), 'documents', ['embedding'], unique=False, postgresql_using='hnsw')
op.create_index(op.f('document_search_index'), 'documents', [sa.literal_column("to_tsvector('english'::regconfig, content)")], unique=False, postgresql_using='gin')
op.create_index(op.f('chucks_vector_index'), 'chunks', ['embedding'], unique=False, postgresql_using='hnsw')
op.create_index(op.f('chucks_search_index'), 'chunks', [sa.literal_column("to_tsvector('english'::regconfig, content)")], unique=False, postgresql_using='gin')
# ### end Alembic commands ###

View file

@ -205,6 +205,8 @@ class SearchSpace(BaseModel, TimestampMixin):
name = Column(String(100), nullable=False, index=True) name = Column(String(100), nullable=False, index=True)
description = Column(String(500), nullable=True) description = Column(String(500), nullable=True)
inference_params = Column(JSON, nullable=True)
user_id = Column( user_id = Column(
UUID(as_uuid=True), ForeignKey("user.id", ondelete="CASCADE"), nullable=False UUID(as_uuid=True), ForeignKey("user.id", ondelete="CASCADE"), nullable=False
) )

View file

@ -1,14 +1,21 @@
import uuid import uuid
from datetime import datetime from datetime import datetime
from pydantic import BaseModel, ConfigDict from pydantic import BaseModel, ConfigDict, Field
from .base import IDModel, TimestampModel from .base import IDModel, TimestampModel
class InferenceParams(BaseModel):
temperature: float | None = Field(None, ge=0.0, le=2.0)
max_tokens: int | None = Field(None, ge=0)
top_k: int | None = Field(None, ge=0)
top_p: float | None = Field(None, ge=0.0, le=1.0)
class SearchSpaceBase(BaseModel): class SearchSpaceBase(BaseModel):
name: str name: str
description: str | None = None description: str | None = None
inference_params: InferenceParams | None = None
class SearchSpaceCreate(SearchSpaceBase): class SearchSpaceCreate(SearchSpaceBase):
@ -16,7 +23,9 @@ class SearchSpaceCreate(SearchSpaceBase):
class SearchSpaceUpdate(SearchSpaceBase): class SearchSpaceUpdate(SearchSpaceBase):
pass name: str | None = None
description: str | None = None
inference_params: InferenceParams | None = None
class SearchSpaceRead(SearchSpaceBase, IDModel, TimestampModel): class SearchSpaceRead(SearchSpaceBase, IDModel, TimestampModel):