mirror of
https://github.com/eigent-ai/eigent.git
synced 2026-05-15 09:50:33 +00:00
feat: migrate eigent_server changes (#653)
This commit is contained in:
commit
e15ff83d49
3 changed files with 38 additions and 1 deletions
|
|
@ -0,0 +1,28 @@
|
|||
"""add_timestamp_to_chat_step
|
||||
|
||||
Revision ID: add_timestamp_to_chat_step
|
||||
Revises: eec7242b3a9b
|
||||
Create Date: 2025-11-13 17:31:51.692506
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = "add_timestamp_to_chat_step"
|
||||
down_revision: Union[str, None] = "eec7242b3a9b"
|
||||
branch_labels: Union[str, Sequence[str], None] = None
|
||||
depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
"""Add timestamp column to chat_step table."""
|
||||
op.add_column("chat_step", sa.Column("timestamp", sa.Float(), nullable=True))
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
"""Remove timestamp column from chat_step table."""
|
||||
op.drop_column("chat_step", "timestamp")
|
||||
|
|
@ -4,6 +4,7 @@ from typing import List, Optional
|
|||
from fastapi import Depends, HTTPException, Query, Response, APIRouter
|
||||
from fastapi.responses import StreamingResponse
|
||||
from sqlmodel import Session, asc, select
|
||||
from sqlalchemy.sql.expression import case
|
||||
from app.component.database import session
|
||||
from app.component.auth import Auth, auth_must
|
||||
from fastapi_babel import _
|
||||
|
|
@ -46,7 +47,11 @@ async def share_playback(
|
|||
|
||||
async def event_generator():
|
||||
try:
|
||||
stmt = select(ChatStep).where(ChatStep.task_id == task_id).order_by(asc(ChatStep.id))
|
||||
stmt = select(ChatStep).where(ChatStep.task_id == task_id).order_by(
|
||||
asc(case((ChatStep.timestamp.is_(None), 1), else_=0)),
|
||||
asc(ChatStep.timestamp),
|
||||
asc(ChatStep.id)
|
||||
)
|
||||
steps = session.exec(stmt).all()
|
||||
|
||||
if not steps:
|
||||
|
|
@ -101,6 +106,7 @@ async def create_chat_step(step: ChatStepIn, session: Session = Depends(session)
|
|||
task_id=step.task_id,
|
||||
step=step.step,
|
||||
data=step.data,
|
||||
timestamp=step.timestamp
|
||||
)
|
||||
session.add(chat_step)
|
||||
session.commit()
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ class ChatStep(AbstractModel, DefaultTimes, table=True):
|
|||
task_id: str = Field(index=True)
|
||||
step: str
|
||||
data: str = Field(sa_type=JSON)
|
||||
timestamp: float | None = Field(default=None, nullable=True)
|
||||
|
||||
@field_validator("data", mode="before")
|
||||
@classmethod
|
||||
|
|
@ -34,6 +35,7 @@ class ChatStepIn(BaseModel):
|
|||
task_id: str
|
||||
step: str
|
||||
data: Any
|
||||
timestamp: float | None = None
|
||||
|
||||
|
||||
class ChatStepOut(BaseModel):
|
||||
|
|
@ -41,3 +43,4 @@ class ChatStepOut(BaseModel):
|
|||
task_id: str
|
||||
step: str
|
||||
data: Any
|
||||
timestamp: float | None = None
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue