Files
Heimgeist/backend/schemas.py
Victor Giers 08d27f0007 feat: add message editing and regeneration endpoints
Add PUT /sessions/{session_id}/messages/{index} to edit a user message and prune all subsequent messages.

Add POST /sessions/{session_id}/regenerate to regenerate an assistant response from a given index (supports optional streaming).

Introduce EditMessageRequest and RegenerateRequest schemas.

Update the frontend to: • allow in‑place editing of user messages with an auto‑focusing textarea; • copy messages to clipboard; • regenerate assistant responses via a button.

Add new CSS rules for message options bars and the editing textarea.
2025-08-25 23:56:26 +02:00

50 lines
964 B
Python

from pydantic import BaseModel
from typing import List, Optional
from datetime import datetime
class Message(BaseModel):
role: str
content: str
class ChatRequest(BaseModel):
session_id: str
model: str
message: str
stream: Optional[bool] = False
class ChatResponse(BaseModel):
reply: str
class HistoryResponse(BaseModel):
messages: List[Message]
class GenerateTitleRequest(BaseModel):
session_id: str
message: str
model: str
class GenerateTitleResponse(BaseModel):
title: str
class CreateSessionRequest(BaseModel):
session_id: str
class ChatSession(BaseModel):
id: int
session_id: str
name: str
created_at: datetime
class Config:
orm_mode = True
class SessionsResponse(BaseModel):
sessions: List[ChatSession]
class EditMessageRequest(BaseModel):
message: str
class RegenerateRequest(BaseModel):
index: int
model: Optional[str] = None
stream: bool = True