Principiante 11 minJurídico

Jurista: analizar un contrato sin fuite

Respuesta directa

Para analizar un contrato sin que salga de tu equipo, sirve un modelo con Ollama (Qwen 3.5 9B o Mistral Small 24B), extrae el texto del PDF e impón una regla: cada punto señalado debe citar el pasaje palabra por palabra. Un script verifica después que la cita exista en el contrato. Aumenta la ventana de contexto de Ollama, fijada por defecto en 4.000 tokens cuando hay menos de 24 GB de memoria de vídeo.

Un contrato contiene información que ni el secreto profesional ni un acuerdo de confidencialidad permiten confiar a cualquier servicio en línea. Un pipeline local lee el PDF, señala las cláusulas que deben examinarse y cita los pasajes, sin que ningún dato salga del equipo. Esta guía explica cómo montar ese pipeline, añade la verificación automática de las citas y explica claramente lo que la herramienta no sabe hacer.

Por Mohamed Meguedmi·Actualización 2026-09-30·Probado en Windows, macOS y Linux

#¿Por qué un contrato no debe pasar por un chat en línea?

Un contrato contiene nombres, precios, condiciones negociadas y a veces datos personales. Subirlo a un servicio de IA alojado equivale a enviar esta información a un tercero, dentro de un marco definido por sus condiciones de uso y no por tu compromiso de confidencialidad. Para los abogados, la cuestión es deontológica: la guía «La deontología y la IA», aprobada por el Conseil national des barreaux en marzo de 2026, recuerda que entre las exigencias de la profesión figuran la protección del secreto profesional y el cumplimiento del RGPD. Los comentaristas de la guía señalan que el secreto prohíbe cualquier divulgación de información confidencial relacionada con los expedientes o los clientes, incluso al utilizar herramientas de inteligencia artificial.

Para los juristas de empresa, la restricción es contractual: un acuerdo de confidencialidad firmado con un socio casi nunca prevé que sus cláusulas se envíen a un proveedor de IA. Las ofertas profesionales de los proveedores de software ofrecen garantías de no reutilización de los datos, pero estas se comprueban en el contrato que has firmado, no en un eslogan. El análisis local elimina la cuestión: el texto del contrato no sale de tu equipo, por lo que no hay ningún subcontratista que declarar ni ninguna transferencia que justificar.

!
Local no quiere decir fiable
El funcionamiento en local resuelve la cuestión de la confidencialidad, no la de la exactitud. Un estudio de Stanford publicado en 2024 sobre herramientas comerciales estadounidenses de investigación jurídica detectó respuestas erróneas en más del 17 % de los casos incluso entre las mejores. Estas herramientas no son lectores de contratos, pero el orden de magnitud recuerda que un modelo que escribe con seguridad puede equivocarse. De ahí la regla de esta guía: cada afirmación del modelo debe estar respaldada por un pasaje verificable.

#Un chat para consultar archivos PDF de uso interno sin escribir código

El kit de IA Local

Tu ChatGPT privado y gratuito en tu máquina en 1 hora — LM Studio, Ollama, Open WebUI, tus documentos, sin nube.

  • Espacio en línea de por vida
  • PDF + archivos
  • Reembolsado 30 j

Una parte de los lectores busca solo consultar contratos depositados en una carpeta, sin que nada salga del sistema de información. Existen dos vías. La primera, sin programación, consiste en instalar una interfaz como Open WebUI o AnythingLLM en un servidor interno y conectarla a Ollama: se cargan los PDF, se hacen preguntas y la herramienta encuentra los pasajes útiles. Estas guías están disponibles en el sitio. La segunda, descrita a continuación, es un script corto que ofrece un control total sobre el prompt y sobre la verificación de citas.

El script es adecuado para analizar un contrato a la vez, con preguntas precisas. La interfaz con búsqueda documental es adecuada para un corpus de varias decenas de contratos en el que se quiere encontrar, por ejemplo, todos los contratos que contengan una cláusula de renovación tácita. En este segundo caso, la calidad depende de la segmentación de los documentos y de la búsqueda, no solo del modelo.

¿Qué enfoque para qué necesidad?
NecesidadEnfoqueAspecto a tener en cuenta
Leer un contrato de 10 a 25 páginasScript directo, contrato completo en el contextoVentana de contexto que hay que ampliar en Ollama
Consultar entre 20 y 500 contratosInterfaz RAG (Open WebUI, AnythingLLM)Calidad de la segmentación y de la búsqueda
Comparar con un contrato modeloScript con dos textos en el promptContexto al doble: verificar la memoria
Contrato escaneadoOCR ante todoEl texto con ruido distorsiona las citas

#La pila mínima: modelo, lector de PDF, script

Bastan tres elementos. Ollama sirve el modelo. Un lector de PDF como pdfplumber o PyMuPDF extrae el texto. Un script de Python de unas cuarenta líneas conecta todo. En cuanto a los modelos, hay dos referencias en la biblioteca de Ollama: Qwen 3.5, con 9 mil millones de parámetros, pesa 6,6 GB y anuncia 256.000 tokens de contexto; Mistral Small, con 24 mil millones de parámetros, pesa 14 GB y anuncia 32.000 tokens de contexto. El primero cabe en una tarjeta de 8 a 12 GB; el segundo requiere 16 GB o más. Prueba ambos con tres de tus propios contratos: la comprensión del francés jurídico varía de un contrato a otro.

El contexto es el punto que puede llevarte a engaño. Ollama fija por defecto la ventana según la memoria de vídeo: con menos de 24 GB, es de 4.000 tokens, muy inferior al tamaño de un contrato. Un contrato de 20 páginas representa varios miles de palabras, es decir, unos quince mil tokens o más según la maquetación; es un orden de magnitud que debes medir en tus documentos. Sin ajustar la configuración, el inicio del contrato se trunca sin avisar y el modelo responde solo sobre una parte. La guía sobre la ventana de contexto explica el mecanismo.

#Instalar las herramientas

Modelo y bibliotecas
ollama pull qwen3.5:9b   # ou mistral-small si vous avez 16 Go de VRAM
pip install pdfplumber requests

Verifica luego que el PDF contenga texto seleccionable: si pdfplumber devuelve una cadena vacía, el archivo es un escaneo y hay que recurrir a OCR. Nunca generes texto a partir de un OCR de baja calidad sin avisar al usuario, porque las citas del modelo no podrán verificarse.

#El prompt de sistema de un asistente de análisis preliminar

El prompt fija el rol, las prohibiciones y el formato. El punto central es la obligación de citar: un modelo que debe copiar el pasaje sobre el que se basa inventa menos, y puedes controlar la cita mediante un programa. El prompt a continuación pide una salida estructurada para facilitar esta verificación.

system_prompt.txt
Tu assistes un juriste pour un premier repérage rapide dans un contrat
commercial de droit français.

RÈGLES
- Tu ne donnes jamais d'avis juridique. Tu signales des points à examiner.
- Pour chaque point, recopie MOT POUR MOT le passage du contrat concerné.
- Si le contrat ne traite pas un sujet demandé, écris explicitement : non traité.
- Ne suppose jamais l'intention des parties. Ne complète pas un passage manquant.

FORMAT : un JSON, liste d'objets {"point": ..., "citation": ..., "pourquoi": ...}

#El script completo, con verificación de citas

El script lee el PDF, consulta al modelo con un contexto ampliado e impone un formato JSON mediante un esquema, algo que permite la API de Ollama en su campo format. Después comprueba que cada cita aparezca realmente en el texto del contrato, tras normalizar los espacios. Una cita que no se encuentra se marca por separado: es señal de una invención o de una paráfrasis que hay que revisar.

analyse_contrat.py
import json, re, sys, requests, pdfplumber

SYSTEM = open('system_prompt.txt', encoding='utf-8').read()
SCHEMA = {'type': 'array', 'items': {'type': 'object',
  'properties': {'point': {'type': 'string'}, 'citation': {'type': 'string'},
                 'pourquoi': {'type': 'string'}},
  'required': ['point', 'citation', 'pourquoi']}}

def lire_pdf(chemin):
    with pdfplumber.open(chemin) as pdf:
        return '\n'.join(p.extract_text() or '' for p in pdf.pages)

def norm(s):
    return re.sub(r'\s+', ' ', s).strip().lower()

def demander(question, contrat, modele='qwen3.5:9b'):
    r = requests.post('http://localhost:11434/api/chat', json={
      'model': modele, 'stream': False, 'format': SCHEMA,
      'messages': [{'role': 'system', 'content': SYSTEM},
                   {'role': 'user', 'content': 'CONTRAT :\n' + contrat + '\n\nQUESTION : ' + question}],
      'options': {'temperature': 0.1, 'num_ctx': 24576}})
    return json.loads(r.json()['message']['content'])

if __name__ == '__main__':
    texte = lire_pdf(sys.argv[1])
    if len(texte.strip()) < 500:
        sys.exit('PDF sans texte exploitable : passer par un OCR.')
    base = norm(texte)
    for p in demander('Liste les clauses à risque pour le signataire.', texte):
        ok = norm(p['citation']) in base
        print(('[OK]  ' if ok else '[CITATION INTROUVABLE]  ') + p['point'])
        print('      ' + p['citation'][:200])
→
¿Por qué una verificación mecánica?
El modelo puede reescribir ligeramente una cita, cambiar un número o fusionar dos frases. La comprobación palabra por palabra no demuestra que el punto planteado sea relevante, pero elimina la categoría de error más peligrosa: una cláusula que no existe. Relee siempre el pasaje en el PDF antes de extraer una conclusión.

#Las preguntas que revelan los riesgos

Haz preguntas precisas en lugar de una petición general, un tema a la vez. Cada respuesta debe citar el contrato o indicar que el tema no se aborda en él. Aquí tienes una lista inicial que puedes adaptar a tu práctica.

Non-concurrence
«¿El contrato contiene una cláusula de no competencia? Cítala e indica su duración, su alcance geográfico y su compensación económica.»
Responsabilidad
«¿Cuál es la limitación de responsabilidad? ¿Es mutua? ¿Qué daños se excluyen?»
Terminación del contrato
«¿Cuáles son las condiciones de rescisión? ¿El preaviso es idéntico para ambas partes?»
Renovación
«¿Existe una renovación tácita? ¿Cuál es el plazo para oponerse a ella y de qué forma debe hacerse?»
Sanciones
« Lista las penalizaciones por retraso, ruptura o incumplimiento. ¿Son recíprocas? »
Derecho aplicable
«¿Qué ley se aplica? ¿Qué jurisdicción se designa?»
Propiedad intelectual
« ¿Cómo se trata la propiedad de los entregables: cesión, licencia, duración, territorio? »
Datos personales
«¿El contrato prevé el tratamiento de datos personales? ¿Hay cláusulas de subcontratación?»

#Comparar un contrato con tu modelo habitual

Si tienes una plantilla validada, como las condiciones generales de tu despacho o empresa, la comparación es más útil que una lectura aislada: muestra lo que se desvía de tu referencia. El modelo ve dos textos, lo que duplica el espacio ocupado en el contexto: verifica que la ventana solicitada a Ollama sea suficiente; de lo contrario, compara cláusula por cláusula.

Prompt de comparación
Compare le CONTRAT proposé au MODÈLE de référence.
Liste les écarts en trois catégories :
1. Plus favorables au signataire que le modèle
2. Moins favorables au signataire que le modèle
3. Clauses présentes dans le modèle et absentes du contrat

Pour chaque écart, recopie mot pour mot les deux passages.

MODÈLE :
<<<
[texte du modèle]
>>>

CONTRAT :
<<<
[texte du contrat]
>>>

#Poner a prueba la herramienta con tus propios contratos antes de confiar en ella

Antes de integrar este asistente en un flujo de trabajo, mide lo que se le escapa. Toma cinco contratos que ya hayas revisado tú mismo, entre ellos uno que contenga deliberadamente una cláusula que conozcas bien, por ejemplo una renovación tácita poco visible. Plantea la misma lista de preguntas y luego cuenta: las cláusulas reales encontradas, los puntos innecesarios señalados y las citas imposibles de localizar.

  1. 01
    Elegir cinco contratos conocidos
    Varía los tipos: prestación de servicios, suministro, arrendamiento comercial, contrato de trabajo atípico. Un solo tipo de documento no dice nada sobre la robustez general.
  2. 02
    Escribir tu propio listado
    Antes de ejecutar la herramienta, enumera para cada contrato las cláusulas que esperas encontrar. Ese registro es tu referencia de verdad.
  3. 03
    Comparar la exhaustividad y el ruido
    Cuenta las cláusulas esperadas que la herramienta ha encontrado y el número de puntos señalados por error. Una herramienta que pasa por alto una de cada tres cláusulas sirve de recordatorio, no de filtro.
  4. 04
    Medir el tiempo de relectura
    Mide el tiempo para releer los puntos señalados y sus citas. Si esta relectura dura casi tanto como la lectura completa, el ahorro es bajo.
  5. 05
    Decidir el uso
    Reserva la herramienta para tareas en las que realmente ayude: selección inicial, comparación con un modelo, identificación de cláusulas concretas. Descarta su uso para contratos de gran importancia, que de todos modos se leen íntegramente.

#Límites y controles de seguridad

No es un abogado
El modelo no conoce la jurisprudencia reciente ni las sutilezas de redacción que cambian el significado de una cláusula. Hace un primer filtro; la decisión sigue correspondiendo al jurista.
Invención de cláusulas
Un pequeño modelo puede describir una cláusula ausente del contrato. La cita obligatoria y la verificación por script reducen este riesgo sin eliminarlo.
Contrato largo
Si se supera lo que admite el contexto, divide el contenido en secciones y pregunta por cada parte, o recurre a una búsqueda documental. La guía sobre estrategias de división detalla las opciones.
Escaneos
Un PDF basado en imágenes requiere OCR. El texto obtenido mediante OCR contiene errores que hacen incierta la verificación de las citas.
Registro
No guardes contratos ni respuestas en archivos no protegidos: la seguridad del equipo y el cifrado del disco siguen siendo necesarios. La lista de control de confidencialidad indica los puntos a revisar.
FAQ
¿Se puede analizar un contrato con una IA sin subir el documento a internet?+
Sí: Ollama sirve un modelo en tu máquina, un lector de PDF extrae el texto y un script consulta al modelo. Nada sale del equipo. La ejecución local resuelve la cuestión de la confidencialidad, no la de la exactitud: mantén la regla de citar el pasaje y verifica cada punto en el contrato antes de sacar conclusiones.
¿Cómo crear un chat con PDF para uso interno sin sacar los contratos del sistema de información?+
Instala Open WebUI o AnythingLLM en un servidor interno y conecta la herramienta a Ollama; luego carga los PDF. La búsqueda documental encuentra los pasajes útiles y el modelo responde citándolos. Protege el acceso mediante autenticación y restringe la conectividad de red: los documentos permanecen en tu infraestructura.
¿Qué modelo local para leer contratos en francés?+
Dos candidatos razonables: Qwen 3.5 9B (6,6 GB, 256 000 tokens anunciados) para una tarjeta de 8 a 12 GB, y Mistral Small 24B (14 GB, 32 000 tokens anunciados) a partir de 16 GB. Compáralos en tres de tus contratos en lugar de en un ranking general.
¿Un contrato de 30 páginas cabe en el contexto del modelo?+
A menudo sí para un contrato de 20 a 30 páginas, siempre que aumentes la ventana de contexto de Ollama, fijada por defecto en 4.000 tokens con menos de 24 GB de VRAM. Mide el número real de tokens de tu documento. Si supera lo que acepta la memoria, divídelo por secciones.
¿Puede el modelo inventar una cláusula que no exista?+
Sí, especialmente los modelos pequeños. La solución consiste en exigir la cita palabra por palabra y luego verificar mediante un script que aparece en el texto del contrato. Una cita que no se encuentra indica una invención. Relee siempre el pasaje en el PDF antes de sacar conclusiones.
¿Analizar con IA reemplaza la revisión de un abogado?+
No. Sirve como primer filtro para identificar puntos a examinar, junto con sus pasajes. No conoce la jurisprudencia reciente ni el contexto de la negociación. Un profesional del derecho sigue siendo responsable del análisis, especialmente en asuntos importantes o cláusulas inusuales.
¿Esta guía te ha ayudado?

¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.