feat: Criando funcionalidades do sistema com base nas seeds das tools para testar a assertividade do modelo na hora de chamar as funções.

main
parent a271522eac
commit 4219ab39a3

@ -1,14 +1,94 @@
from fastapi import APIRouter
from app.api.schemas import ChatRequest, ChatResponse
from typing import List, Dict, Any
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.handlers import (
consultar_estoque,
validar_cliente_venda,
avaliar_veiculo_troca,
agendar_revisao,
cancelar_pedido,
)
router = APIRouter()
service = OrquestradorService()
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
@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(
message=request.message,
user_id=request.user_id
user_id=request.user_id,
)
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…
Cancel
Save