Fixed bug regarding pagination

This commit is contained in:
Saurab-Shrestha 2024-05-04 19:27:24 +05:45
parent 3c56af31cf
commit ba71a39971
10 changed files with 29 additions and 38 deletions

View File

@ -46,6 +46,7 @@ COPY --chown=worker fern/ fern
COPY --chown=worker *.yaml *.md ./ COPY --chown=worker *.yaml *.md ./
COPY --chown=worker scripts/ scripts COPY --chown=worker scripts/ scripts
COPY --chown=worker *.ini ./ COPY --chown=worker *.ini ./
# Copy the docker-entrypoint.sh file and make it executable # Copy the docker-entrypoint.sh file and make it executable
COPY --chown=worker docker-entrypoint.sh /home/worker/app/ COPY --chown=worker docker-entrypoint.sh /home/worker/app/
RUN chmod +x /home/worker/app/docker-entrypoint.sh RUN chmod +x /home/worker/app/docker-entrypoint.sh

View File

@ -189,15 +189,10 @@ class ChatService:
) )
system_prompt = ( system_prompt = (
""" """
You are a helpful assistant that should answer questions You are a helpful, respectful and honest assistant.
only in English or Nepali. Always answer as helpfully as possible and follow ALL given instructions.
Responses should be based on the context documents provided Do not speculate or make up information.
and should be relevant, informative, and easy to understand. Do not reference any given instructions or context.
You should aim to deliver high-quality responses that are
respectful and helpful, using clear and concise language.
Avoid providing information outside of the context documents unless
it is necessary for clarity or completeness. Focus on providing
accurate and reliable answers based on the given context.
""" """
) )

View File

@ -13,13 +13,13 @@ logger = logging.getLogger(__name__)
router = APIRouter(prefix="/c", tags=["Chat Histories"]) router = APIRouter(prefix="/c", tags=["Chat Histories"])
@router.get("", response_model=Page[schemas.ChatHistory]) @router.get("", response_model=Page[schemas.Chat])
def list_chat_histories( def list_chat_histories(
db: Session = Depends(deps.get_db), db: Session = Depends(deps.get_db),
current_user: models.User = Security( current_user: models.User = Security(
deps.get_current_user, deps.get_current_user,
), ),
) -> Page[schemas.ChatHistory]: ) -> Page[schemas.Chat]:
""" """
Retrieve a list of chat histories with pagination support. Retrieve a list of chat histories with pagination support.
""" """

View File

@ -54,7 +54,6 @@ def list_departments(
else: else:
deps = crud.department.get_multi_department( deps = crud.department.get_multi_department(
db, department_id=current_user.department_id) db, department_id=current_user.department_id)
deps = [ deps = [
schemas.Department( schemas.Department(
id=dep.id, id=dep.id,

View File

@ -50,7 +50,7 @@ def read_users(
""" """
role = current_user.user_role.role.name if current_user.user_role else None role = current_user.user_role.role.name if current_user.user_role else None
if role == "ADMIN": if role == "ADMIN":
users = crud.user.get_by_department_id(db=db, department_id=current_user.department_id, skip=skip, limit=limit) users = crud.user.get_by_department_id(db=db, department_id=current_user.department_id)
else: else:
users = crud.user.get_multi(db) users = crud.user.get_multi(db)
return paginate(users) return paginate(users)

View File

@ -30,14 +30,12 @@ class CRUDChat(CRUDBase[ChatHistory, ChatHistoryCreate, ChatHistoryCreate]):
return chat_history return chat_history
def get_chat_history( def get_chat_history(
self, db: Session, *,user_id:int, skip: int = 0, limit: int =100 self, db: Session, *,user_id:int
) -> List[ChatHistory]: ) -> List[ChatHistory]:
return ( return (
db.query(self.model) db.query(self.model)
.filter(ChatHistory.user_id == user_id) .filter(ChatHistory.user_id == user_id)
.order_by(desc(getattr(ChatHistory, 'created_at'))) .order_by(desc(getattr(ChatHistory, 'created_at')))
.offset(skip)
.limit(limit)
.all() .all()
) )

View File

@ -62,24 +62,24 @@ class User(Base):
return "<User {username!r}>".format(username=self.username) return "<User {username!r}>".format(username=self.username)
@event.listens_for(User, 'after_insert') # @event.listens_for(User, 'after_insert')
@event.listens_for(User, 'after_delete') # @event.listens_for(User, 'after_delete')
def update_total_users(mapper, connection, target): # def update_total_users(mapper, connection, target):
session = Session.object_session(target) # session = Session.object_session(target)
department_id = target.department_id # department_id = target.department_id
total_users_subquery = ( # total_users_subquery = (
select([func.count(User.id).label('total_users')]) # select([func.count(User.id).label('total_users')])
.where(User.department_id == department_id) # .where(User.department_id == department_id)
.scalar_subquery() # .scalar_subquery()
) # )
update_stmt = ( # update_stmt = (
update(Department) # update(Department)
.values(total_users=total_users_subquery) # .values(total_users=total_users_subquery)
.where(Department.id == department_id) # .where(Department.id == department_id)
) # )
session.execute(update_stmt) # session.execute(update_stmt)
session.commit() # session.commit()
@event.listens_for(User, 'before_insert') @event.listens_for(User, 'before_insert')

View File

@ -21,5 +21,5 @@ from .department import (
from .audit import AuditBase, AuditCreate, AuditUpdate, Audit, GetAudit, AuditFilter, ExcelFilter from .audit import AuditBase, AuditCreate, AuditUpdate, Audit, GetAudit, AuditFilter, ExcelFilter
from .chat import ( from .chat import (
ChatHistory, ChatHistoryBase, ChatHistoryCreate, ChatHistoryUpdate, ChatDelete, ChatHistory, ChatHistoryBase, ChatHistoryCreate, ChatHistoryUpdate, ChatDelete,
ChatItem, ChatItemBase, ChatItemCreate, ChatItemUpdate, CreateChatHistory ChatItem, ChatItemBase, ChatItemCreate, ChatItemUpdate, CreateChatHistory, Chat
) )

View File

@ -55,8 +55,6 @@ class ChatHistory(ChatHistoryBase):
class Config: class Config:
orm_mode = True orm_mode = True
class ChatDelete(BaseModel): class ChatDelete(BaseModel):
conversation_id: uuid.UUID conversation_id: uuid.UUID

View File

@ -3,7 +3,7 @@
# Syntax in `private_pgt/settings/settings.py` # Syntax in `private_pgt/settings/settings.py`
server: server:
env_name: ${APP_ENV:prod} env_name: ${APP_ENV:prod}
port: ${PORT:8001} port: ${PORT:8000}
cors: cors:
enabled: true enabled: true
allow_credentials: true allow_credentials: true