✨ feat: Criando funcionalidades do sistema com base nas seeds das tools para testar a assertividade do modelo na hora de chamar as funções.
parent
a271522eac
commit
4219ab39a3
@ -1,14 +1,94 @@
|
|||||||
from fastapi import APIRouter
|
from typing import List, Dict, Any
|
||||||
from app.api.schemas import ChatRequest, ChatResponse
|
|
||||||
|
from fastapi import APIRouter, Depends
|
||||||
|
from sqlalchemy.orm import Session
|
||||||
|
|
||||||
|
from app.api.schemas import (
|
||||||
|
ChatRequest,
|
||||||
|
ChatResponse,
|
||||||
|
ConsultarEstoqueRequest,
|
||||||
|
ValidarClienteVendaRequest,
|
||||||
|
AvaliarVeiculoTrocaRequest,
|
||||||
|
AgendarRevisaoRequest,
|
||||||
|
CancelarPedidoRequest,
|
||||||
|
)
|
||||||
|
from app.db.database import SessionLocal
|
||||||
from app.services.orquestrador_service import OrquestradorService
|
from app.services.orquestrador_service import OrquestradorService
|
||||||
|
from app.services.handlers import (
|
||||||
|
consultar_estoque,
|
||||||
|
validar_cliente_venda,
|
||||||
|
avaliar_veiculo_troca,
|
||||||
|
agendar_revisao,
|
||||||
|
cancelar_pedido,
|
||||||
|
)
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
service = OrquestradorService()
|
|
||||||
|
|
||||||
|
def get_db():
|
||||||
|
db = SessionLocal()
|
||||||
|
try:
|
||||||
|
yield db
|
||||||
|
finally:
|
||||||
|
db.close()
|
||||||
|
|
||||||
|
|
||||||
@router.post("/chat", response_model=ChatResponse)
|
@router.post("/chat", response_model=ChatResponse)
|
||||||
async def chat(request: ChatRequest):
|
async def chat(request: ChatRequest, db: Session = Depends(get_db)):
|
||||||
|
service = OrquestradorService(db)
|
||||||
result = await service.handle_message(
|
result = await service.handle_message(
|
||||||
message=request.message,
|
message=request.message,
|
||||||
user_id=request.user_id
|
user_id=request.user_id,
|
||||||
)
|
)
|
||||||
return ChatResponse(response=result)
|
return ChatResponse(response=result)
|
||||||
|
|
||||||
|
|
||||||
|
@router.post("/mock/consultar-estoque")
|
||||||
|
async def consultar_estoque_endpoint(
|
||||||
|
body: ConsultarEstoqueRequest,
|
||||||
|
) -> List[Dict[str, Any]]:
|
||||||
|
return await consultar_estoque(
|
||||||
|
preco_max=body.preco_max,
|
||||||
|
categoria=body.categoria,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@router.post("/mock/validar-cliente-venda")
|
||||||
|
async def validar_cliente_venda_endpoint(
|
||||||
|
body: ValidarClienteVendaRequest,
|
||||||
|
) -> Dict[str, Any]:
|
||||||
|
return await validar_cliente_venda(
|
||||||
|
cpf=body.cpf,
|
||||||
|
valor_veiculo=body.valor_veiculo,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@router.post("/mock/avaliar-veiculo-troca")
|
||||||
|
async def avaliar_veiculo_troca_endpoint(
|
||||||
|
body: AvaliarVeiculoTrocaRequest,
|
||||||
|
) -> Dict[str, Any]:
|
||||||
|
return await avaliar_veiculo_troca(
|
||||||
|
modelo=body.modelo,
|
||||||
|
ano=body.ano,
|
||||||
|
km=body.km,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@router.post("/mock/agendar-revisao")
|
||||||
|
async def agendar_revisao_endpoint(
|
||||||
|
body: AgendarRevisaoRequest,
|
||||||
|
) -> Dict[str, Any]:
|
||||||
|
return await agendar_revisao(
|
||||||
|
placa=body.placa,
|
||||||
|
data_hora=body.data_hora,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@router.post("/mock/cancelar-pedido")
|
||||||
|
async def cancelar_pedido_endpoint(
|
||||||
|
body: CancelarPedidoRequest,
|
||||||
|
) -> Dict[str, Any]:
|
||||||
|
return await cancelar_pedido(
|
||||||
|
numero_pedido=body.numero_pedido,
|
||||||
|
motivo=body.motivo,
|
||||||
|
)
|
||||||
|
|||||||
Loading…
Reference in New Issue