fix(pos): bloquear modelos de pago — solo modelos :free permitidos
Validacion _validate_model() verifica que el modelo termine en ':free'. Si alguien cambia MODEL a uno de pago, el chatbot lanza error en vez de generar costos. Alternativas documentadas en comentario. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -6,7 +6,16 @@ import json
|
||||
from config import OPENROUTER_API_KEY
|
||||
|
||||
OPENROUTER_URL = "https://openrouter.ai/api/v1/chat/completions"
|
||||
MODEL = "qwen/qwen3-6b-preview:free" # Qwen 3.6 Plus Preview (free on OpenRouter)
|
||||
|
||||
# ⚠️ SOLO MODELOS GRATUITOS — No cambiar a modelos de pago.
|
||||
# El modelo DEBE terminar en ":free" para garantizar costo $0.
|
||||
# Alternativas gratuitas: "meta-llama/llama-4-scout:free", "google/gemma-3-27b-it:free"
|
||||
MODEL = "qwen/qwen3-6b-preview:free"
|
||||
|
||||
def _validate_model(model_id):
|
||||
"""Ensure only free models are used. Raises if model is not free."""
|
||||
if not model_id.endswith(':free'):
|
||||
raise ValueError(f"BLOQUEADO: Solo se permiten modelos gratuitos (:free). Modelo '{model_id}' no es gratuito.")
|
||||
|
||||
SYSTEM_PROMPT = """Eres un asistente de refaccionaria automotriz mexicana. Tu trabajo es ayudar a encontrar autopartes.
|
||||
|
||||
@@ -45,6 +54,7 @@ Reglas OBLIGATORIAS:
|
||||
|
||||
def chat(user_message, conversation_history=None):
|
||||
"""Send a message to the AI and get a response with search suggestions."""
|
||||
_validate_model(MODEL) # Block paid models
|
||||
messages = [{"role": "system", "content": SYSTEM_PROMPT}]
|
||||
if conversation_history:
|
||||
messages.extend(conversation_history)
|
||||
|
||||
Reference in New Issue
Block a user