test_ollama.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import os
  2. import ollama
  3. from pdf2image import convert_from_path
  4. # Chemin du PDF
  5. script_dir = os.path.dirname(os.path.abspath(__file__))
  6. pdf_path = os.path.join(
  7. script_dir,
  8. "..",
  9. "01 - Sources",
  10. "2025",
  11. "CNP Assurances-SFCR-Solo-2025.pdf"
  12. )
  13. # Pages à traiter
  14. pages = [90]
  15. prompt = """Extrais uniquement les cellules contenant :
  16. - des codes de lignes (ex: R0010, R0020...)
  17. - des codes de colonnes (ex: C0010, C0020...)
  18. - des valeurs numériques (nombres, %, montants)
  19. Ignore complètement tout texte descriptif.
  20. Pour chaque cellule retourne :
  21. - R : numéro de ligne dans le tableau
  22. - C : numéro de colonne dans le tableau
  23. - value : contenu exact de la cellule
  24. Aucun commentaire, aucun texte supplémentaire.
  25. """
  26. for page in pages:
  27. # Convertir une page PDF en image
  28. images = convert_from_path(pdf_path, first_page=page, last_page=page,dpi=80)
  29. image_path = f"page_{page}.png"
  30. images[0].save(image_path, "PNG")
  31. # Appel au modèle Ollama (Qwen-VL)
  32. response = ollama.chat(
  33. model="minicpm-v",
  34. messages=[
  35. {
  36. "role": "user",
  37. "content": prompt,
  38. "images": [image_path]
  39. }
  40. ]
  41. )
  42. print(f"Page {page} :")
  43. print(response["message"]["content"])