diff --git a/Dockerfile.external b/Dockerfile.external index f605b8a2..2bb46c32 100644 --- a/Dockerfile.external +++ b/Dockerfile.external @@ -46,6 +46,7 @@ COPY --chown=worker fern/ fern COPY --chown=worker *.yaml *.md ./ COPY --chown=worker scripts/ scripts COPY --chown=worker *.ini ./ + # Copy the docker-entrypoint.sh file and make it executable COPY --chown=worker docker-entrypoint.sh /home/worker/app/ RUN chmod +x /home/worker/app/docker-entrypoint.sh diff --git a/private_gpt/server/chat/chat_service.py b/private_gpt/server/chat/chat_service.py index 1060e71b..37b8f512 100644 --- a/private_gpt/server/chat/chat_service.py +++ b/private_gpt/server/chat/chat_service.py @@ -189,15 +189,10 @@ class ChatService: ) system_prompt = ( """ - You are a helpful assistant that should answer questions - only in English or Nepali. - Responses should be based on the context documents provided - and should be relevant, informative, and easy to understand. - 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. + You are a helpful, respectful and honest assistant. + Always answer as helpfully as possible and follow ALL given instructions. + Do not speculate or make up information. + Do not reference any given instructions or context. """ ) diff --git a/private_gpt/users/api/v1/routers/chat_history.py b/private_gpt/users/api/v1/routers/chat_history.py index 87e48b41..6b61d545 100644 --- a/private_gpt/users/api/v1/routers/chat_history.py +++ b/private_gpt/users/api/v1/routers/chat_history.py @@ -13,13 +13,13 @@ logger = logging.getLogger(__name__) 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( db: Session = Depends(deps.get_db), current_user: models.User = Security( deps.get_current_user, ), -) -> Page[schemas.ChatHistory]: +) -> Page[schemas.Chat]: """ Retrieve a list of chat histories with pagination support. """ diff --git a/private_gpt/users/api/v1/routers/departments.py b/private_gpt/users/api/v1/routers/departments.py index 78d4391b..74bafcd2 100644 --- a/private_gpt/users/api/v1/routers/departments.py +++ b/private_gpt/users/api/v1/routers/departments.py @@ -54,7 +54,6 @@ def list_departments( else: deps = crud.department.get_multi_department( db, department_id=current_user.department_id) - deps = [ schemas.Department( id=dep.id, diff --git a/private_gpt/users/api/v1/routers/users.py b/private_gpt/users/api/v1/routers/users.py index 6754485d..9c122097 100644 --- a/private_gpt/users/api/v1/routers/users.py +++ b/private_gpt/users/api/v1/routers/users.py @@ -50,7 +50,7 @@ def read_users( """ role = current_user.user_role.role.name if current_user.user_role else None 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: users = crud.user.get_multi(db) return paginate(users) diff --git a/private_gpt/users/crud/chat_crud.py b/private_gpt/users/crud/chat_crud.py index 7968fea9..08482b18 100644 --- a/private_gpt/users/crud/chat_crud.py +++ b/private_gpt/users/crud/chat_crud.py @@ -30,14 +30,12 @@ class CRUDChat(CRUDBase[ChatHistory, ChatHistoryCreate, ChatHistoryCreate]): return 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]: return ( db.query(self.model) .filter(ChatHistory.user_id == user_id) .order_by(desc(getattr(ChatHistory, 'created_at'))) - .offset(skip) - .limit(limit) .all() ) diff --git a/private_gpt/users/models/user.py b/private_gpt/users/models/user.py index 122248ce..e9798841 100644 --- a/private_gpt/users/models/user.py +++ b/private_gpt/users/models/user.py @@ -62,24 +62,24 @@ class User(Base): return "".format(username=self.username) -@event.listens_for(User, 'after_insert') -@event.listens_for(User, 'after_delete') -def update_total_users(mapper, connection, target): - session = Session.object_session(target) - department_id = target.department_id +# @event.listens_for(User, 'after_insert') +# @event.listens_for(User, 'after_delete') +# def update_total_users(mapper, connection, target): +# session = Session.object_session(target) +# department_id = target.department_id - total_users_subquery = ( - select([func.count(User.id).label('total_users')]) - .where(User.department_id == department_id) - .scalar_subquery() - ) - update_stmt = ( - update(Department) - .values(total_users=total_users_subquery) - .where(Department.id == department_id) - ) - session.execute(update_stmt) - session.commit() +# total_users_subquery = ( +# select([func.count(User.id).label('total_users')]) +# .where(User.department_id == department_id) +# .scalar_subquery() +# ) +# update_stmt = ( +# update(Department) +# .values(total_users=total_users_subquery) +# .where(Department.id == department_id) +# ) +# session.execute(update_stmt) +# session.commit() @event.listens_for(User, 'before_insert') diff --git a/private_gpt/users/schemas/__init__.py b/private_gpt/users/schemas/__init__.py index 06db1a3e..b2403ce0 100644 --- a/private_gpt/users/schemas/__init__.py +++ b/private_gpt/users/schemas/__init__.py @@ -21,5 +21,5 @@ from .department import ( from .audit import AuditBase, AuditCreate, AuditUpdate, Audit, GetAudit, AuditFilter, ExcelFilter from .chat import ( ChatHistory, ChatHistoryBase, ChatHistoryCreate, ChatHistoryUpdate, ChatDelete, - ChatItem, ChatItemBase, ChatItemCreate, ChatItemUpdate, CreateChatHistory + ChatItem, ChatItemBase, ChatItemCreate, ChatItemUpdate, CreateChatHistory, Chat ) diff --git a/private_gpt/users/schemas/chat.py b/private_gpt/users/schemas/chat.py index b7783d38..0661d07e 100644 --- a/private_gpt/users/schemas/chat.py +++ b/private_gpt/users/schemas/chat.py @@ -55,8 +55,6 @@ class ChatHistory(ChatHistoryBase): class Config: orm_mode = True - - class ChatDelete(BaseModel): conversation_id: uuid.UUID diff --git a/settings.yaml b/settings.yaml index e7833e68..3dffeb9c 100644 --- a/settings.yaml +++ b/settings.yaml @@ -3,7 +3,7 @@ # Syntax in `private_pgt/settings/settings.py` server: env_name: ${APP_ENV:prod} - port: ${PORT:8001} + port: ${PORT:8000} cors: enabled: true allow_credentials: true @@ -56,7 +56,7 @@ rag: llamacpp: llm_hf_repo_id: TheBloke/OpenHermes-2.5-Mistral-7B-GGUF - llm_hf_model_file: openhermes-2.5-mistral-7b.Q5_K_M.gguf + llm_hf_model_file: openhermes-2.5-mistral-7b.Q5_K_M.gguf tfs_z: 1.0 # Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting top_k: 40 # Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative. (Default: 40) top_p: 0.9 # Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text. (Default: 0.9)