Spaces:
Sleeping
Sleeping
import logging | |
from typing import Annotated | |
from fastapi import APIRouter, Response, UploadFile, Depends | |
from fastapi.responses import FileResponse | |
from common import auth | |
from schemas.llm_prompt import LlmPromptCreateSchema, LlmPromptSchema | |
from components.services.llm_prompt import LlmPromptService | |
import common.dependencies as DI | |
router = APIRouter(prefix='/llm_prompt', tags=['Prompt settings']) | |
logger = logging.getLogger(__name__) | |
async def get_llm_prompt_list(llm_prompt_service: Annotated[LlmPromptService, Depends(DI.get_llm_prompt_service)], | |
current_user: Annotated[any, Depends(auth.get_current_user)] | |
) -> list[LlmPromptSchema]: | |
logger.info("Handling GET request to /llm_prompt/{prompt_id}}") | |
try: | |
prompt = llm_prompt_service.get_list() | |
return prompt | |
except Exception as e: | |
logger.error(f"Error retrieving llm prompt: {str(e)}") | |
raise e | |
async def get_llm_default_prompt(llm_prompt_service: Annotated[LlmPromptService, Depends(DI.get_llm_prompt_service)], | |
current_user: Annotated[any, Depends(auth.get_current_user)] | |
) -> LlmPromptSchema: | |
logger.info("Handling GET request to /llm_prompt/default/") | |
try: | |
prompt = llm_prompt_service.get_default() | |
logger.info( | |
f"Successfully retrieved default llm prompt with ID {prompt.id}" | |
) | |
return prompt | |
except Exception as e: | |
logger.error(f"Error retrieving default llm prompt: {str(e)}") | |
raise e | |
async def get_llm_prompt(prompt_id: int, | |
llm_prompt_service: Annotated[LlmPromptService, Depends(DI.get_llm_prompt_service)], | |
current_user: Annotated[any, Depends(auth.get_current_user)] | |
) -> LlmPromptSchema: | |
logger.info("Handling GET request to /llm_prompt/{prompt_id}}") | |
try: | |
prompt = llm_prompt_service.get_by_id(prompt_id) | |
logger.info( | |
f"Successfully retrieved llm prompt with ID: {prompt_id}" | |
) | |
return prompt | |
except Exception as e: | |
logger.error(f"Error retrieving llm prompt: {str(e)}") | |
raise e | |
async def set_as_default_prompt(prompt_id: int, | |
llm_prompt_service: Annotated[LlmPromptService, Depends(DI.get_llm_prompt_service)], | |
current_user: Annotated[any, Depends(auth.get_current_user)]): | |
logger.info("Handling PUT request to /llm_prompt/default/{prompt_id}") | |
try: | |
llm_prompt_service.set_as_default(prompt_id) | |
logger.info( | |
f"Successfully setted default llm prompt with ID: {prompt_id}" | |
) | |
return Response(status_code=200) | |
except Exception as e: | |
logger.error(f"Error setting the default llm prompt: {str(e)}") | |
raise e | |
async def delete_prompt(prompt_id: int, | |
llm_prompt_service: Annotated[LlmPromptService, Depends(DI.get_llm_prompt_service)], | |
current_user: Annotated[any, Depends(auth.get_current_user)]): | |
logger.info("Handling DELETE request to /llm_prompt/{prompt_id}") | |
try: | |
llm_prompt_service.delete(prompt_id) | |
logger.info( | |
f"Successfully deleted llm prompt: {prompt_id}" | |
) | |
return Response(status_code=200) | |
except Exception as e: | |
logger.error(f"Error deleting llm prompt: {str(e)}") | |
raise e | |
async def create_prompt(data: LlmPromptCreateSchema, | |
llm_prompt_service: Annotated[LlmPromptService, Depends(DI.get_llm_prompt_service)], | |
current_user: Annotated[any, Depends(auth.get_current_user)]): | |
logger.info("Handling POST request to /llm_prompt") | |
try: | |
new_prompt = llm_prompt_service.create(data) | |
logger.info( | |
f"Successfully created llm prompt with ID: {new_prompt.id}" | |
) | |
return new_prompt | |
except Exception as e: | |
logger.error(f"Error creating llm prompt: {str(e)}") | |
raise e | |
async def update_prompt(prompt_id: int, file: LlmPromptSchema, | |
llm_prompt_service: Annotated[LlmPromptService, Depends(DI.get_llm_prompt_service)], | |
current_user: Annotated[any, Depends(auth.get_current_user)]): | |
logger.info("Handling PUT request to /llm_prompt/{prompt_id}") | |
try: | |
updated_prompt = llm_prompt_service.update(prompt_id, file) | |
logger.info( | |
f"Successfully updated llm prompt with ID: {prompt_id}" | |
) | |
return updated_prompt | |
except Exception as e: | |
logger.error(f"Error updating llm prompt: {str(e)}") | |
raise e | |