update source code and pipeline

This commit is contained in:
2025-09-04 14:39:02 +00:00
parent 9aabd991c5
commit 878310a551
82 changed files with 24373 additions and 0 deletions

560
filter/analyze_labels.py Normal file
View File

@@ -0,0 +1,560 @@
#!/usr/bin/env python3
"""
Analyze 'label' fields in a JSON dataset and produce summaries.
- Handles entries where 'label' is either an object or a list of objects.
- Computes distributions (is_bill, profession, currency, IDs presence, handwriting/rotation).
- Computes numeric stats (total_billed, amount_paid, remaining_payment, coverages).
- Parses dates and shows temporal distribution.
- Analyzes items: count, sum of amounts and coverages, and mismatches vs total_billed.
- Emits a concise stdout summary and writes CSVs and a Markdown report.
Usage:
python analyze_labels.py --input 008_label_data_sample_seed_1997.json --out-dir .
"""
from __future__ import annotations
import argparse
import csv
import json
import math
import re
from collections import Counter
from datetime import datetime
from pathlib import Path
from statistics import mean, median
from typing import Any, Dict, Iterable, List, Optional, Tuple
NUMERIC_FIELDS = [
"total_billed",
"amount_paid",
"remaining_payment",
"client_part",
"mandatory_coverage",
"complementary_coverage",
]
def parse_args() -> argparse.Namespace:
p = argparse.ArgumentParser(description="Analyze 'label' fields in JSON dataset")
p.add_argument("--input", required=True, help="Path to JSON file (list of records)")
p.add_argument(
"--out-dir", default=None, help="Output directory for reports (default: alongside input)"
)
p.add_argument(
"--max-professions", type=int, default=50, help="Max professions to list in report"
)
p.add_argument(
"--no-plots",
action="store_true",
help="Disable generating plots (PNG) and embedding into report",
)
p.add_argument(
"--plot-top-k",
type=int,
default=20,
help="Top-K categories to visualize for profession/currency",
)
p.add_argument(
"--plot-format",
type=str,
default="png",
choices=["png", "jpg", "jpeg"],
help="Image format for plots",
)
return p.parse_args()
def load_json(path: Path) -> List[Dict[str, Any]]:
with path.open("r", encoding="utf-8") as f:
data = json.load(f)
if not isinstance(data, list):
raise ValueError("Top-level JSON must be a list of records")
return data
def to_bool(value: Any) -> Optional[bool]:
if value is None:
return None
if isinstance(value, bool):
return value
if isinstance(value, (int, float)):
return bool(value)
if isinstance(value, str):
v = value.strip().lower()
if v in {"true", "t", "1", "yes", "y"}:
return True
if v in {"false", "f", "0", "no", "n"}:
return False
return None
def to_float(value: Any) -> Optional[float]:
if value is None or value == "":
return None
try:
return float(value)
except (TypeError, ValueError):
return None
def parse_date(value: Any) -> Optional[datetime]:
if not value or not isinstance(value, str):
return None
s = value.strip()
if not s:
return None
# Common patterns (day-first)
fmts = [
"%d-%m-%Y",
"%d/%m/%Y",
"%Y-%m-%d",
"%d-%m-%y",
"%d/%m/%y",
]
for fmt in fmts:
try:
return datetime.strptime(s, fmt)
except ValueError:
pass
# Try to extract a date-like token using regex (e.g., 2025-02-07 or 07-02-2025)
m = re.search(r"(\d{2}[/-]\d{2}[/-]\d{4}|\d{4}-\d{2}-\d{2})", s)
if m:
token = m.group(1)
for fmt in fmts:
try:
return datetime.strptime(token, fmt)
except ValueError:
continue
return None
def safe_get(d: Dict[str, Any], key: str, default=None):
return d.get(key, default)
def flatten_labels(records: List[Dict[str, Any]]) -> List[Dict[str, Any]]:
out: List[Dict[str, Any]] = []
for rec in records:
src_image = rec.get("image") or ",".join(rec.get("image_files", []) or [])
label = rec.get("label")
if label is None:
continue
if isinstance(label, list):
for idx, lab in enumerate(label):
if not isinstance(lab, dict):
continue
o = dict(lab)
o["__source_image__"] = src_image
o["__multi_index__"] = idx
out.append(o)
elif isinstance(label, dict):
o = dict(label)
o["__source_image__"] = src_image
out.append(o)
return out
def presence_counts(labels: List[Dict[str, Any]], fields: Iterable[str]) -> Dict[str, int]:
counts: Dict[str, int] = {}
for field in fields:
present = 0
for lbl in labels:
if safe_get(lbl, field) not in (None, ""):
present += 1
counts[field] = present
return counts
def numeric_summary(values: List[Optional[float]]) -> Dict[str, Any]:
clean = [v for v in values if isinstance(v, (int, float)) and not math.isnan(v)]
if not clean:
return {"count": 0}
return {
"count": len(clean),
"min": min(clean),
"p25": percentile(clean, 25),
"median": median(clean),
"p75": percentile(clean, 75),
"max": max(clean),
"mean": mean(clean),
"sum": sum(clean),
"missing": len(values) - len(clean),
}
def percentile(arr: List[float], p: float) -> float:
if not arr:
return float("nan")
a = sorted(arr)
k = (len(a) - 1) * (p / 100.0)
f = math.floor(k)
c = math.ceil(k)
if f == c:
return a[int(k)]
d0 = a[f] * (c - k)
d1 = a[c] * (k - f)
return d0 + d1
def write_csv(path: Path, headers: List[str], rows: Iterable[Iterable[Any]]) -> None:
path.parent.mkdir(parents=True, exist_ok=True)
with path.open("w", encoding="utf-8", newline="") as f:
w = csv.writer(f)
w.writerow(headers)
for row in rows:
w.writerow(row)
def try_import_matplotlib():
try:
import matplotlib # type: ignore[import-not-found]
matplotlib.use("Agg") # headless backend
import matplotlib.pyplot as plt # type: ignore[import-not-found]
return plt
except Exception:
return None
def save_bar_plot(plt, x_labels: List[str], values: List[float], title: str, out_path: Path, rotation: int = 0):
out_path.parent.mkdir(parents=True, exist_ok=True)
fig, ax = plt.subplots(figsize=(max(6, min(14, 0.4 * len(x_labels) + 3)), 4))
ax.bar(range(len(values)), values, color="#4C78A8")
ax.set_title(title)
ax.set_ylabel("count")
ax.set_xticks(range(len(x_labels)))
ax.set_xticklabels(x_labels, rotation=rotation, ha="right" if rotation else "center")
fig.tight_layout()
fig.savefig(out_path, dpi=150)
plt.close(fig)
def save_hist_plot(plt, values: List[float], title: str, out_path: Path, bins: int = 30):
out_path.parent.mkdir(parents=True, exist_ok=True)
fig, ax = plt.subplots(figsize=(7, 4))
ax.hist(values, bins=bins, color="#72B7B2", edgecolor="white")
ax.set_title(title)
ax.set_ylabel("count")
ax.set_xlabel("value")
fig.tight_layout()
fig.savefig(out_path, dpi=150)
plt.close(fig)
def produce_plots(
out_dir: Path,
args: argparse.Namespace,
is_bill_counter: Counter,
bill_paid_counter: Counter,
handwriting_counter: Counter,
rotation_counter: Counter,
profession_counter: Counter,
currency_counter: Counter,
year_month_counter: Counter,
numeric_data: Dict[str, List[Optional[float]]],
items_per_label: List[int],
) -> List[Path]:
"""Generate plots and return list of created file paths."""
if args.no_plots:
return []
plt = try_import_matplotlib()
if plt is None:
# matplotlib not available; skip plotting gracefully
return []
created: List[Path] = []
plots_dir = out_dir / "plots"
ext = args.plot_format
# is_bill
if is_bill_counter:
labels = [str(k) for k, _ in is_bill_counter.items()]
vals = [v for _, v in is_bill_counter.items()]
p = plots_dir / f"is_bill.{ext}"
save_bar_plot(plt, labels, vals, "is_bill distribution", p)
created.append(p)
# bill_paid
if bill_paid_counter:
labels = [str(k) for k, _ in bill_paid_counter.items()]
vals = [v for _, v in bill_paid_counter.items()]
p = plots_dir / f"bill_paid.{ext}"
save_bar_plot(plt, labels, vals, "bill_paid distribution", p)
created.append(p)
# Flags
if handwriting_counter:
labels = [str(k) for k, _ in handwriting_counter.items()]
vals = [v for _, v in handwriting_counter.items()]
p = plots_dir / f"is_handwriting.{ext}"
save_bar_plot(plt, labels, vals, "is_handwriting", p)
created.append(p)
if rotation_counter:
labels = [str(k) for k, _ in rotation_counter.items()]
vals = [v for _, v in rotation_counter.items()]
p = plots_dir / f"is_rotated.{ext}"
save_bar_plot(plt, labels, vals, "is_rotated", p)
created.append(p)
# Professions (top-K)
if profession_counter:
top = profession_counter.most_common(max(1, min(args.plot_top_k, len(profession_counter))))
labels = [k if len(str(k)) <= 20 else str(k)[:17] + "" for k, _ in top]
vals = [v for _, v in top]
p = plots_dir / f"professions_top{len(labels)}.{ext}"
save_bar_plot(plt, labels, vals, f"Top {len(labels)} professions", p, rotation=45)
created.append(p)
# Currency
if currency_counter:
top = currency_counter.most_common(max(1, min(args.plot_top_k, len(currency_counter))))
labels = [str(k) for k, _ in top]
vals = [v for _, v in top]
p = plots_dir / f"currency.{ext}"
save_bar_plot(plt, labels, vals, "Currency distribution", p)
created.append(p)
# Year-month
if year_month_counter:
items = sorted(year_month_counter.items(), key=lambda x: (x[0][0], x[0][1]))
labels = [f"{y:04d}-{m:02d}" for (y, m), _ in items]
vals = [v for _, v in items]
p = plots_dir / f"invoice_year_month.{ext}"
save_bar_plot(plt, labels, vals, "Invoices by year-month", p, rotation=45)
created.append(p)
# Items per label
if items_per_label:
p = plots_dir / f"items_per_label.{ext}"
save_hist_plot(plt, items_per_label, "Items per label (histogram)", p, bins=min(30, max(5, int(len(items_per_label) ** 0.5))))
created.append(p)
# Numeric fields histograms
for k, vals_all in numeric_data.items():
vals = [float(v) for v in vals_all if isinstance(v, (int, float)) and not math.isnan(v)]
if not vals:
continue
p = plots_dir / f"hist_{k}.{ext}"
save_hist_plot(plt, vals, f"{k} (histogram)", p)
created.append(p)
return created
def main() -> None:
args = parse_args()
in_path = Path(args.input).resolve()
out_dir = Path(args.out_dir).resolve() if args.out_dir else in_path.parent
out_dir.mkdir(parents=True, exist_ok=True)
records = load_json(in_path)
labels = flatten_labels(records)
n_total_rec = len(records)
n_labels = len(labels)
# Normalize some fields
for lbl in labels:
lbl["is_bill"] = to_bool(lbl.get("is_bill"))
lbl["bill_paid"] = to_bool(lbl.get("bill_paid"))
# Normalize numeric fields in-place for ease of stats
for k in NUMERIC_FIELDS:
lbl[k] = to_float(lbl.get(k))
# Basic distributions
is_bill_counter = Counter(lbl.get("is_bill") for lbl in labels)
bill_paid_counter = Counter(lbl.get("bill_paid") for lbl in labels)
currency_counter = Counter(lbl.get("currency") for lbl in labels if lbl.get("currency"))
profession_counter = Counter((lbl.get("profession") or "").strip() or "(missing)" for lbl in labels)
# Presence of identifiers and key fields
id_presence = presence_counts(labels, [
"adeli_number",
"rpps_number",
"finess_number",
"prescripteur_finess_number",
"doctor_name",
"invoice_issuer",
"insured_name",
"beneficiary_name",
"security_number",
"currency",
])
# Handwriting/rotation flags
handwriting_counter = Counter(to_bool(lbl.get("is_handwriting")) for lbl in labels)
rotation_counter = Counter(to_bool(lbl.get("is_rotated")) for lbl in labels)
# Numeric stats
numeric_stats: Dict[str, Dict[str, Any]] = {}
for k in NUMERIC_FIELDS:
numeric_stats[k] = numeric_summary([lbl.get(k) for lbl in labels])
# Keep raw numeric data for histograms
numeric_raw: Dict[str, List[Optional[float]]] = {k: [lbl.get(k) for lbl in labels] for k in NUMERIC_FIELDS}
# Dates
invoice_dates = [parse_date(lbl.get("invoice_date")) for lbl in labels]
invoice_dates_clean = [d for d in invoice_dates if d is not None]
year_month_counter = Counter((d.year, d.month) for d in invoice_dates_clean)
# Items analysis
items_per_label: List[int] = []
sum_item_amount: List[Optional[float]] = []
sum_item_mandatory: List[Optional[float]] = []
mismatch_records: List[Tuple[str, Optional[float], Optional[float], Optional[float]]] = []
for lbl in labels:
items = lbl.get("items") or []
if not isinstance(items, list):
items = []
items_per_label.append(len(items))
s_amount = None
s_mand = None
for it in items:
if not isinstance(it, dict):
continue
a = to_float(it.get("amount"))
m = to_float(it.get("mandatory_coverage"))
s_amount = (s_amount or 0.0) + (a or 0.0)
s_mand = (s_mand or 0.0) + (m or 0.0)
sum_item_amount.append(s_amount)
sum_item_mandatory.append(s_mand)
total_billed = to_float(lbl.get("total_billed"))
if total_billed is not None and s_amount is not None:
diff = total_billed - s_amount
if abs(diff) > 1e-6:
mismatch_records.append((
str(lbl.get("__source_image__")), total_billed, s_amount, diff
))
# Data quality issues
issues: List[Dict[str, Any]] = []
for lbl in labels:
src = str(lbl.get("__source_image__"))
# is_bill must be True/False or None (unknown); flag strings that could not be parsed
if "is_bill" in lbl and not isinstance(lbl.get("is_bill"), (bool, type(None))):
issues.append({"source": src, "issue": "is_bill not boolean"})
# bill_paid True but amount_paid missing
if lbl.get("bill_paid") is True and to_float(lbl.get("amount_paid")) is None:
issues.append({"source": src, "issue": "bill_paid True but amount_paid missing"})
# remaining_payment > 0 but bill_paid True
rp = to_float(lbl.get("remaining_payment"))
if lbl.get("bill_paid") is True and (rp or 0) > 0:
issues.append({"source": src, "issue": "bill_paid True but remaining_payment > 0"})
# Negative or zero amounts on items
items = lbl.get("items") or []
if isinstance(items, list):
for idx, it in enumerate(items):
if not isinstance(it, dict):
continue
a = to_float(it.get("amount"))
if a is not None and a < 0:
issues.append({"source": src, "issue": f"item[{idx}].amount negative: {a}"})
q = to_float(it.get("quantity"))
if q is None:
# Not strictly an issue, but mark for completeness
issues.append({"source": src, "issue": f"item[{idx}].quantity missing"})
# Missing currency on bill
if lbl.get("is_bill") is True and not lbl.get("currency"):
issues.append({"source": src, "issue": "currency missing for bill"})
# Outputs
# 1) CSVs
write_csv(out_dir / "professions_counts.csv", ["profession", "count"], profession_counter.most_common())
write_csv(out_dir / "currency_counts.csv", ["currency", "count"], currency_counter.most_common())
write_csv(out_dir / "is_bill_counts.csv", ["is_bill", "count"], is_bill_counter.items())
write_csv(out_dir / "bill_paid_counts.csv", ["bill_paid", "count"], bill_paid_counter.items())
write_csv(out_dir / "id_presence.csv", ["field", "present_count"], id_presence.items())
write_csv(out_dir / "item_total_billed_mismatches.csv", ["source_image", "total_billed", "sum_item_amount", "diff"], mismatch_records)
write_csv(out_dir / "issues.csv", ["source", "issue"], ((i["source"], i["issue"]) for i in issues))
# 2) Markdown report
md = []
md.append("# Label Analysis Report\n")
md.append(f"Input: `{in_path.name}`\n")
md.append("")
md.append("## Overview\n")
md.append(f"- Total records: {n_total_rec}")
md.append(f"- Total labels (flattened): {n_labels}")
md.append(f"- is_bill distribution: {dict(is_bill_counter)}")
md.append(f"- bill_paid distribution: {dict(bill_paid_counter)}")
if invoice_dates_clean:
md.append(
f"- Invoice dates span: {min(invoice_dates_clean).date()} .. {max(invoice_dates_clean).date()}"
)
md.append(f"- Unique year-month pairs: {len(year_month_counter)}")
else:
md.append("- Invoice dates: none parseable")
md.append("\n## Professions (top)\n")
for prof, cnt in profession_counter.most_common(args.max_professions):
md.append(f"- {prof}: {cnt}")
md.append("\n## Currency distribution\n")
for cur, cnt in currency_counter.most_common():
md.append(f"- {cur}: {cnt}")
md.append("\n## Identifier and key field presence\n")
for k, v in id_presence.items():
md.append(f"- {k}: {v} present")
md.append("\n## Flags\n")
md.append(f"- is_handwriting: {dict(handwriting_counter)}")
md.append(f"- is_rotated: {dict(rotation_counter)}")
md.append("\n## Numeric summaries\n")
for k, stats in numeric_stats.items():
md.append(f"- {k}: {stats}")
if items_per_label:
md.append("\n## Items analysis\n")
md.append(f"- Items per label: count={len(items_per_label)}, min={min(items_per_label)}, max={max(items_per_label)}, mean={mean(items_per_label):.2f}")
n_mismatch = len(mismatch_records)
md.append(f"- total_billed vs sum(items.amount) mismatches: {n_mismatch}")
if issues:
md.append("\n## Data quality issues (sample)\n")
for row in issues[:50]:
md.append(f"- {row['source']}: {row['issue']}")
# 3) Plots (if enabled)
created_plots = produce_plots(
out_dir=out_dir,
args=args,
is_bill_counter=is_bill_counter,
bill_paid_counter=bill_paid_counter,
handwriting_counter=handwriting_counter,
rotation_counter=rotation_counter,
profession_counter=profession_counter,
currency_counter=currency_counter,
year_month_counter=year_month_counter,
numeric_data=numeric_raw,
items_per_label=items_per_label,
)
if created_plots:
md.append("\n## Plots\n")
for p in created_plots:
rel = p.relative_to(out_dir)
md.append(f"- {p.stem}")
md.append(f"![]({rel.as_posix()})\n")
elif not args.no_plots:
md.append("\n## Plots\n")
md.append("- matplotlib not available or no data to plot.")
report_path = out_dir / "label_analysis_report.md"
report_path.write_text("\n".join(md), encoding="utf-8")
# Console summary
print("Label analysis complete.")
print(f"- Records: {n_total_rec}, Labels: {n_labels}")
print(f"- is_bill: {dict(is_bill_counter)} | bill_paid: {dict(bill_paid_counter)}")
print(f"- Professions (top 10): {profession_counter.most_common(10)}")
print(f"- Currency: {dict(currency_counter)}")
print(f"Report written to: {report_path}")
if created_plots:
print(f"- Plots saved under: {(out_dir / 'plots').as_posix()} ({len(created_plots)} files)")
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,4 @@
bill_paid,count
False,68
True,1015
,180
1 bill_paid count
2 False 68
3 True 1015
4 180

View File

@@ -0,0 +1,3 @@
currency,count
EUR,1135
F,2
1 currency count
2 EUR 1135
3 F 2

View File

@@ -0,0 +1,11 @@
field,present_count
adeli_number,898
rpps_number,182
finess_number,139
prescripteur_finess_number,41
doctor_name,1040
invoice_issuer,1120
insured_name,208
beneficiary_name,1093
security_number,492
currency,1137
1 field present_count
2 adeli_number 898
3 rpps_number 182
4 finess_number 139
5 prescripteur_finess_number 41
6 doctor_name 1040
7 invoice_issuer 1120
8 insured_name 208
9 beneficiary_name 1093
10 security_number 492
11 currency 1137

View File

@@ -0,0 +1,3 @@
is_bill,count
True,1124
False,139
1 is_bill count
2 True 1124
3 False 139

279
filter/check_008/issues.csv Normal file
View File

@@ -0,0 +1,279 @@
source,issue
Facture médecine douce-27776417,item[0].quantity missing
551dd33d-0011-4887-b115-4ddf28ee0e2f_fact_barret_l_2024,item[0].quantity missing
551dd33d-0011-4887-b115-4ddf28ee0e2f_fact_barret_l_2024,item[1].quantity missing
551dd33d-0011-4887-b115-4ddf28ee0e2f_fact_barret_l_2024,item[2].quantity missing
551dd33d-0011-4887-b115-4ddf28ee0e2f_fact_barret_l_2024,item[3].quantity missing
551dd33d-0011-4887-b115-4ddf28ee0e2f_fact_barret_l_2024,item[4].quantity missing
551dd33d-0011-4887-b115-4ddf28ee0e2f_fact_barret_l_2024,item[5].quantity missing
Facture médecine douce-27640153,item[0].quantity missing
Facture médecine douce-27640153,item[1].quantity missing
1724397366229Facture_RIVALLANDChrystelle_20240413ICQO,bill_paid True but amount_paid missing
Facture ostéopathe-25417095,bill_paid True but remaining_payment > 0
Facture ostéopathe-GED N-R-2323015,item[0].quantity missing
74441931-f8d0-4cb0-8eb5-df4147a72bbe_mgp,item[0].quantity missing
74441931-f8d0-4cb0-8eb5-df4147a72bbe_mgp,currency missing for bill
74441931-f8d0-4cb0-8eb5-df4147a72bbe_mgp,currency missing for bill
1724658126141JACOB_Francois_2024-111,item[0].quantity missing
Facture des lentilles de contact-27559701,item[5].amount negative: -6.67
91c41171-ac88-4ce4-8f15-48c4ad2c5aa2_Devis_lunette,item[0].quantity missing
0252b5fb-bc84-4fca-bfa7-483ac611885a_Scan_0115,item[0].quantity missing
0252b5fb-bc84-4fca-bfa7-483ac611885a_Scan_0115,item[1].quantity missing
7f084bf4-357d-452d-bb4c-76bff332ea0c_IMG_7791,item[0].quantity missing
7f084bf4-357d-452d-bb4c-76bff332ea0c_IMG_7791,item[1].quantity missing
70c3e7f5-405b-49d8-a73c-dae83beafb59_Facture_ophtalmo,item[0].quantity missing
70c3e7f5-405b-49d8-a73c-dae83beafb59_Facture_ophtalmo,item[1].quantity missing
70c3e7f5-405b-49d8-a73c-dae83beafb59_Facture_ophtalmo,item[2].quantity missing
Facture médecine douce-27776613,item[0].quantity missing
6eeacb70-27be-40dd-9511-522025b459a3_20241226_080214,item[0].quantity missing
6eeacb70-27be-40dd-9511-522025b459a3_20241226_080214,item[1].quantity missing
1724399050339FACTURE_132120424_MME_RONDIN_MAHEVA,item[0].quantity missing
ec117b21-9348-4a76-9a22-2bae87639392_facture_du_14.02_Tony,item[0].quantity missing
ec117b21-9348-4a76-9a22-2bae87639392_facture_du_14.02_Tony,item[1].quantity missing
Facture ostéopathe-25979892,item[0].quantity missing
bf09a877-0705-4c79-b908-6e8da44e44c7_17490641879424403676372514736136,item[0].quantity missing
bf09a877-0705-4c79-b908-6e8da44e44c7_17490641879424403676372514736136,item[1].quantity missing
d4f310c8-3bcf-4bb5-bf53-27ad74d66c1e_FACTURE_OPTICIEN_OPHTALMO,item[0].quantity missing
DDE prestation Facture des lentilles de contact-26740934,item[0].quantity missing
45ccffcd-5fe8-418b-80c2-894086de9087_facture_ophtalmo_Fred_,item[0].quantity missing
45ccffcd-5fe8-418b-80c2-894086de9087_facture_ophtalmo_Fred_,item[1].quantity missing
Facture ostéopathe-26626551,item[0].quantity missing
27ddc814-9239-4944-951a-fdd8a48c5926_IMG_20240922_0001,item[0].quantity missing
27ddc814-9239-4944-951a-fdd8a48c5926_IMG_20240922_0001,item[1].quantity missing
27ddc814-9239-4944-951a-fdd8a48c5926_IMG_20240922_0001,item[2].quantity missing
27ddc814-9239-4944-951a-fdd8a48c5926_IMG_20240922_0001,item[3].quantity missing
8eceb56a-b571-4ab6-a64e-668db6bf4ad5_chiropracteur_fevrier_25,item[0].quantity missing
Facture des lentilles de contact-27576495,item[2].quantity missing
32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337,item[0].quantity missing
32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337,item[1].quantity missing
32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337,item[2].quantity missing
a5bd8b97-a2a8-49ae-900d-0673d2f96637_quittance_optique_,item[0].quantity missing
e997eddb-05a4-49f9-a7fd-82b48c2694b3_IMG_OPHTALMOLOGIE_20250117_0001,item[0].quantity missing
Facture ostéopathe-26300731,item[0].quantity missing
Facture ostéopathe-26300731,item[1].quantity missing
Facture ostéopathe-26300731,item[2].quantity missing
64fa4c19-efa4-48f1-acf8-8c2e8f573b8b_Facture_osteopathe_,item[0].quantity missing
c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo,item[0].quantity missing
c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo,item[1].quantity missing
c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo,item[0].quantity missing
1724658376419facture_ostheo_avril_24,item[0].quantity missing
66de7232-78a6-46a0-8392-47ec4630ad31_image,item[0].quantity missing
66de7232-78a6-46a0-8392-47ec4630ad31_image,item[1].quantity missing
66de7232-78a6-46a0-8392-47ec4630ad31_image,item[2].quantity missing
DDE prestation Facture des lentilles de contact-26772554,item[0].quantity missing
DDE prestation Facture des lentilles de contact-26772554,item[1].quantity missing
DDE prestation Facture des lentilles de contact-26705902,item[3].amount negative: -3.0
c2009b55-58d4-411f-a25a-3dc1e32e4a89_facture_lentille,item[3].amount negative: -3.0
Facture ostéopathe-26112640,item[0].quantity missing
915b97eb-e7d5-415f-ae89-823f08ae3bc0_ACfacture_opthalmo,item[0].quantity missing
915b97eb-e7d5-415f-ae89-823f08ae3bc0_ACfacture_opthalmo,item[1].quantity missing
fa25423e-b79c-48f9-89ae-32ffd95e3101_Facture_Ophtalmologie,item[0].quantity missing
Facture ostéopathe-25073562,item[0].quantity missing
14a6fe3e-c49c-4544-b960-43def15eaf83_doc00563220250401124926,item[0].quantity missing
1724399050374facture_podologue,item[0].quantity missing
Facture des lentilles de contact-27680116,item[0].quantity missing
Facture des lentilles de contact-27680116,item[1].quantity missing
Facture des lentilles de contact-27551187,item[0].quantity missing
46ddeec5-97bf-4175-b214-b7bd74c4fa24_Renouvin_Ferlicot_Andre,item[0].quantity missing
46ddeec5-97bf-4175-b214-b7bd74c4fa24_Renouvin_Ferlicot_Andre,item[1].quantity missing
cbc7ddff-2ed1-441b-85cb-5c1079588a52_Mes_des_factures,item[0].quantity missing
cbc7ddff-2ed1-441b-85cb-5c1079588a52_Mes_des_factures,item[1].quantity missing
1724658298461facture_podologue_alicia,item[0].quantity missing
1724397366268IMG_20240417_143900,item[0].quantity missing
b410345a-31de-4397-a896-bc11d97e524c_FACTURE_OPHTALMOLOGISTE,item[0].quantity missing
Facture ostéopathe-26972680,item[0].quantity missing
Facture ostéopathe-25936311,item[0].quantity missing
b96f6ca3-3175-4cd8-a827-e886b5799867_Facture_ophtalmologue_24022025,item[0].quantity missing
9494858a-65e3-425d-a452-17d4300f0115_demande_de_remboursement_mgp_mutuelle_001,bill_paid True but amount_paid missing
895777f3-4478-4e8d-a616-d498850d1523_factures-lunettes_Tess,bill_paid True but remaining_payment > 0
Facture ostéopathe-25152747,bill_paid True but amount_paid missing
Facture ostéopathe-25332784,item[0].quantity missing
Facture ostéopathe-1216961,bill_paid True but amount_paid missing
Facture ostéopathe-1216961,item[0].quantity missing
6f544990-74c6-4c7e-8a25-08eb3f9138c8_RemboursementSoins01082024_1,item[0].quantity missing
6f544990-74c6-4c7e-8a25-08eb3f9138c8_RemboursementSoins01082024_1,item[1].quantity missing
9901adc0-96d4-4cfd-a028-8286fd1f7841_Fre_Ophtalmo,item[0].quantity missing
9901adc0-96d4-4cfd-a028-8286fd1f7841_Fre_Ophtalmo,item[1].quantity missing
141f7ccc-37ab-4da5-9788-80a27e819b8b_Feuilles_de_soins_Psychologue_x2,bill_paid True but remaining_payment > 0
598221c3-d0b3-403a-a261-c68cbe56b453_facture_ophtalmo,item[0].quantity missing
598221c3-d0b3-403a-a261-c68cbe56b453_facture_ophtalmo,item[1].quantity missing
70e53730-c41c-402b-a227-2262cdd9fa7b_osteo_Laurette,item[0].quantity missing
39384a4b-4117-4f56-8cca-55fd51e5b062_image,item[0].quantity missing
39384a4b-4117-4f56-8cca-55fd51e5b062_image,item[1].quantity missing
39384a4b-4117-4f56-8cca-55fd51e5b062_image,item[2].quantity missing
d9e1cb2a-b44b-4cc8-b07a-030ddf3acd28_Ordonnance_lentilles_Mary,bill_paid True but amount_paid missing
Facture ostéopathe-25417096,item[0].quantity missing
Facture ostéopathe-26585743,item[0].quantity missing
05c2ef83-54cb-419e-949f-74f898b459bd_osteo_13112024,item[0].quantity missing
Facture ostéopathe-26077624,item[0].quantity missing
e405dba0-fd0b-48a0-9e3f-576398fa3318_Scan2025-02-28_143544_1,item[0].quantity missing
Facture ostéopathe-25847017,bill_paid True but remaining_payment > 0
8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes,item[0].quantity missing
8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes,item[1].quantity missing
8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes,item[2].quantity missing
8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes,item[3].quantity missing
8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes,item[4].quantity missing
47399c82-030f-4904-b8f4-2c3dc7c46723_image,item[0].quantity missing
47399c82-030f-4904-b8f4-2c3dc7c46723_image,item[1].quantity missing
Facture des lentilles de contact-27708923,item[0].quantity missing
Facture-quittance toutes spécialités-27235184,item[0].quantity missing
Facture-quittance toutes spécialités-27235184,item[1].quantity missing
Facture-quittance toutes spécialités-27235184,item[2].quantity missing
Facture-quittance toutes spécialités-27235184,item[3].quantity missing
1724399050377psy_rachel_4,item[0].quantity missing
e0f0eab0-f98c-4b74-95f2-bfc61ad76d28_Ophtalmo_Isa_01-24,item[0].quantity missing
e0f0eab0-f98c-4b74-95f2-bfc61ad76d28_Ophtalmo_Isa_01-24,item[1].quantity missing
172439712563420240417_105010,item[0].quantity missing
172439712563420240417_105010,item[1].quantity missing
Facture ostéopathe-26750142,item[0].quantity missing
DDE prestation Facture des lentilles de contact-26723200,item[0].quantity missing
DDE prestation Facture des lentilles de contact-26736761,item[0].quantity missing
DDE prestation Facture des lentilles de contact-26736761,item[1].quantity missing
28f8623a-8962-4ad1-88bb-4914109e1d42_20241118103848034,item[3].amount negative: -4.08
28f8623a-8962-4ad1-88bb-4914109e1d42_20241118103848034,item[0].quantity missing
28f8623a-8962-4ad1-88bb-4914109e1d42_20241118103848034,item[1].quantity missing
0a26adda-beef-4977-966c-12efc73f1d15_20250129_190625,item[0].quantity missing
0a26adda-beef-4977-966c-12efc73f1d15_20250129_190625,item[1].quantity missing
b442261a-d504-4cda-98cd-e22a6875bfd0_M._ZIMMER_2401,item[0].quantity missing
b8083bbb-9489-4706-af99-69f625bbc530_facture_OPHALMOLOGIE,item[0].quantity missing
b8083bbb-9489-4706-af99-69f625bbc530_facture_OPHALMOLOGIE,item[1].quantity missing
b8083bbb-9489-4706-af99-69f625bbc530_facture_OPHALMOLOGIE,item[2].quantity missing
bedf599f-99db-4613-aa22-17d52690c34c_doc00194520240521104544,item[0].quantity missing
bedf599f-99db-4613-aa22-17d52690c34c_doc00194520240521104544,item[1].quantity missing
8f8adcc8-9b8f-48e0-94d5-d8cfb9d84a1f_Scanned_20250212_154615,item[0].quantity missing
Facture des lentilles de contact-27647140,item[4].amount negative: -2.9
Facture des lentilles de contact-27647140,item[5].amount negative: -3.0
8de5aacb-e142-4321-aaaf-c4179f031d7a_20240810152224_001,item[0].quantity missing
8de5aacb-e142-4321-aaaf-c4179f031d7a_20240810152224_001,item[1].quantity missing
8de5aacb-e142-4321-aaaf-c4179f031d7a_20240810152224_001,item[2].quantity missing
8de6df48-c40d-4e21-ad21-edc9a95e3bfb_image,item[0].quantity missing
8de6df48-c40d-4e21-ad21-edc9a95e3bfb_image,item[1].quantity missing
8de6df48-c40d-4e21-ad21-edc9a95e3bfb_image,item[2].quantity missing
DDE prestation Facture des lentilles de contact-26542194,item[0].quantity missing
Facture des lentilles de contact-27654407,bill_paid True but amount_paid missing
fd8187e1-b9eb-4727-8041-9fc9e6f1affb_0556_001,item[0].quantity missing
Facture des lentilles de contact-27572543,item[0].quantity missing
c6013936-5850-4027-9f61-32c30486e6d5_optique,item[0].quantity missing
c6013936-5850-4027-9f61-32c30486e6d5_optique,item[1].quantity missing
2c75bd51-e61c-452e-b19b-494fa70e9cc9_Facture_lentilles_janvier_2024,item[4].amount negative: -2.9
2c75bd51-e61c-452e-b19b-494fa70e9cc9_Facture_lentilles_janvier_2024,item[5].amount negative: -3.0
Facture des lentilles de contact-27601451,item[0].quantity missing
Facture des lentilles de contact-27601451,item[1].quantity missing
Facture ostéopathe-26660518,item[0].quantity missing
Facture ostéopathe-26660518,item[0].quantity missing
Facture ostéopathe-26479073,item[0].quantity missing
c4930995-bbbe-45dd-9afe-800005fb5890_Facture_lunettes_,item[0].quantity missing
c4930995-bbbe-45dd-9afe-800005fb5890_Facture_lunettes_,item[1].quantity missing
c4930995-bbbe-45dd-9afe-800005fb5890_Facture_lunettes_,item[2].quantity missing
511ba153-1eae-4682-ade0-01217ff522bf_Facture_consultation_130125,item[0].quantity missing
8019accc-33b4-4f20-95eb-3ff1e1d4db0b_nnn,item[0].quantity missing
8019accc-33b4-4f20-95eb-3ff1e1d4db0b_nnn,item[1].quantity missing
Facture ostéopathe-1119174,item[0].quantity missing
17b264a2-4881-49a4-8326-48ace17dd86f_factures_ophtalmo,item[0].quantity missing
17b264a2-4881-49a4-8326-48ace17dd86f_factures_ophtalmo,item[1].quantity missing
17b264a2-4881-49a4-8326-48ace17dd86f_factures_ophtalmo,item[0].quantity missing
eedda33e-049b-4ab8-aee8-6f5d0c88b500_IMG_0358,item[0].quantity missing
eedda33e-049b-4ab8-aee8-6f5d0c88b500_IMG_0358,item[1].quantity missing
Facture des lentilles de contact-27646193,item[4].amount negative: -4.9
Facture des lentilles de contact-27646193,item[5].amount negative: -13.8
f339c5ad-7df8-4f3e-a5fa-9dc7616abc3e_IMG_20250327_165906,item[0].quantity missing
f339c5ad-7df8-4f3e-a5fa-9dc7616abc3e_IMG_20250327_165906,item[1].quantity missing
4f09f855-c993-42ea-97b1-3dd728b53e16_devis_ophtalmo,item[0].quantity missing
Facture des lentilles de contact-27665791,bill_paid True but amount_paid missing
Facture des lentilles de contact-27665791,item[0].quantity missing
Facture des lentilles de contact-27665791,item[1].quantity missing
Facture des lentilles de contact-27665791,item[2].quantity missing
252c4ad4-8fa3-4ed1-9508-ee77f6dce6fe_img20250206_20040851,item[0].quantity missing
Facture ostéopathe-25145711,item[0].quantity missing
Facture ostéopathe-26626836,item[0].quantity missing
Facture ostéopathe-26626836,item[0].quantity missing
Facture ostéopathe-26991829,item[0].quantity missing
Facture ostéopathe-26991829,item[1].quantity missing
f6db258d-f400-41b5-a5ca-7878010f0fd7_doc00945920250206091811,item[0].quantity missing
Facture médecine douce-27784833,item[0].quantity missing
abff81b4-d895-47d5-b3d4-93da48f5c1e6_20241212_172044,item[0].quantity missing
abff81b4-d895-47d5-b3d4-93da48f5c1e6_20241212_172044,item[1].quantity missing
1724397366294irm,item[0].quantity missing
Facture ostéopathe-25233929,item[0].quantity missing
8b6539db-21b4-41dc-a27f-db2cd351fe5f_Doc_34,item[0].quantity missing
819f6faf-d9f3-4668-9000-e414d92c7f41_ROYER_LUDIVINE_FACTURE_OPHTALMO,item[0].quantity missing
819f6faf-d9f3-4668-9000-e414d92c7f41_ROYER_LUDIVINE_FACTURE_OPHTALMO,item[1].quantity missing
209e4abe-4973-4fd3-83cc-64f940fb7372_facture_ophtalmologue,item[0].quantity missing
209e4abe-4973-4fd3-83cc-64f940fb7372_facture_ophtalmologue,item[1].quantity missing
719ba06c-91ee-44dc-b7b6-4a3132f733af_FievreVillaniCarlaLunettes,item[0].quantity missing
719ba06c-91ee-44dc-b7b6-4a3132f733af_FievreVillaniCarlaLunettes,item[1].quantity missing
e07571f8-3ba4-46fc-a37e-53bd6dd965c7_IMG20250123190152,item[0].quantity missing
e07571f8-3ba4-46fc-a37e-53bd6dd965c7_IMG20250123190152,item[1].quantity missing
e07571f8-3ba4-46fc-a37e-53bd6dd965c7_IMG20250123190152,item[2].quantity missing
e07571f8-3ba4-46fc-a37e-53bd6dd965c7_IMG20250123190152,item[3].quantity missing
e07571f8-3ba4-46fc-a37e-53bd6dd965c7_IMG20250123190152,item[4].quantity missing
e07571f8-3ba4-46fc-a37e-53bd6dd965c7_IMG20250123190152,item[5].quantity missing
e07571f8-3ba4-46fc-a37e-53bd6dd965c7_IMG20250123190152,item[6].quantity missing
DDE prestation Facture des lentilles de contact-26772555,item[0].quantity missing
DDE prestation Facture des lentilles de contact-26772555,item[1].quantity missing
5ff72751-5d92-463c-a272-97fda77c34f8_2025-01-31-13187-Luc_Lisa,item[0].quantity missing
Facture ostéopathe-26744045,item[0].quantity missing
Facture ostéopathe-26699212,item[0].quantity missing
Facture médecine douce-27781814,item[0].quantity missing
Facture ostéopathe-26699279,item[0].quantity missing
1724399050308image,item[0].quantity missing
44e87f9e-a4e2-4851-b383-e1401b36e853_image,item[0].quantity missing
44e87f9e-a4e2-4851-b383-e1401b36e853_image,item[1].quantity missing
c53ffdcc-0ee6-4bf2-8c43-923c5471310f_IMG_7285,item[0].quantity missing
c53ffdcc-0ee6-4bf2-8c43-923c5471310f_IMG_7285,item[1].quantity missing
8605959d-bf31-4ea3-a820-bde824a1a4de_20241226_080232,item[0].quantity missing
3ee0ac3b-4d77-4692-80fa-15004f8a3499_facture_ophta,item[0].quantity missing
3ee0ac3b-4d77-4692-80fa-15004f8a3499_facture_ophta,item[1].quantity missing
29d72de2-da83-483a-8702-939fbe4addfa_20250207_112449,item[0].quantity missing
1724425079263JACOB_Francois_2024-111,item[0].quantity missing
1724425079184Facture_Osteopathe_Brousseau_sader_17avr24,item[0].quantity missing
DDE prestation Facture des lentilles de contact-26685394,item[0].quantity missing
Facture ostéopathe-26447822,bill_paid True but amount_paid missing
DDE prestation Facture des lentilles de contact-26705131,item[2].amount negative: -5.0
3fe044b5-fd6a-4f5c-accc-ce7b987575a8_IMG_6817,item[0].quantity missing
3fe044b5-fd6a-4f5c-accc-ce7b987575a8_IMG_6817,item[1].quantity missing
Facture ostéopathe-25187936,item[0].quantity missing
Facture des lentilles de contact-27545715,item[1].quantity missing
82ac654c-54d4-401f-a006-96d9e46531fe_Facture_ostheo_JEAN,item[0].quantity missing
Facture des lentilles de contact-27653858,item[4].amount negative: -2.9
Facture des lentilles de contact-27653858,item[5].amount negative: -3.0
3d4c57ed-eecc-4557-81c9-9e46e46b5a82_IMG_8797,item[0].quantity missing
3d4c57ed-eecc-4557-81c9-9e46e46b5a82_IMG_8797,item[1].quantity missing
3d4c57ed-eecc-4557-81c9-9e46e46b5a82_IMG_8797,item[2].quantity missing
3d4c57ed-eecc-4557-81c9-9e46e46b5a82_IMG_8797,item[3].quantity missing
3d4c57ed-eecc-4557-81c9-9e46e46b5a82_IMG_8797,item[4].quantity missing
3d4c57ed-eecc-4557-81c9-9e46e46b5a82_IMG_8797,item[5].quantity missing
Facture ostéopathe-26675471,item[0].quantity missing
38b89b50-a6b6-4816-a495-ce2d9e71082f_Kine-28-11-2024,item[0].quantity missing
43666807-3eb2-40b9-bdf6-94d4fe31b71e_factures,item[0].quantity missing
43666807-3eb2-40b9-bdf6-94d4fe31b71e_factures,item[1].quantity missing
43666807-3eb2-40b9-bdf6-94d4fe31b71e_factures,item[2].quantity missing
9c1cc24a-5f7e-42ef-998d-c813a686a7b5_549D8459-524A-4A5C-9612-09EEA1ADDB58,item[0].quantity missing
9c1cc24a-5f7e-42ef-998d-c813a686a7b5_549D8459-524A-4A5C-9612-09EEA1ADDB58,item[1].quantity missing
c052b9e0-c0d4-473f-93a9-a5dc396a0d86_Facture_ophtalmologique_,item[0].quantity missing
c052b9e0-c0d4-473f-93a9-a5dc396a0d86_Facture_ophtalmologique_,item[1].quantity missing
ec6baa8c-a189-4850-b310-c90bab372cc2_Facture_Krys,bill_paid True but remaining_payment > 0
Facture ostéopathe-26539711,item[0].quantity missing
0bfb5041-2751-421d-b5d5-60d696c361c1_17391960081576654684571490136238,item[0].quantity missing
Facture ostéopathe-26605349,item[0].quantity missing
de6a66cd-d729-479c-a119-8b9e442702db_Screenshot_20250227_112521_Gallery,item[0].quantity missing
de6a66cd-d729-479c-a119-8b9e442702db_Screenshot_20250227_112521_Gallery,item[1].quantity missing
1d4346b3-1322-457d-9436-ea1d82f74cea_Facture_ophtalmo_enfants,item[0].quantity missing
1d4346b3-1322-457d-9436-ea1d82f74cea_Facture_ophtalmo_enfants,item[0].quantity missing
1d4346b3-1322-457d-9436-ea1d82f74cea_Facture_ophtalmo_enfants,item[1].quantity missing
Facture ostéopathe-25358482,item[0].quantity missing
34f7e622-ffd8-493d-b955-10a692290a75_image,item[0].quantity missing
Facture ostéopathe-26595219,item[0].quantity missing
Facture des lentilles de contact-27716093,item[0].quantity missing
6d9a0fdf-c334-43b6-946b-45b1b1ab83d7_Facture_osteo_FEV_25,item[0].quantity missing
24ca9fa1-064d-49a0-8d54-d6f0171c8187_Facture_lunette,item[0].quantity missing
24ca9fa1-064d-49a0-8d54-d6f0171c8187_Facture_lunette,item[1].quantity missing
24ca9fa1-064d-49a0-8d54-d6f0171c8187_Facture_lunette,item[2].quantity missing
24ca9fa1-064d-49a0-8d54-d6f0171c8187_Facture_lunette,item[3].quantity missing
1724399050380osteo_Lina,item[0].quantity missing
106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie,item[0].quantity missing
106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie,item[1].quantity missing
106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie,item[2].quantity missing
106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie,item[3].quantity missing
106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie,item[4].quantity missing
106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie,item[5].quantity missing
1 source issue
2 Facture médecine douce-27776417 item[0].quantity missing
3 551dd33d-0011-4887-b115-4ddf28ee0e2f_fact_barret_l_2024 item[0].quantity missing
4 551dd33d-0011-4887-b115-4ddf28ee0e2f_fact_barret_l_2024 item[1].quantity missing
5 551dd33d-0011-4887-b115-4ddf28ee0e2f_fact_barret_l_2024 item[2].quantity missing
6 551dd33d-0011-4887-b115-4ddf28ee0e2f_fact_barret_l_2024 item[3].quantity missing
7 551dd33d-0011-4887-b115-4ddf28ee0e2f_fact_barret_l_2024 item[4].quantity missing
8 551dd33d-0011-4887-b115-4ddf28ee0e2f_fact_barret_l_2024 item[5].quantity missing
9 Facture médecine douce-27640153 item[0].quantity missing
10 Facture médecine douce-27640153 item[1].quantity missing
11 1724397366229Facture_RIVALLANDChrystelle_20240413ICQO bill_paid True but amount_paid missing
12 Facture ostéopathe-25417095 bill_paid True but remaining_payment > 0
13 Facture ostéopathe-GED N-R-2323015 item[0].quantity missing
14 74441931-f8d0-4cb0-8eb5-df4147a72bbe_mgp item[0].quantity missing
15 74441931-f8d0-4cb0-8eb5-df4147a72bbe_mgp currency missing for bill
16 74441931-f8d0-4cb0-8eb5-df4147a72bbe_mgp currency missing for bill
17 1724658126141JACOB_Francois_2024-111 item[0].quantity missing
18 Facture des lentilles de contact-27559701 item[5].amount negative: -6.67
19 91c41171-ac88-4ce4-8f15-48c4ad2c5aa2_Devis_lunette item[0].quantity missing
20 0252b5fb-bc84-4fca-bfa7-483ac611885a_Scan_0115 item[0].quantity missing
21 0252b5fb-bc84-4fca-bfa7-483ac611885a_Scan_0115 item[1].quantity missing
22 7f084bf4-357d-452d-bb4c-76bff332ea0c_IMG_7791 item[0].quantity missing
23 7f084bf4-357d-452d-bb4c-76bff332ea0c_IMG_7791 item[1].quantity missing
24 70c3e7f5-405b-49d8-a73c-dae83beafb59_Facture_ophtalmo item[0].quantity missing
25 70c3e7f5-405b-49d8-a73c-dae83beafb59_Facture_ophtalmo item[1].quantity missing
26 70c3e7f5-405b-49d8-a73c-dae83beafb59_Facture_ophtalmo item[2].quantity missing
27 Facture médecine douce-27776613 item[0].quantity missing
28 6eeacb70-27be-40dd-9511-522025b459a3_20241226_080214 item[0].quantity missing
29 6eeacb70-27be-40dd-9511-522025b459a3_20241226_080214 item[1].quantity missing
30 1724399050339FACTURE_132120424_MME_RONDIN_MAHEVA item[0].quantity missing
31 ec117b21-9348-4a76-9a22-2bae87639392_facture_du_14.02_Tony item[0].quantity missing
32 ec117b21-9348-4a76-9a22-2bae87639392_facture_du_14.02_Tony item[1].quantity missing
33 Facture ostéopathe-25979892 item[0].quantity missing
34 bf09a877-0705-4c79-b908-6e8da44e44c7_17490641879424403676372514736136 item[0].quantity missing
35 bf09a877-0705-4c79-b908-6e8da44e44c7_17490641879424403676372514736136 item[1].quantity missing
36 d4f310c8-3bcf-4bb5-bf53-27ad74d66c1e_FACTURE_OPTICIEN_OPHTALMO item[0].quantity missing
37 DDE prestation Facture des lentilles de contact-26740934 item[0].quantity missing
38 45ccffcd-5fe8-418b-80c2-894086de9087_facture_ophtalmo_Fred_ item[0].quantity missing
39 45ccffcd-5fe8-418b-80c2-894086de9087_facture_ophtalmo_Fred_ item[1].quantity missing
40 Facture ostéopathe-26626551 item[0].quantity missing
41 27ddc814-9239-4944-951a-fdd8a48c5926_IMG_20240922_0001 item[0].quantity missing
42 27ddc814-9239-4944-951a-fdd8a48c5926_IMG_20240922_0001 item[1].quantity missing
43 27ddc814-9239-4944-951a-fdd8a48c5926_IMG_20240922_0001 item[2].quantity missing
44 27ddc814-9239-4944-951a-fdd8a48c5926_IMG_20240922_0001 item[3].quantity missing
45 8eceb56a-b571-4ab6-a64e-668db6bf4ad5_chiropracteur_fevrier_25 item[0].quantity missing
46 Facture des lentilles de contact-27576495 item[2].quantity missing
47 32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337 item[0].quantity missing
48 32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337 item[1].quantity missing
49 32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337 item[2].quantity missing
50 a5bd8b97-a2a8-49ae-900d-0673d2f96637_quittance_optique_ item[0].quantity missing
51 e997eddb-05a4-49f9-a7fd-82b48c2694b3_IMG_OPHTALMOLOGIE_20250117_0001 item[0].quantity missing
52 Facture ostéopathe-26300731 item[0].quantity missing
53 Facture ostéopathe-26300731 item[1].quantity missing
54 Facture ostéopathe-26300731 item[2].quantity missing
55 64fa4c19-efa4-48f1-acf8-8c2e8f573b8b_Facture_osteopathe_ item[0].quantity missing
56 c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo item[0].quantity missing
57 c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo item[1].quantity missing
58 c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo item[0].quantity missing
59 1724658376419facture_ostheo_avril_24 item[0].quantity missing
60 66de7232-78a6-46a0-8392-47ec4630ad31_image item[0].quantity missing
61 66de7232-78a6-46a0-8392-47ec4630ad31_image item[1].quantity missing
62 66de7232-78a6-46a0-8392-47ec4630ad31_image item[2].quantity missing
63 DDE prestation Facture des lentilles de contact-26772554 item[0].quantity missing
64 DDE prestation Facture des lentilles de contact-26772554 item[1].quantity missing
65 DDE prestation Facture des lentilles de contact-26705902 item[3].amount negative: -3.0
66 c2009b55-58d4-411f-a25a-3dc1e32e4a89_facture_lentille item[3].amount negative: -3.0
67 Facture ostéopathe-26112640 item[0].quantity missing
68 915b97eb-e7d5-415f-ae89-823f08ae3bc0_ACfacture_opthalmo item[0].quantity missing
69 915b97eb-e7d5-415f-ae89-823f08ae3bc0_ACfacture_opthalmo item[1].quantity missing
70 fa25423e-b79c-48f9-89ae-32ffd95e3101_Facture_Ophtalmologie item[0].quantity missing
71 Facture ostéopathe-25073562 item[0].quantity missing
72 14a6fe3e-c49c-4544-b960-43def15eaf83_doc00563220250401124926 item[0].quantity missing
73 1724399050374facture_podologue item[0].quantity missing
74 Facture des lentilles de contact-27680116 item[0].quantity missing
75 Facture des lentilles de contact-27680116 item[1].quantity missing
76 Facture des lentilles de contact-27551187 item[0].quantity missing
77 46ddeec5-97bf-4175-b214-b7bd74c4fa24_Renouvin_Ferlicot_Andre item[0].quantity missing
78 46ddeec5-97bf-4175-b214-b7bd74c4fa24_Renouvin_Ferlicot_Andre item[1].quantity missing
79 cbc7ddff-2ed1-441b-85cb-5c1079588a52_Mes_des_factures item[0].quantity missing
80 cbc7ddff-2ed1-441b-85cb-5c1079588a52_Mes_des_factures item[1].quantity missing
81 1724658298461facture_podologue_alicia item[0].quantity missing
82 1724397366268IMG_20240417_143900 item[0].quantity missing
83 b410345a-31de-4397-a896-bc11d97e524c_FACTURE_OPHTALMOLOGISTE item[0].quantity missing
84 Facture ostéopathe-26972680 item[0].quantity missing
85 Facture ostéopathe-25936311 item[0].quantity missing
86 b96f6ca3-3175-4cd8-a827-e886b5799867_Facture_ophtalmologue_24022025 item[0].quantity missing
87 9494858a-65e3-425d-a452-17d4300f0115_demande_de_remboursement_mgp_mutuelle_001 bill_paid True but amount_paid missing
88 895777f3-4478-4e8d-a616-d498850d1523_factures-lunettes_Tess bill_paid True but remaining_payment > 0
89 Facture ostéopathe-25152747 bill_paid True but amount_paid missing
90 Facture ostéopathe-25332784 item[0].quantity missing
91 Facture ostéopathe-1216961 bill_paid True but amount_paid missing
92 Facture ostéopathe-1216961 item[0].quantity missing
93 6f544990-74c6-4c7e-8a25-08eb3f9138c8_RemboursementSoins01082024_1 item[0].quantity missing
94 6f544990-74c6-4c7e-8a25-08eb3f9138c8_RemboursementSoins01082024_1 item[1].quantity missing
95 9901adc0-96d4-4cfd-a028-8286fd1f7841_Fre_Ophtalmo item[0].quantity missing
96 9901adc0-96d4-4cfd-a028-8286fd1f7841_Fre_Ophtalmo item[1].quantity missing
97 141f7ccc-37ab-4da5-9788-80a27e819b8b_Feuilles_de_soins_Psychologue_x2 bill_paid True but remaining_payment > 0
98 598221c3-d0b3-403a-a261-c68cbe56b453_facture_ophtalmo item[0].quantity missing
99 598221c3-d0b3-403a-a261-c68cbe56b453_facture_ophtalmo item[1].quantity missing
100 70e53730-c41c-402b-a227-2262cdd9fa7b_osteo_Laurette item[0].quantity missing
101 39384a4b-4117-4f56-8cca-55fd51e5b062_image item[0].quantity missing
102 39384a4b-4117-4f56-8cca-55fd51e5b062_image item[1].quantity missing
103 39384a4b-4117-4f56-8cca-55fd51e5b062_image item[2].quantity missing
104 d9e1cb2a-b44b-4cc8-b07a-030ddf3acd28_Ordonnance_lentilles_Mary bill_paid True but amount_paid missing
105 Facture ostéopathe-25417096 item[0].quantity missing
106 Facture ostéopathe-26585743 item[0].quantity missing
107 05c2ef83-54cb-419e-949f-74f898b459bd_osteo_13112024 item[0].quantity missing
108 Facture ostéopathe-26077624 item[0].quantity missing
109 e405dba0-fd0b-48a0-9e3f-576398fa3318_Scan2025-02-28_143544_1 item[0].quantity missing
110 Facture ostéopathe-25847017 bill_paid True but remaining_payment > 0
111 8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes item[0].quantity missing
112 8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes item[1].quantity missing
113 8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes item[2].quantity missing
114 8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes item[3].quantity missing
115 8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes item[4].quantity missing
116 47399c82-030f-4904-b8f4-2c3dc7c46723_image item[0].quantity missing
117 47399c82-030f-4904-b8f4-2c3dc7c46723_image item[1].quantity missing
118 Facture des lentilles de contact-27708923 item[0].quantity missing
119 Facture-quittance toutes spécialités-27235184 item[0].quantity missing
120 Facture-quittance toutes spécialités-27235184 item[1].quantity missing
121 Facture-quittance toutes spécialités-27235184 item[2].quantity missing
122 Facture-quittance toutes spécialités-27235184 item[3].quantity missing
123 1724399050377psy_rachel_4 item[0].quantity missing
124 e0f0eab0-f98c-4b74-95f2-bfc61ad76d28_Ophtalmo_Isa_01-24 item[0].quantity missing
125 e0f0eab0-f98c-4b74-95f2-bfc61ad76d28_Ophtalmo_Isa_01-24 item[1].quantity missing
126 172439712563420240417_105010 item[0].quantity missing
127 172439712563420240417_105010 item[1].quantity missing
128 Facture ostéopathe-26750142 item[0].quantity missing
129 DDE prestation Facture des lentilles de contact-26723200 item[0].quantity missing
130 DDE prestation Facture des lentilles de contact-26736761 item[0].quantity missing
131 DDE prestation Facture des lentilles de contact-26736761 item[1].quantity missing
132 28f8623a-8962-4ad1-88bb-4914109e1d42_20241118103848034 item[3].amount negative: -4.08
133 28f8623a-8962-4ad1-88bb-4914109e1d42_20241118103848034 item[0].quantity missing
134 28f8623a-8962-4ad1-88bb-4914109e1d42_20241118103848034 item[1].quantity missing
135 0a26adda-beef-4977-966c-12efc73f1d15_20250129_190625 item[0].quantity missing
136 0a26adda-beef-4977-966c-12efc73f1d15_20250129_190625 item[1].quantity missing
137 b442261a-d504-4cda-98cd-e22a6875bfd0_M._ZIMMER_2401 item[0].quantity missing
138 b8083bbb-9489-4706-af99-69f625bbc530_facture_OPHALMOLOGIE item[0].quantity missing
139 b8083bbb-9489-4706-af99-69f625bbc530_facture_OPHALMOLOGIE item[1].quantity missing
140 b8083bbb-9489-4706-af99-69f625bbc530_facture_OPHALMOLOGIE item[2].quantity missing
141 bedf599f-99db-4613-aa22-17d52690c34c_doc00194520240521104544 item[0].quantity missing
142 bedf599f-99db-4613-aa22-17d52690c34c_doc00194520240521104544 item[1].quantity missing
143 8f8adcc8-9b8f-48e0-94d5-d8cfb9d84a1f_Scanned_20250212_154615 item[0].quantity missing
144 Facture des lentilles de contact-27647140 item[4].amount negative: -2.9
145 Facture des lentilles de contact-27647140 item[5].amount negative: -3.0
146 8de5aacb-e142-4321-aaaf-c4179f031d7a_20240810152224_001 item[0].quantity missing
147 8de5aacb-e142-4321-aaaf-c4179f031d7a_20240810152224_001 item[1].quantity missing
148 8de5aacb-e142-4321-aaaf-c4179f031d7a_20240810152224_001 item[2].quantity missing
149 8de6df48-c40d-4e21-ad21-edc9a95e3bfb_image item[0].quantity missing
150 8de6df48-c40d-4e21-ad21-edc9a95e3bfb_image item[1].quantity missing
151 8de6df48-c40d-4e21-ad21-edc9a95e3bfb_image item[2].quantity missing
152 DDE prestation Facture des lentilles de contact-26542194 item[0].quantity missing
153 Facture des lentilles de contact-27654407 bill_paid True but amount_paid missing
154 fd8187e1-b9eb-4727-8041-9fc9e6f1affb_0556_001 item[0].quantity missing
155 Facture des lentilles de contact-27572543 item[0].quantity missing
156 c6013936-5850-4027-9f61-32c30486e6d5_optique item[0].quantity missing
157 c6013936-5850-4027-9f61-32c30486e6d5_optique item[1].quantity missing
158 2c75bd51-e61c-452e-b19b-494fa70e9cc9_Facture_lentilles_janvier_2024 item[4].amount negative: -2.9
159 2c75bd51-e61c-452e-b19b-494fa70e9cc9_Facture_lentilles_janvier_2024 item[5].amount negative: -3.0
160 Facture des lentilles de contact-27601451 item[0].quantity missing
161 Facture des lentilles de contact-27601451 item[1].quantity missing
162 Facture ostéopathe-26660518 item[0].quantity missing
163 Facture ostéopathe-26660518 item[0].quantity missing
164 Facture ostéopathe-26479073 item[0].quantity missing
165 c4930995-bbbe-45dd-9afe-800005fb5890_Facture_lunettes_ item[0].quantity missing
166 c4930995-bbbe-45dd-9afe-800005fb5890_Facture_lunettes_ item[1].quantity missing
167 c4930995-bbbe-45dd-9afe-800005fb5890_Facture_lunettes_ item[2].quantity missing
168 511ba153-1eae-4682-ade0-01217ff522bf_Facture_consultation_130125 item[0].quantity missing
169 8019accc-33b4-4f20-95eb-3ff1e1d4db0b_nnn item[0].quantity missing
170 8019accc-33b4-4f20-95eb-3ff1e1d4db0b_nnn item[1].quantity missing
171 Facture ostéopathe-1119174 item[0].quantity missing
172 17b264a2-4881-49a4-8326-48ace17dd86f_factures_ophtalmo item[0].quantity missing
173 17b264a2-4881-49a4-8326-48ace17dd86f_factures_ophtalmo item[1].quantity missing
174 17b264a2-4881-49a4-8326-48ace17dd86f_factures_ophtalmo item[0].quantity missing
175 eedda33e-049b-4ab8-aee8-6f5d0c88b500_IMG_0358 item[0].quantity missing
176 eedda33e-049b-4ab8-aee8-6f5d0c88b500_IMG_0358 item[1].quantity missing
177 Facture des lentilles de contact-27646193 item[4].amount negative: -4.9
178 Facture des lentilles de contact-27646193 item[5].amount negative: -13.8
179 f339c5ad-7df8-4f3e-a5fa-9dc7616abc3e_IMG_20250327_165906 item[0].quantity missing
180 f339c5ad-7df8-4f3e-a5fa-9dc7616abc3e_IMG_20250327_165906 item[1].quantity missing
181 4f09f855-c993-42ea-97b1-3dd728b53e16_devis_ophtalmo item[0].quantity missing
182 Facture des lentilles de contact-27665791 bill_paid True but amount_paid missing
183 Facture des lentilles de contact-27665791 item[0].quantity missing
184 Facture des lentilles de contact-27665791 item[1].quantity missing
185 Facture des lentilles de contact-27665791 item[2].quantity missing
186 252c4ad4-8fa3-4ed1-9508-ee77f6dce6fe_img20250206_20040851 item[0].quantity missing
187 Facture ostéopathe-25145711 item[0].quantity missing
188 Facture ostéopathe-26626836 item[0].quantity missing
189 Facture ostéopathe-26626836 item[0].quantity missing
190 Facture ostéopathe-26991829 item[0].quantity missing
191 Facture ostéopathe-26991829 item[1].quantity missing
192 f6db258d-f400-41b5-a5ca-7878010f0fd7_doc00945920250206091811 item[0].quantity missing
193 Facture médecine douce-27784833 item[0].quantity missing
194 abff81b4-d895-47d5-b3d4-93da48f5c1e6_20241212_172044 item[0].quantity missing
195 abff81b4-d895-47d5-b3d4-93da48f5c1e6_20241212_172044 item[1].quantity missing
196 1724397366294irm item[0].quantity missing
197 Facture ostéopathe-25233929 item[0].quantity missing
198 8b6539db-21b4-41dc-a27f-db2cd351fe5f_Doc_34 item[0].quantity missing
199 819f6faf-d9f3-4668-9000-e414d92c7f41_ROYER_LUDIVINE_FACTURE_OPHTALMO item[0].quantity missing
200 819f6faf-d9f3-4668-9000-e414d92c7f41_ROYER_LUDIVINE_FACTURE_OPHTALMO item[1].quantity missing
201 209e4abe-4973-4fd3-83cc-64f940fb7372_facture_ophtalmologue item[0].quantity missing
202 209e4abe-4973-4fd3-83cc-64f940fb7372_facture_ophtalmologue item[1].quantity missing
203 719ba06c-91ee-44dc-b7b6-4a3132f733af_FievreVillaniCarlaLunettes item[0].quantity missing
204 719ba06c-91ee-44dc-b7b6-4a3132f733af_FievreVillaniCarlaLunettes item[1].quantity missing
205 e07571f8-3ba4-46fc-a37e-53bd6dd965c7_IMG20250123190152 item[0].quantity missing
206 e07571f8-3ba4-46fc-a37e-53bd6dd965c7_IMG20250123190152 item[1].quantity missing
207 e07571f8-3ba4-46fc-a37e-53bd6dd965c7_IMG20250123190152 item[2].quantity missing
208 e07571f8-3ba4-46fc-a37e-53bd6dd965c7_IMG20250123190152 item[3].quantity missing
209 e07571f8-3ba4-46fc-a37e-53bd6dd965c7_IMG20250123190152 item[4].quantity missing
210 e07571f8-3ba4-46fc-a37e-53bd6dd965c7_IMG20250123190152 item[5].quantity missing
211 e07571f8-3ba4-46fc-a37e-53bd6dd965c7_IMG20250123190152 item[6].quantity missing
212 DDE prestation Facture des lentilles de contact-26772555 item[0].quantity missing
213 DDE prestation Facture des lentilles de contact-26772555 item[1].quantity missing
214 5ff72751-5d92-463c-a272-97fda77c34f8_2025-01-31-13187-Luc_Lisa item[0].quantity missing
215 Facture ostéopathe-26744045 item[0].quantity missing
216 Facture ostéopathe-26699212 item[0].quantity missing
217 Facture médecine douce-27781814 item[0].quantity missing
218 Facture ostéopathe-26699279 item[0].quantity missing
219 1724399050308image item[0].quantity missing
220 44e87f9e-a4e2-4851-b383-e1401b36e853_image item[0].quantity missing
221 44e87f9e-a4e2-4851-b383-e1401b36e853_image item[1].quantity missing
222 c53ffdcc-0ee6-4bf2-8c43-923c5471310f_IMG_7285 item[0].quantity missing
223 c53ffdcc-0ee6-4bf2-8c43-923c5471310f_IMG_7285 item[1].quantity missing
224 8605959d-bf31-4ea3-a820-bde824a1a4de_20241226_080232 item[0].quantity missing
225 3ee0ac3b-4d77-4692-80fa-15004f8a3499_facture_ophta item[0].quantity missing
226 3ee0ac3b-4d77-4692-80fa-15004f8a3499_facture_ophta item[1].quantity missing
227 29d72de2-da83-483a-8702-939fbe4addfa_20250207_112449 item[0].quantity missing
228 1724425079263JACOB_Francois_2024-111 item[0].quantity missing
229 1724425079184Facture_Osteopathe_Brousseau_sader_17avr24 item[0].quantity missing
230 DDE prestation Facture des lentilles de contact-26685394 item[0].quantity missing
231 Facture ostéopathe-26447822 bill_paid True but amount_paid missing
232 DDE prestation Facture des lentilles de contact-26705131 item[2].amount negative: -5.0
233 3fe044b5-fd6a-4f5c-accc-ce7b987575a8_IMG_6817 item[0].quantity missing
234 3fe044b5-fd6a-4f5c-accc-ce7b987575a8_IMG_6817 item[1].quantity missing
235 Facture ostéopathe-25187936 item[0].quantity missing
236 Facture des lentilles de contact-27545715 item[1].quantity missing
237 82ac654c-54d4-401f-a006-96d9e46531fe_Facture_ostheo_JEAN item[0].quantity missing
238 Facture des lentilles de contact-27653858 item[4].amount negative: -2.9
239 Facture des lentilles de contact-27653858 item[5].amount negative: -3.0
240 3d4c57ed-eecc-4557-81c9-9e46e46b5a82_IMG_8797 item[0].quantity missing
241 3d4c57ed-eecc-4557-81c9-9e46e46b5a82_IMG_8797 item[1].quantity missing
242 3d4c57ed-eecc-4557-81c9-9e46e46b5a82_IMG_8797 item[2].quantity missing
243 3d4c57ed-eecc-4557-81c9-9e46e46b5a82_IMG_8797 item[3].quantity missing
244 3d4c57ed-eecc-4557-81c9-9e46e46b5a82_IMG_8797 item[4].quantity missing
245 3d4c57ed-eecc-4557-81c9-9e46e46b5a82_IMG_8797 item[5].quantity missing
246 Facture ostéopathe-26675471 item[0].quantity missing
247 38b89b50-a6b6-4816-a495-ce2d9e71082f_Kine-28-11-2024 item[0].quantity missing
248 43666807-3eb2-40b9-bdf6-94d4fe31b71e_factures item[0].quantity missing
249 43666807-3eb2-40b9-bdf6-94d4fe31b71e_factures item[1].quantity missing
250 43666807-3eb2-40b9-bdf6-94d4fe31b71e_factures item[2].quantity missing
251 9c1cc24a-5f7e-42ef-998d-c813a686a7b5_549D8459-524A-4A5C-9612-09EEA1ADDB58 item[0].quantity missing
252 9c1cc24a-5f7e-42ef-998d-c813a686a7b5_549D8459-524A-4A5C-9612-09EEA1ADDB58 item[1].quantity missing
253 c052b9e0-c0d4-473f-93a9-a5dc396a0d86_Facture_ophtalmologique_ item[0].quantity missing
254 c052b9e0-c0d4-473f-93a9-a5dc396a0d86_Facture_ophtalmologique_ item[1].quantity missing
255 ec6baa8c-a189-4850-b310-c90bab372cc2_Facture_Krys bill_paid True but remaining_payment > 0
256 Facture ostéopathe-26539711 item[0].quantity missing
257 0bfb5041-2751-421d-b5d5-60d696c361c1_17391960081576654684571490136238 item[0].quantity missing
258 Facture ostéopathe-26605349 item[0].quantity missing
259 de6a66cd-d729-479c-a119-8b9e442702db_Screenshot_20250227_112521_Gallery item[0].quantity missing
260 de6a66cd-d729-479c-a119-8b9e442702db_Screenshot_20250227_112521_Gallery item[1].quantity missing
261 1d4346b3-1322-457d-9436-ea1d82f74cea_Facture_ophtalmo_enfants item[0].quantity missing
262 1d4346b3-1322-457d-9436-ea1d82f74cea_Facture_ophtalmo_enfants item[0].quantity missing
263 1d4346b3-1322-457d-9436-ea1d82f74cea_Facture_ophtalmo_enfants item[1].quantity missing
264 Facture ostéopathe-25358482 item[0].quantity missing
265 34f7e622-ffd8-493d-b955-10a692290a75_image item[0].quantity missing
266 Facture ostéopathe-26595219 item[0].quantity missing
267 Facture des lentilles de contact-27716093 item[0].quantity missing
268 6d9a0fdf-c334-43b6-946b-45b1b1ab83d7_Facture_osteo_FEV_25 item[0].quantity missing
269 24ca9fa1-064d-49a0-8d54-d6f0171c8187_Facture_lunette item[0].quantity missing
270 24ca9fa1-064d-49a0-8d54-d6f0171c8187_Facture_lunette item[1].quantity missing
271 24ca9fa1-064d-49a0-8d54-d6f0171c8187_Facture_lunette item[2].quantity missing
272 24ca9fa1-064d-49a0-8d54-d6f0171c8187_Facture_lunette item[3].quantity missing
273 1724399050380osteo_Lina item[0].quantity missing
274 106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie item[0].quantity missing
275 106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie item[1].quantity missing
276 106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie item[2].quantity missing
277 106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie item[3].quantity missing
278 106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie item[4].quantity missing
279 106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie item[5].quantity missing

View File

@@ -0,0 +1,54 @@
source_image,total_billed,sum_item_amount,diff
74441931-f8d0-4cb0-8eb5-df4147a72bbe_mgp,71.9,0.0,71.9
Facture des lentilles de contact-27718628,201.52,223.92,-22.399999999999977
7f084bf4-357d-452d-bb4c-76bff332ea0c_IMG_7791,78.43,0.0,78.43
6eeacb70-27be-40dd-9511-522025b459a3_20241226_080214,65.5,65.05000000000001,0.44999999999998863
Facture ostéopathe-1066603,45.0,65.0,-20.0
fa95b732-7a88-4fea-a8e7-9975dbbc69a8_Facture_0122202407740700218,238.03,218.03000000000003,19.99999999999997
cc0c0b33-1a94-469b-bd88-ca534e257d33_Osteo,60.0,80.0,-20.0
32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337,92.4,75.72,16.680000000000007
e997eddb-05a4-49f9-a7fd-82b48c2694b3_IMG_OPHTALMOLOGIE_20250117_0001,119.48,0.0,119.48
c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo,120.0,0.0,120.0
c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo,20.8,0.0,20.8
edb77e5c-ea68-4bad-a177-1256a3bafc9c_CF_1686176,64.48,59.88,4.600000000000001
Facture ostéopathe-26112640,66.0,65.0,1.0
1498c5f5-22cf-41d4-87f0-9b295ff481f4_IMG_5659,50.0,41.41,8.590000000000003
Facture ostéopathe-25449739,70.0,60.0,10.0
4fa21bd9-393e-41d4-9af2-bf42004f4e94_image,15.93,14.48,1.4499999999999993
895777f3-4478-4e8d-a616-d498850d1523_factures-lunettes_Tess,41.0,79.0,-38.0
6f544990-74c6-4c7e-8a25-08eb3f9138c8_RemboursementSoins01082024_1,24.98,41.41,-16.429999999999996
9901adc0-96d4-4cfd-a028-8286fd1f7841_Fre_Ophtalmo,70.69,72.69,-2.0
5c4353b0-55a4-4687-9744-d1a6da183abd_facture_lentilles_de_contact,78.98,65.82,13.16000000000001
598221c3-d0b3-403a-a261-c68cbe56b453_facture_ophtalmo,44.0,88.0,-44.0
803f61ed-759c-4773-90f2-d8737ef911ab_image,115.0,0.0,115.0
8c8c6ff8-8e9c-49fc-b131-1dce75bcdfc2_Facture_FA1947_04_02_2025,70.0,58.33,11.670000000000002
e6272522-cc2a-44b0-af14-9f54d1a76a59_Facture_lunettes_,691.62,1253.62,-561.9999999999999
8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes,262.0,257.0,5.0
47399c82-030f-4904-b8f4-2c3dc7c46723_image,77.61,0.0,77.61
e0f0eab0-f98c-4b74-95f2-bfc61ad76d28_Ophtalmo_Isa_01-24,76.0,0.0,76.0
DDE prestation Facture des lentilles de contact-26736761,78.0,76.0,2.0
8ed22fd8-18ae-4c54-93ae-2f5cd4ec2af6_17375530503755104210735675998866,73.43,0.0,73.43
7b830a57-2131-479c-bf31-1673e7308903_invoice_2025_1_31,75.95,59.96,15.990000000000002
0a26adda-beef-4977-966c-12efc73f1d15_20250129_190625,74.61,0.0,74.61
bedf599f-99db-4613-aa22-17d52690c34c_doc00194520240521104544,95.29,0.0,95.29
ee2bacc2-7a66-4adf-b4ff-95fc5c13a2da_20250213_112821,10.26,9.629999999999999,0.6300000000000008
172442503141724-04-08_recu_kine_Suz,66.12,0.0,66.12
8019accc-33b4-4f20-95eb-3ff1e1d4db0b_nnn,127.77,0.0,127.77
Facture des lentilles de contact-27700403,41.2,41.8,-0.5999999999999943
9c2763f2-fb0c-4fe4-be38-6f94fba64162_optical_facture_lunettes_apres_accident,551.58,620.5799999999999,-68.99999999999989
1724397366294irm,252.72,0.0,252.72
209e4abe-4973-4fd3-83cc-64f940fb7372_facture_ophtalmologue,72.63,0.0,72.63
e07571f8-3ba4-46fc-a37e-53bd6dd965c7_IMG20250123190152,167.0,174.65,-7.650000000000006
fecefa42-3451-496b-bcb5-d5ebd4cdd8da_invoice_2024_10_14,195.92,163.28,32.639999999999986
44e87f9e-a4e2-4851-b383-e1401b36e853_image,118.14,0.0,118.14
96be3553-7261-4698-bf20-88ca5c826889_ReleveMensuel_Mai,154.04,535.1099999999999,-381.06999999999994
a13a6613-da2d-48b7-96ef-412ba5a88af0_Factures_Clemence_,71.34,39.0,32.34
78ec53bb-a4c5-469f-a4d0-f42db4cf9b11_CF_1697735,64.48,59.88,4.600000000000001
2dbb4025-f570-49f9-83d1-08aedb2b122d_lunettes_Lou-Ann,213.4,253.0,-39.599999999999994
3fe044b5-fd6a-4f5c-accc-ce7b987575a8_IMG_6817,98.61,0.0,98.61
82ac654c-54d4-401f-a006-96d9e46531fe_Facture_ostheo_JEAN,40.0,60.0,-20.0
605bfa50-15ce-48a0-87ec-201c3aa0557a_lunette_auregane_daden_001,627.9,557.7,70.19999999999993
43666807-3eb2-40b9-bdf6-94d4fe31b71e_factures,147.0,105.0,42.0
9c1cc24a-5f7e-42ef-998d-c813a686a7b5_549D8459-524A-4A5C-9612-09EEA1ADDB58,77.61,0.0,77.61
Facture des lentilles de contact-27693842,130.0,150.0,-20.0
626c99a4-986b-401f-b91e-9b6c0f15cce6_Commande_n100691223,39.51,43.9,-4.390000000000001
1 source_image total_billed sum_item_amount diff
2 74441931-f8d0-4cb0-8eb5-df4147a72bbe_mgp 71.9 0.0 71.9
3 Facture des lentilles de contact-27718628 201.52 223.92 -22.399999999999977
4 7f084bf4-357d-452d-bb4c-76bff332ea0c_IMG_7791 78.43 0.0 78.43
5 6eeacb70-27be-40dd-9511-522025b459a3_20241226_080214 65.5 65.05000000000001 0.44999999999998863
6 Facture ostéopathe-1066603 45.0 65.0 -20.0
7 fa95b732-7a88-4fea-a8e7-9975dbbc69a8_Facture_0122202407740700218 238.03 218.03000000000003 19.99999999999997
8 cc0c0b33-1a94-469b-bd88-ca534e257d33_Osteo 60.0 80.0 -20.0
9 32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337 92.4 75.72 16.680000000000007
10 e997eddb-05a4-49f9-a7fd-82b48c2694b3_IMG_OPHTALMOLOGIE_20250117_0001 119.48 0.0 119.48
11 c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo 120.0 0.0 120.0
12 c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo 20.8 0.0 20.8
13 edb77e5c-ea68-4bad-a177-1256a3bafc9c_CF_1686176 64.48 59.88 4.600000000000001
14 Facture ostéopathe-26112640 66.0 65.0 1.0
15 1498c5f5-22cf-41d4-87f0-9b295ff481f4_IMG_5659 50.0 41.41 8.590000000000003
16 Facture ostéopathe-25449739 70.0 60.0 10.0
17 4fa21bd9-393e-41d4-9af2-bf42004f4e94_image 15.93 14.48 1.4499999999999993
18 895777f3-4478-4e8d-a616-d498850d1523_factures-lunettes_Tess 41.0 79.0 -38.0
19 6f544990-74c6-4c7e-8a25-08eb3f9138c8_RemboursementSoins01082024_1 24.98 41.41 -16.429999999999996
20 9901adc0-96d4-4cfd-a028-8286fd1f7841_Fre_Ophtalmo 70.69 72.69 -2.0
21 5c4353b0-55a4-4687-9744-d1a6da183abd_facture_lentilles_de_contact 78.98 65.82 13.16000000000001
22 598221c3-d0b3-403a-a261-c68cbe56b453_facture_ophtalmo 44.0 88.0 -44.0
23 803f61ed-759c-4773-90f2-d8737ef911ab_image 115.0 0.0 115.0
24 8c8c6ff8-8e9c-49fc-b131-1dce75bcdfc2_Facture_FA1947_04_02_2025 70.0 58.33 11.670000000000002
25 e6272522-cc2a-44b0-af14-9f54d1a76a59_Facture_lunettes_ 691.62 1253.62 -561.9999999999999
26 8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes 262.0 257.0 5.0
27 47399c82-030f-4904-b8f4-2c3dc7c46723_image 77.61 0.0 77.61
28 e0f0eab0-f98c-4b74-95f2-bfc61ad76d28_Ophtalmo_Isa_01-24 76.0 0.0 76.0
29 DDE prestation Facture des lentilles de contact-26736761 78.0 76.0 2.0
30 8ed22fd8-18ae-4c54-93ae-2f5cd4ec2af6_17375530503755104210735675998866 73.43 0.0 73.43
31 7b830a57-2131-479c-bf31-1673e7308903_invoice_2025_1_31 75.95 59.96 15.990000000000002
32 0a26adda-beef-4977-966c-12efc73f1d15_20250129_190625 74.61 0.0 74.61
33 bedf599f-99db-4613-aa22-17d52690c34c_doc00194520240521104544 95.29 0.0 95.29
34 ee2bacc2-7a66-4adf-b4ff-95fc5c13a2da_20250213_112821 10.26 9.629999999999999 0.6300000000000008
35 172442503141724-04-08_recu_kine_Suz 66.12 0.0 66.12
36 8019accc-33b4-4f20-95eb-3ff1e1d4db0b_nnn 127.77 0.0 127.77
37 Facture des lentilles de contact-27700403 41.2 41.8 -0.5999999999999943
38 9c2763f2-fb0c-4fe4-be38-6f94fba64162_optical_facture_lunettes_apres_accident 551.58 620.5799999999999 -68.99999999999989
39 1724397366294irm 252.72 0.0 252.72
40 209e4abe-4973-4fd3-83cc-64f940fb7372_facture_ophtalmologue 72.63 0.0 72.63
41 e07571f8-3ba4-46fc-a37e-53bd6dd965c7_IMG20250123190152 167.0 174.65 -7.650000000000006
42 fecefa42-3451-496b-bcb5-d5ebd4cdd8da_invoice_2024_10_14 195.92 163.28 32.639999999999986
43 44e87f9e-a4e2-4851-b383-e1401b36e853_image 118.14 0.0 118.14
44 96be3553-7261-4698-bf20-88ca5c826889_ReleveMensuel_Mai 154.04 535.1099999999999 -381.06999999999994
45 a13a6613-da2d-48b7-96ef-412ba5a88af0_Factures_Clemence_ 71.34 39.0 32.34
46 78ec53bb-a4c5-469f-a4d0-f42db4cf9b11_CF_1697735 64.48 59.88 4.600000000000001
47 2dbb4025-f570-49f9-83d1-08aedb2b122d_lunettes_Lou-Ann 213.4 253.0 -39.599999999999994
48 3fe044b5-fd6a-4f5c-accc-ce7b987575a8_IMG_6817 98.61 0.0 98.61
49 82ac654c-54d4-401f-a006-96d9e46531fe_Facture_ostheo_JEAN 40.0 60.0 -20.0
50 605bfa50-15ce-48a0-87ec-201c3aa0557a_lunette_auregane_daden_001 627.9 557.7 70.19999999999993
51 43666807-3eb2-40b9-bdf6-94d4fe31b71e_factures 147.0 105.0 42.0
52 9c1cc24a-5f7e-42ef-998d-c813a686a7b5_549D8459-524A-4A5C-9612-09EEA1ADDB58 77.61 0.0 77.61
53 Facture des lentilles de contact-27693842 130.0 150.0 -20.0
54 626c99a4-986b-401f-b91e-9b6c0f15cce6_Commande_n100691223 39.51 43.9 -4.390000000000001

View File

@@ -0,0 +1,188 @@
# Label Analysis Report
Input: `008_label_data_sample_seed_1997.json`
## Overview
- Total records: 1232
- Total labels (flattened): 1263
- is_bill distribution: {True: 1124, False: 139}
- bill_paid distribution: {False: 68, True: 1015, None: 180}
- Invoice dates span: 2012-04-17 .. 2025-06-12
- Unique year-month pairs: 63
## Professions (top)
- Ostéopathe: 371
- Ostéopathie: 295
- Optique: 228
- (missing): 119
- Psychologue: 67
- Chiropractie: 57
- Unknown: 20
- Kinésithérapie: 16
- Sophrologie: 8
- Podologue: 8
- Hypnothérapie: 7
- Pharmacie: 7
- Sophrologue: 6
- Ophtalmologie: 6
- Réflexologie: 5
- Radiologie: 5
- Étiopathie: 4
- Sage-femme: 3
- Psychologie: 3
- Soins hospitalier: 3
- Naturopathie: 2
- Addictologie: 2
- Etiopathie: 2
- Kinésiologie: 2
- Diététicienne: 2
- Étiopathe: 2
- Etiopathe: 2
- Psychomotricité: 1
- Homéopathie: 1
- Kinésiologue: 1
- Optique hay Ophtalmologue???: 1
- Médecine du sport: 1
- Otique: 1
- Biologie: 1
- Chiropratie: 1
- Chirurgie dentaire: 1
- Diététique: 1
- Audiopathe: 1
## Currency distribution
- EUR: 1135
- F: 2
## Identifier and key field presence
- adeli_number: 898 present
- rpps_number: 182 present
- finess_number: 139 present
- prescripteur_finess_number: 41 present
- doctor_name: 1040 present
- invoice_issuer: 1120 present
- insured_name: 208 present
- beneficiary_name: 1093 present
- security_number: 492 present
- currency: 1137 present
## Flags
- is_handwriting: {False: 327, None: 880, True: 56}
- is_rotated: {False: 358, None: 879, True: 26}
## Numeric summaries
- total_billed: {'count': 1130, 'min': 9.9, 'p25': 55.0, 'median': 60.0, 'p75': 70.0, 'max': 8000.0, 'mean': 105.40392920353982, 'sum': 119106.44, 'missing': 133}
- amount_paid: {'count': 1011, 'min': 0.0, 'p25': 50.0, 'median': 60.0, 'p75': 66.5, 'max': 8000.0, 'mean': 98.68897131552917, 'sum': 99774.55, 'missing': 252}
- remaining_payment: {'count': 247, 'min': 0.0, 'p25': 0.0, 'median': 0.0, 'p75': 0.0, 'max': 204.06, 'mean': 2.793765182186235, 'sum': 690.06, 'missing': 1016}
- client_part: {'count': 145, 'min': 0.0, 'p25': 26.44, 'median': 48.77, 'p75': 90.0, 'max': 1420.0, 'mean': 99.44468965517241, 'sum': 14419.480000000003, 'missing': 1118}
- mandatory_coverage: {'count': 137, 'min': 0.0, 'p25': 0.09, 'median': 27.63, 'p75': 48.55, 'max': 1232.47, 'mean': 43.21014598540146, 'sum': 5919.790000000002, 'missing': 1126}
- complementary_coverage: {'count': 93, 'min': 0.0, 'p25': 0.0, 'median': 0.0, 'p75': 90.0, 'max': 499.91, 'mean': 63.8452688172043, 'sum': 5937.61, 'missing': 1170}
## Items analysis
- Items per label: count=1263, min=0, max=10, mean=1.25
- total_billed vs sum(items.amount) mismatches: 53
## Data quality issues (sample)
- Facture médecine douce-27776417: item[0].quantity missing
- 551dd33d-0011-4887-b115-4ddf28ee0e2f_fact_barret_l_2024: item[0].quantity missing
- 551dd33d-0011-4887-b115-4ddf28ee0e2f_fact_barret_l_2024: item[1].quantity missing
- 551dd33d-0011-4887-b115-4ddf28ee0e2f_fact_barret_l_2024: item[2].quantity missing
- 551dd33d-0011-4887-b115-4ddf28ee0e2f_fact_barret_l_2024: item[3].quantity missing
- 551dd33d-0011-4887-b115-4ddf28ee0e2f_fact_barret_l_2024: item[4].quantity missing
- 551dd33d-0011-4887-b115-4ddf28ee0e2f_fact_barret_l_2024: item[5].quantity missing
- Facture médecine douce-27640153: item[0].quantity missing
- Facture médecine douce-27640153: item[1].quantity missing
- 1724397366229Facture_RIVALLANDChrystelle_20240413ICQO: bill_paid True but amount_paid missing
- Facture ostéopathe-25417095: bill_paid True but remaining_payment > 0
- Facture ostéopathe-GED N-R-2323015: item[0].quantity missing
- 74441931-f8d0-4cb0-8eb5-df4147a72bbe_mgp: item[0].quantity missing
- 74441931-f8d0-4cb0-8eb5-df4147a72bbe_mgp: currency missing for bill
- 74441931-f8d0-4cb0-8eb5-df4147a72bbe_mgp: currency missing for bill
- 1724658126141JACOB_Francois_2024-111: item[0].quantity missing
- Facture des lentilles de contact-27559701: item[5].amount negative: -6.67
- 91c41171-ac88-4ce4-8f15-48c4ad2c5aa2_Devis_lunette: item[0].quantity missing
- 0252b5fb-bc84-4fca-bfa7-483ac611885a_Scan_0115: item[0].quantity missing
- 0252b5fb-bc84-4fca-bfa7-483ac611885a_Scan_0115: item[1].quantity missing
- 7f084bf4-357d-452d-bb4c-76bff332ea0c_IMG_7791: item[0].quantity missing
- 7f084bf4-357d-452d-bb4c-76bff332ea0c_IMG_7791: item[1].quantity missing
- 70c3e7f5-405b-49d8-a73c-dae83beafb59_Facture_ophtalmo: item[0].quantity missing
- 70c3e7f5-405b-49d8-a73c-dae83beafb59_Facture_ophtalmo: item[1].quantity missing
- 70c3e7f5-405b-49d8-a73c-dae83beafb59_Facture_ophtalmo: item[2].quantity missing
- Facture médecine douce-27776613: item[0].quantity missing
- 6eeacb70-27be-40dd-9511-522025b459a3_20241226_080214: item[0].quantity missing
- 6eeacb70-27be-40dd-9511-522025b459a3_20241226_080214: item[1].quantity missing
- 1724399050339FACTURE_132120424_MME_RONDIN_MAHEVA: item[0].quantity missing
- ec117b21-9348-4a76-9a22-2bae87639392_facture_du_14.02_Tony: item[0].quantity missing
- ec117b21-9348-4a76-9a22-2bae87639392_facture_du_14.02_Tony: item[1].quantity missing
- Facture ostéopathe-25979892: item[0].quantity missing
- bf09a877-0705-4c79-b908-6e8da44e44c7_17490641879424403676372514736136: item[0].quantity missing
- bf09a877-0705-4c79-b908-6e8da44e44c7_17490641879424403676372514736136: item[1].quantity missing
- d4f310c8-3bcf-4bb5-bf53-27ad74d66c1e_FACTURE_OPTICIEN_OPHTALMO: item[0].quantity missing
- DDE prestation Facture des lentilles de contact-26740934: item[0].quantity missing
- 45ccffcd-5fe8-418b-80c2-894086de9087_facture_ophtalmo_Fred_: item[0].quantity missing
- 45ccffcd-5fe8-418b-80c2-894086de9087_facture_ophtalmo_Fred_: item[1].quantity missing
- Facture ostéopathe-26626551: item[0].quantity missing
- 27ddc814-9239-4944-951a-fdd8a48c5926_IMG_20240922_0001: item[0].quantity missing
- 27ddc814-9239-4944-951a-fdd8a48c5926_IMG_20240922_0001: item[1].quantity missing
- 27ddc814-9239-4944-951a-fdd8a48c5926_IMG_20240922_0001: item[2].quantity missing
- 27ddc814-9239-4944-951a-fdd8a48c5926_IMG_20240922_0001: item[3].quantity missing
- 8eceb56a-b571-4ab6-a64e-668db6bf4ad5_chiropracteur_fevrier_25: item[0].quantity missing
- Facture des lentilles de contact-27576495: item[2].quantity missing
- 32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337: item[0].quantity missing
- 32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337: item[1].quantity missing
- 32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337: item[2].quantity missing
- a5bd8b97-a2a8-49ae-900d-0673d2f96637_quittance_optique_: item[0].quantity missing
- e997eddb-05a4-49f9-a7fd-82b48c2694b3_IMG_OPHTALMOLOGIE_20250117_0001: item[0].quantity missing
## Plots
- is_bill
![](plots/is_bill.png)
- bill_paid
![](plots/bill_paid.png)
- is_handwriting
![](plots/is_handwriting.png)
- is_rotated
![](plots/is_rotated.png)
- professions_top20
![](plots/professions_top20.png)
- currency
![](plots/currency.png)
- invoice_year_month
![](plots/invoice_year_month.png)
- items_per_label
![](plots/items_per_label.png)
- hist_total_billed
![](plots/hist_total_billed.png)
- hist_amount_paid
![](plots/hist_amount_paid.png)
- hist_remaining_payment
![](plots/hist_remaining_payment.png)
- hist_client_part
![](plots/hist_client_part.png)
- hist_mandatory_coverage
![](plots/hist_mandatory_coverage.png)
- hist_complementary_coverage
![](plots/hist_complementary_coverage.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

View File

@@ -0,0 +1,39 @@
profession,count
Ostéopathe,371
Ostéopathie,295
Optique,228
(missing),119
Psychologue,67
Chiropractie,57
Unknown,20
Kinésithérapie,16
Sophrologie,8
Podologue,8
Hypnothérapie,7
Pharmacie,7
Sophrologue,6
Ophtalmologie,6
Réflexologie,5
Radiologie,5
Étiopathie,4
Sage-femme,3
Psychologie,3
Soins hospitalier,3
Naturopathie,2
Addictologie,2
Etiopathie,2
Kinésiologie,2
Diététicienne,2
Étiopathe,2
Etiopathe,2
Psychomotricité,1
Homéopathie,1
Kinésiologue,1
Optique hay Ophtalmologue???,1
Médecine du sport,1
Otique,1
Biologie,1
Chiropratie,1
Chirurgie dentaire,1
Diététique,1
Audiopathe,1
1 profession count
2 Ostéopathe 371
3 Ostéopathie 295
4 Optique 228
5 (missing) 119
6 Psychologue 67
7 Chiropractie 57
8 Unknown 20
9 Kinésithérapie 16
10 Sophrologie 8
11 Podologue 8
12 Hypnothérapie 7
13 Pharmacie 7
14 Sophrologue 6
15 Ophtalmologie 6
16 Réflexologie 5
17 Radiologie 5
18 Étiopathie 4
19 Sage-femme 3
20 Psychologie 3
21 Soins hospitalier 3
22 Naturopathie 2
23 Addictologie 2
24 Etiopathie 2
25 Kinésiologie 2
26 Diététicienne 2
27 Étiopathe 2
28 Etiopathe 2
29 Psychomotricité 1
30 Homéopathie 1
31 Kinésiologue 1
32 Optique hay Ophtalmologue??? 1
33 Médecine du sport 1
34 Otique 1
35 Biologie 1
36 Chiropratie 1
37 Chirurgie dentaire 1
38 Diététique 1
39 Audiopathe 1

View File

@@ -0,0 +1,4 @@
bill_paid,count
False,74
True,1011
,174
1 bill_paid count
2 False 74
3 True 1011
4 174

View File

@@ -0,0 +1,3 @@
currency,count
EUR,1137
F,2
1 currency count
2 EUR 1137
3 F 2

View File

@@ -0,0 +1,11 @@
field,present_count
adeli_number,902
rpps_number,179
finess_number,133
prescripteur_finess_number,42
doctor_name,1051
invoice_issuer,1122
insured_name,203
beneficiary_name,1098
security_number,494
currency,1139
1 field present_count
2 adeli_number 902
3 rpps_number 179
4 finess_number 133
5 prescripteur_finess_number 42
6 doctor_name 1051
7 invoice_issuer 1122
8 insured_name 203
9 beneficiary_name 1098
10 security_number 494
11 currency 1139

View File

@@ -0,0 +1,3 @@
is_bill,count
True,1126
False,133
1 is_bill count
2 True 1126
3 False 133

277
filter/check_009/issues.csv Normal file
View File

@@ -0,0 +1,277 @@
source,issue
eedda33e-049b-4ab8-aee8-6f5d0c88b500_IMG_0358,item[0].quantity missing
eedda33e-049b-4ab8-aee8-6f5d0c88b500_IMG_0358,item[1].quantity missing
e72e49e0-7891-4dc8-b62f-40c7bf6252a4_Nuria_Ravier_Ophtalomologiste,item[0].quantity missing
e72e49e0-7891-4dc8-b62f-40c7bf6252a4_Nuria_Ravier_Ophtalomologiste,item[0].quantity missing
Facture ostéopathe-25417096,item[0].quantity missing
eb5561dd-937b-4c0b-b6c6-56da8b528c94_facture_vision_claire_ophtalmo_1_001,item[0].quantity missing
6f544990-74c6-4c7e-8a25-08eb3f9138c8_RemboursementSoins01082024_1,item[0].quantity missing
6f544990-74c6-4c7e-8a25-08eb3f9138c8_RemboursementSoins01082024_1,item[1].quantity missing
1150ac6a-abdc-409d-b7ca-296e7b35769c_Facture_BOLZERJean_Francois_20250131GMAM,item[0].quantity missing
Facture ostéopathe-26738638,item[0].quantity missing
34162b51-6c3f-4dcc-a18a-d6b9e45e4f22_Recu_ophtalmo_Cadet_Corine_2025-03-09,bill_paid True but remaining_payment > 0
34162b51-6c3f-4dcc-a18a-d6b9e45e4f22_Recu_ophtalmo_Cadet_Corine_2025-03-09,item[0].quantity missing
34162b51-6c3f-4dcc-a18a-d6b9e45e4f22_Recu_ophtalmo_Cadet_Corine_2025-03-09,item[1].quantity missing
abff81b4-d895-47d5-b3d4-93da48f5c1e6_20241212_172044,item[0].quantity missing
abff81b4-d895-47d5-b3d4-93da48f5c1e6_20241212_172044,item[1].quantity missing
2c75bd51-e61c-452e-b19b-494fa70e9cc9_Facture_lentilles_janvier_2024,item[4].amount negative: -2.9
2c75bd51-e61c-452e-b19b-494fa70e9cc9_Facture_lentilles_janvier_2024,item[5].amount negative: -3.0
Facture ostéopathe-26605349,item[0].quantity missing
Facture médecine douce-27702698,item[0].quantity missing
6221379e-7344-4868-9ee0-04f2c4e26874_consultation_ophtalmo27janvier2025BEAUPERINyann,item[0].quantity missing
f55f9121-499d-4c25-b79b-464413d7ca6c_Quittance_Ophtalmologue,item[0].quantity missing
f55f9121-499d-4c25-b79b-464413d7ca6c_Quittance_Ophtalmologue,item[0].quantity missing
62b45277-a437-48c6-af52-d1814f23434f_17460042180346042803920585280783,item[0].quantity missing
62b45277-a437-48c6-af52-d1814f23434f_17460042180346042803920585280783,item[1].quantity missing
Facture ostéopathe-25847017,bill_paid True but remaining_payment > 0
02358c4c-820a-409f-9489-a75f22af3f32_image,item[0].quantity missing
02358c4c-820a-409f-9489-a75f22af3f32_image,item[1].quantity missing
7ef7306d-400e-4a56-b31c-02237212c470_Scan,item[0].quantity missing
7ef7306d-400e-4a56-b31c-02237212c470_Scan,item[1].quantity missing
f482ebef-e885-4627-a927-96ad54ab5aa0_Facture,item[0].quantity missing
f482ebef-e885-4627-a927-96ad54ab5aa0_Facture,item[1].quantity missing
f482ebef-e885-4627-a927-96ad54ab5aa0_Facture,item[3].quantity missing
f482ebef-e885-4627-a927-96ad54ab5aa0_Facture,item[4].quantity missing
f482ebef-e885-4627-a927-96ad54ab5aa0_Facture,item[6].quantity missing
f482ebef-e885-4627-a927-96ad54ab5aa0_Facture,item[7].quantity missing
f482ebef-e885-4627-a927-96ad54ab5aa0_Facture,item[8].quantity missing
f482ebef-e885-4627-a927-96ad54ab5aa0_Facture,item[9].quantity missing
f482ebef-e885-4627-a927-96ad54ab5aa0_Facture,item[11].quantity missing
Facture ostéopathe-26610949,item[0].quantity missing
8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes,item[0].quantity missing
8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes,item[1].quantity missing
8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes,item[2].quantity missing
8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes,item[3].quantity missing
8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes,item[4].quantity missing
bf09a877-0705-4c79-b908-6e8da44e44c7_17490641879424403676372514736136,item[0].quantity missing
bf09a877-0705-4c79-b908-6e8da44e44c7_17490641879424403676372514736136,item[1].quantity missing
17b264a2-4881-49a4-8326-48ace17dd86f_factures_ophtalmo,item[0].quantity missing
17b264a2-4881-49a4-8326-48ace17dd86f_factures_ophtalmo,item[1].quantity missing
17b264a2-4881-49a4-8326-48ace17dd86f_factures_ophtalmo,item[0].quantity missing
e566a3b0-cc99-4c4d-8715-9f3be841a066_noname,item[0].quantity missing
e566a3b0-cc99-4c4d-8715-9f3be841a066_noname,item[1].quantity missing
c6013936-5850-4027-9f61-32c30486e6d5_optique,item[0].quantity missing
c6013936-5850-4027-9f61-32c30486e6d5_optique,item[1].quantity missing
47399c82-030f-4904-b8f4-2c3dc7c46723_image,item[0].quantity missing
47399c82-030f-4904-b8f4-2c3dc7c46723_image,item[1].quantity missing
57188e7d-280a-4f94-9d7d-6af62ede30ed_lunettes,item[0].quantity missing
209e4abe-4973-4fd3-83cc-64f940fb7372_facture_ophtalmologue,item[0].quantity missing
209e4abe-4973-4fd3-83cc-64f940fb7372_facture_ophtalmologue,item[1].quantity missing
85120394-0ea3-4a2c-b0d4-11b0fe31a4e7_20250213_145033,item[0].quantity missing
85120394-0ea3-4a2c-b0d4-11b0fe31a4e7_20250213_145033,item[1].quantity missing
Facture ostéopathe-26972680,item[0].quantity missing
Facture médecine douce-27784971,item[0].quantity missing
8de5aacb-e142-4321-aaaf-c4179f031d7a_20240810152224_001,item[0].quantity missing
8de5aacb-e142-4321-aaaf-c4179f031d7a_20240810152224_001,item[1].quantity missing
8de5aacb-e142-4321-aaaf-c4179f031d7a_20240810152224_001,item[2].quantity missing
Facture ostéopathe-26479073,item[0].quantity missing
b5cfbf34-f15b-4f2e-bbe9-e83c86549d98_FACTURE_OPHTALMO,item[0].quantity missing
b5cfbf34-f15b-4f2e-bbe9-e83c86549d98_FACTURE_OPHTALMO,item[1].quantity missing
43666807-3eb2-40b9-bdf6-94d4fe31b71e_factures,item[0].quantity missing
43666807-3eb2-40b9-bdf6-94d4fe31b71e_factures,item[1].quantity missing
43666807-3eb2-40b9-bdf6-94d4fe31b71e_factures,item[2].quantity missing
70e53730-c41c-402b-a227-2262cdd9fa7b_osteo_Laurette,item[0].quantity missing
1724226151795facture_du_30_mars_2024,item[0].quantity missing
Facture médecine douce-27688568,bill_paid True but amount_paid missing
Facture ostéopathe-26626551,item[0].quantity missing
Facture des lentilles de contact-27559701,item[5].amount negative: -6.67
Facture des lentilles de contact-27601451,item[0].quantity missing
Facture des lentilles de contact-27601451,item[1].quantity missing
Facture des lentilles de contact-27680116,item[0].quantity missing
Facture des lentilles de contact-27680116,item[1].quantity missing
Facture médecine douce-27640153,item[0].quantity missing
Facture médecine douce-27640153,item[1].quantity missing
Facture des lentilles de contact-27653858,item[4].amount negative: -2.9
Facture des lentilles de contact-27653858,item[5].amount negative: -3.0
Facture des lentilles de contact-27545715,item[1].quantity missing
ed44bada-dfae-4ab1-b810-e47cec83e3d9_PXL_20250206_222803759.MP,item[0].quantity missing
f6fc955d-e941-4a94-892b-ffebcfbb949a_image,item[0].quantity missing
f6fc955d-e941-4a94-892b-ffebcfbb949a_image,item[1].quantity missing
f6fc955d-e941-4a94-892b-ffebcfbb949a_image,item[2].quantity missing
252c4ad4-8fa3-4ed1-9508-ee77f6dce6fe_img20250206_20040851,item[0].quantity missing
c53ffdcc-0ee6-4bf2-8c43-923c5471310f_IMG_7285,item[0].quantity missing
c53ffdcc-0ee6-4bf2-8c43-923c5471310f_IMG_7285,item[1].quantity missing
d8203a60-049f-4f78-befd-556987e766d7_Facture_Mme_GLACON_Adeline,item[0].quantity missing
d8203a60-049f-4f78-befd-556987e766d7_Facture_Mme_GLACON_Adeline,item[1].quantity missing
821b6297-8c00-4f88-89a7-a9213c38c3e8_JEAN_PIERRE_001,item[0].quantity missing
821b6297-8c00-4f88-89a7-a9213c38c3e8_JEAN_PIERRE_001,item[1].quantity missing
b442261a-d504-4cda-98cd-e22a6875bfd0_M._ZIMMER_2401,item[0].quantity missing
819f6faf-d9f3-4668-9000-e414d92c7f41_ROYER_LUDIVINE_FACTURE_OPHTALMO,item[0].quantity missing
819f6faf-d9f3-4668-9000-e414d92c7f41_ROYER_LUDIVINE_FACTURE_OPHTALMO,item[1].quantity missing
Facture ostéopathe-25152747,bill_paid True but amount_paid missing
DDE prestation Facture des lentilles de contact-26705902,item[3].amount negative: -3.0
Facture ostéopathe-26750142,item[0].quantity missing
9934f5be-de66-495a-a478-f34e4ced1fa5_Facture_lunettes_Emnah,item[0].quantity missing
9934f5be-de66-495a-a478-f34e4ced1fa5_Facture_lunettes_Emnah,item[1].quantity missing
9934f5be-de66-495a-a478-f34e4ced1fa5_Facture_lunettes_Emnah,item[2].quantity missing
9934f5be-de66-495a-a478-f34e4ced1fa5_Facture_lunettes_Emnah,item[3].quantity missing
9934f5be-de66-495a-a478-f34e4ced1fa5_Facture_lunettes_Emnah,item[4].quantity missing
9934f5be-de66-495a-a478-f34e4ced1fa5_Facture_lunettes_Emnah,item[5].quantity missing
e997eddb-05a4-49f9-a7fd-82b48c2694b3_IMG_OPHTALMOLOGIE_20250117_0001,item[0].quantity missing
fa25423e-b79c-48f9-89ae-32ffd95e3101_Facture_Ophtalmologie,item[0].quantity missing
91c41171-ac88-4ce4-8f15-48c4ad2c5aa2_Devis_lunette,item[0].quantity missing
DDE prestation Facture des lentilles de contact-26736761,item[0].quantity missing
DDE prestation Facture des lentilles de contact-26736761,item[1].quantity missing
Facture ostéopathe-26077624,item[0].quantity missing
Facture médecine douce-27701986,item[0].quantity missing
801fa72b-9dba-4852-9378-3b69ea925679_17354854480549213702943309634816,item[0].quantity missing
Facture médecine douce-27784881,item[0].quantity missing
d3ef8b3d-b78f-4455-b2d6-1c9ef9ec5e60_Quittance_Ophtalmologue,item[0].quantity missing
d3ef8b3d-b78f-4455-b2d6-1c9ef9ec5e60_Quittance_Ophtalmologue,item[0].quantity missing
Facture des lentilles de contact-27654482,item[3].amount negative: -5.9
Facture des lentilles de contact-27654482,item[4].amount negative: -17.38
Facture médecine douce-27784857,item[0].quantity missing
DDE prestation Facture des lentilles de contact-26729570,item[0].quantity missing
1724156677847Facture_osteophate_13_08_2024_POIGNANT_Thierry,item[0].quantity missing
5cf26866-c1ae-4dfd-8793-54ef5148224c_FACTURE_OSTEO_SILLON_DU_22-11-2024,item[0].quantity missing
Facture ostéopathe-26300731,item[0].quantity missing
Facture ostéopathe-26300731,item[1].quantity missing
Facture ostéopathe-26300731,item[2].quantity missing
dc4e7302-925d-438f-82d5-e78510d858c5_7447113,item[3].amount negative: -5.9
dc4e7302-925d-438f-82d5-e78510d858c5_7447113,item[4].amount negative: -5.0
Facture ostéopathe-25089174,item[0].quantity missing
d9e1cb2a-b44b-4cc8-b07a-030ddf3acd28_Ordonnance_lentilles_Mary,bill_paid True but amount_paid missing
1724658376437factosteo,item[0].quantity missing
Facture des lentilles de contact-27708923,item[0].quantity missing
b46e8411-29d3-44b6-ae65-55f11bf360bd_FACTURE_OCULISTE_JANE,item[0].quantity missing
b46e8411-29d3-44b6-ae65-55f11bf360bd_FACTURE_OCULISTE_JANE,item[1].quantity missing
b46e8411-29d3-44b6-ae65-55f11bf360bd_FACTURE_OCULISTE_JANE,item[2].quantity missing
27c16ad0-3309-4eb1-9432-ab8a546fee7c_osteo,currency missing for bill
c2009b55-58d4-411f-a25a-3dc1e32e4a89_facture_lentille,item[3].amount negative: -3.0
25f19f18-b19d-4e1e-b105-349dd1584c81_75109795868__1FEA46AA-A04E-44AF-9748-541DE3F7B438,item[0].quantity missing
25f19f18-b19d-4e1e-b105-349dd1584c81_75109795868__1FEA46AA-A04E-44AF-9748-541DE3F7B438,item[1].quantity missing
1724399050339FACTURE_132120424_MME_RONDIN_MAHEVA,item[0].quantity missing
64fa4c19-efa4-48f1-acf8-8c2e8f573b8b_Facture_osteopathe_,item[0].quantity missing
c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo,item[0].quantity missing
c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo,item[1].quantity missing
c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo,item[0].quantity missing
bae2e636-32c5-4b2c-b2d2-a7b28b30760f_KM_C250i24082011140,item[0].quantity missing
bae2e636-32c5-4b2c-b2d2-a7b28b30760f_KM_C250i24082011140,item[1].quantity missing
e0f0eab0-f98c-4b74-95f2-bfc61ad76d28_Ophtalmo_Isa_01-24,item[0].quantity missing
e0f0eab0-f98c-4b74-95f2-bfc61ad76d28_Ophtalmo_Isa_01-24,item[1].quantity missing
Facture des lentilles de contact-27647325,item[0].quantity missing
1724399050380osteo_Lina,item[0].quantity missing
70c3e7f5-405b-49d8-a73c-dae83beafb59_Facture_ophtalmo,item[0].quantity missing
70c3e7f5-405b-49d8-a73c-dae83beafb59_Facture_ophtalmo,item[1].quantity missing
70c3e7f5-405b-49d8-a73c-dae83beafb59_Facture_ophtalmo,item[2].quantity missing
66de7232-78a6-46a0-8392-47ec4630ad31_image,item[0].quantity missing
66de7232-78a6-46a0-8392-47ec4630ad31_image,item[1].quantity missing
66de7232-78a6-46a0-8392-47ec4630ad31_image,item[2].quantity missing
0be67d5b-5af6-49ba-8851-d3976f9920a0_Facture_optalmo_Emma_PINSARD,item[0].quantity missing
0be67d5b-5af6-49ba-8851-d3976f9920a0_Facture_optalmo_Emma_PINSARD,item[1].quantity missing
b79c0ed4-4126-4ff5-86a8-0348cd1c308c_IMG_0048,item[0].quantity missing
b79c0ed4-4126-4ff5-86a8-0348cd1c308c_IMG_0048,item[1].quantity missing
b79c0ed4-4126-4ff5-86a8-0348cd1c308c_IMG_0048,item[2].quantity missing
Facture ostéopathe-26252579,item[0].quantity missing
Facture ostéopathe-26252579,item[1].quantity missing
Facture ostéopathe-26252579,item[2].quantity missing
Facture ostéopathe-26252579,item[3].quantity missing
a5bd8b97-a2a8-49ae-900d-0673d2f96637_quittance_optique_,item[0].quantity missing
8b6539db-21b4-41dc-a27f-db2cd351fe5f_Doc_34,item[0].quantity missing
172465822585720240416133632216,item[0].quantity missing
Facture médecine douce-27781814,item[0].quantity missing
Facture ostéopathe-26349654,item[0].quantity missing
4950b870-6662-4fcd-a7e9-1fc3abd0fdc9_IMG_20250321_182918,item[0].quantity missing
4950b870-6662-4fcd-a7e9-1fc3abd0fdc9_IMG_20250321_182918,currency missing for bill
cbc7ddff-2ed1-441b-85cb-5c1079588a52_Mes_des_factures,item[0].quantity missing
cbc7ddff-2ed1-441b-85cb-5c1079588a52_Mes_des_factures,item[1].quantity missing
91efe623-7d6b-4a96-8b03-87199c56566a_image,item[0].quantity missing
DDE prestation Facture des lentilles de contact-26705131,item[2].amount negative: -5.0
Facture des lentilles de contact-27620389,item[0].quantity missing
Facture des lentilles de contact-27620389,item[1].quantity missing
2da98e03-19d0-430e-90da-a09706de143b_Facture_Lentilles_Stephanie_Marchenay_,item[0].quantity missing
Facture-quittance toutes spécialités-27648502,item[0].quantity missing
Facture médecine douce-27776613,item[0].quantity missing
DDE prestation Facture des lentilles de contact-26685394,item[0].quantity missing
ec6baa8c-a189-4850-b310-c90bab372cc2_Facture_Krys,bill_paid True but remaining_payment > 0
DDE prestation Facture des lentilles de contact-26772555,item[0].quantity missing
DDE prestation Facture des lentilles de contact-26772555,item[1].quantity missing
Facture des lentilles de contact-27700117,item[0].quantity missing
1724399050308image,item[0].quantity missing
179673c3-7b80-47cb-9467-3425e010905a_ordonnance08.10.2024,item[0].quantity missing
179673c3-7b80-47cb-9467-3425e010905a_ordonnance08.10.2024,item[1].quantity missing
cdea6c95-be16-4d2b-ba78-95ef182d8e63_IMG_20250523_084341,item[0].quantity missing
Facture ostéopathe-25073562,item[0].quantity missing
499639d7-4faa-4d3e-b412-7f75da0b4e01_quercy,item[0].quantity missing
499639d7-4faa-4d3e-b412-7f75da0b4e01_quercy,item[1].quantity missing
Facture ostéopathe-26189649,item[0].quantity missing
Facture psychologie - 27581557,item[0].quantity missing
Facture psychologie - 27581557,item[0].quantity missing
fdaa0d42-8e79-4506-b222-373c88891ff5_notehonoraire__20250212_143947,item[0].quantity missing
92340ad4-27cf-476b-a842-051d0b6a2c9f_IMG_20250619_231842,item[0].quantity missing
Facture ostéopathe-1142513,item[0].quantity missing
Facture ostéopathe-26447822,bill_paid True but amount_paid missing
1724156469365facture_osteo08.24,item[0].quantity missing
1eea4521-e98f-4f41-911b-07ffaf3b52a0_Facture_MGP,item[0].quantity missing
1eea4521-e98f-4f41-911b-07ffaf3b52a0_Facture_MGP,item[1].quantity missing
Facture ostéopathe-26595219,item[0].quantity missing
0aa44c3d-2dc8-47fc-9307-d1485df454c1_20250207152016_001,item[0].quantity missing
Facture ostéopathe-25416514,item[0].quantity missing
Sans titre,item[0].quantity missing
707771f6-bb3b-4e5e-8d7d-acd584a23009_IMG_20240726_142929,item[0].quantity missing
707771f6-bb3b-4e5e-8d7d-acd584a23009_IMG_20240726_142929,item[1].quantity missing
d35e4ea0-6678-4dd1-b0d5-fe905d262430_FACTURE_GAFFE_Thierry,item[0].quantity missing
Facture ostéopathe-25921103,item[0].quantity missing
DDE prestation Facture des lentilles de contact-26764274,item[0].quantity missing
DDE prestation Facture des lentilles de contact-26764274,item[1].quantity missing
1724658376419facture_ostheo_avril_24,item[0].quantity missing
Facture des lentilles de contact-27654407,bill_paid True but amount_paid missing
Facture ostéopathe-26610950,item[0].quantity missing
Facture des lentilles de contact-27668729,item[4].amount negative: -4.9
Facture des lentilles de contact-27668729,item[5].amount negative: -12.8
a05800f6-c1f1-4d50-9598-98e0f90b83f0_17476639221036811513370155179329,item[0].quantity missing
32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337,item[0].quantity missing
32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337,item[1].quantity missing
32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337,item[2].quantity missing
Facture ostéopathe-1119174,item[0].quantity missing
Facture ostéopathe-26298895,item[0].quantity missing
82ac654c-54d4-401f-a006-96d9e46531fe_Facture_ostheo_JEAN,item[0].quantity missing
Facture ostéopathe-26585743,item[0].quantity missing
106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie,item[0].quantity missing
106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie,item[1].quantity missing
106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie,item[2].quantity missing
106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie,item[3].quantity missing
106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie,item[4].quantity missing
106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie,item[5].quantity missing
284cb22c-17ad-409b-8d5f-79e43a6dd51b_Facture_,item[0].quantity missing
fe86f6a8-8360-458e-834c-805ac99350cf_Monsieur_OUEDRAOGO_DAOUDA,item[0].quantity missing
fe86f6a8-8360-458e-834c-805ac99350cf_Monsieur_OUEDRAOGO_DAOUDA,item[1].quantity missing
Facture des lentilles de contact-27576127,item[2].amount negative: -53.0
1724425079263JACOB_Francois_2024-111,item[0].quantity missing
46ddeec5-97bf-4175-b214-b7bd74c4fa24_Renouvin_Ferlicot_Andre,item[0].quantity missing
46ddeec5-97bf-4175-b214-b7bd74c4fa24_Renouvin_Ferlicot_Andre,item[1].quantity missing
0a26adda-beef-4977-966c-12efc73f1d15_20250129_190625,item[0].quantity missing
0a26adda-beef-4977-966c-12efc73f1d15_20250129_190625,item[1].quantity missing
Facture ostéopathe-26699279,item[0].quantity missing
Facture ostéopathe-1216961,bill_paid True but amount_paid missing
Facture ostéopathe-1216961,item[0].quantity missing
Facture ostéopathe-26935993,item[0].quantity missing
1724425079207douilly_6,item[0].quantity missing
Facture ostéopathe-26298310,item[0].quantity missing
8019accc-33b4-4f20-95eb-3ff1e1d4db0b_nnn,item[0].quantity missing
8019accc-33b4-4f20-95eb-3ff1e1d4db0b_nnn,item[1].quantity missing
379ed230-4e27-4f61-9039-226972f26cc9_Factures_Dani_medecin_,item[0].quantity missing
379ed230-4e27-4f61-9039-226972f26cc9_Factures_Dani_medecin_,item[1].quantity missing
b410345a-31de-4397-a896-bc11d97e524c_FACTURE_OPHTALMOLOGISTE,item[0].quantity missing
0268b186-6926-46af-b75f-ba01c02cb647_IMG_20240514_152542,item[0].quantity missing
0bfb5041-2751-421d-b5d5-60d696c361c1_17391960081576654684571490136238,item[0].quantity missing
598221c3-d0b3-403a-a261-c68cbe56b453_facture_ophtalmo,item[0].quantity missing
598221c3-d0b3-403a-a261-c68cbe56b453_facture_ophtalmo,item[1].quantity missing
1724226151831IMG_8005,item[0].quantity missing
c8fa8d11-c2df-4f39-9909-28790acc5957_Factures_opthalmo,item[0].quantity missing
50eeaebf-d552-4a12-92a4-66d185bb992b_facture_optique,item[0].quantity missing
50eeaebf-d552-4a12-92a4-66d185bb992b_facture_optique,item[1].quantity missing
50eeaebf-d552-4a12-92a4-66d185bb992b_facture_optique,item[2].quantity missing
Facture ostéopathe-26744045,item[0].quantity missing
1724425031419Facture_Osteo_20240417,item[0].quantity missing
Facture ostéopathe-25187936,item[0].quantity missing
ec117b21-9348-4a76-9a22-2bae87639392_facture_du_14.02_Tony,item[0].quantity missing
ec117b21-9348-4a76-9a22-2bae87639392_facture_du_14.02_Tony,item[1].quantity missing
Facture ostéopathe-26052732,item[0].quantity missing
de6a66cd-d729-479c-a119-8b9e442702db_Screenshot_20250227_112521_Gallery,item[0].quantity missing
de6a66cd-d729-479c-a119-8b9e442702db_Screenshot_20250227_112521_Gallery,item[1].quantity missing
Facture médecine douce-27709304,item[0].quantity missing
DDE prestation Facture des lentilles de contact-26715605,item[0].quantity missing
Facture médecine douce-27702699,item[0].quantity missing
70546a38-b6d7-4151-b08a-82b01c8e4a98_480755849_2183001178819517_1003204107786000285_n,item[0].quantity missing
1724658298461facture_podologue_alicia,item[0].quantity missing
1 source issue
2 eedda33e-049b-4ab8-aee8-6f5d0c88b500_IMG_0358 item[0].quantity missing
3 eedda33e-049b-4ab8-aee8-6f5d0c88b500_IMG_0358 item[1].quantity missing
4 e72e49e0-7891-4dc8-b62f-40c7bf6252a4_Nuria_Ravier_Ophtalomologiste item[0].quantity missing
5 e72e49e0-7891-4dc8-b62f-40c7bf6252a4_Nuria_Ravier_Ophtalomologiste item[0].quantity missing
6 Facture ostéopathe-25417096 item[0].quantity missing
7 eb5561dd-937b-4c0b-b6c6-56da8b528c94_facture_vision_claire_ophtalmo_1_001 item[0].quantity missing
8 6f544990-74c6-4c7e-8a25-08eb3f9138c8_RemboursementSoins01082024_1 item[0].quantity missing
9 6f544990-74c6-4c7e-8a25-08eb3f9138c8_RemboursementSoins01082024_1 item[1].quantity missing
10 1150ac6a-abdc-409d-b7ca-296e7b35769c_Facture_BOLZERJean_Francois_20250131GMAM item[0].quantity missing
11 Facture ostéopathe-26738638 item[0].quantity missing
12 34162b51-6c3f-4dcc-a18a-d6b9e45e4f22_Recu_ophtalmo_Cadet_Corine_2025-03-09 bill_paid True but remaining_payment > 0
13 34162b51-6c3f-4dcc-a18a-d6b9e45e4f22_Recu_ophtalmo_Cadet_Corine_2025-03-09 item[0].quantity missing
14 34162b51-6c3f-4dcc-a18a-d6b9e45e4f22_Recu_ophtalmo_Cadet_Corine_2025-03-09 item[1].quantity missing
15 abff81b4-d895-47d5-b3d4-93da48f5c1e6_20241212_172044 item[0].quantity missing
16 abff81b4-d895-47d5-b3d4-93da48f5c1e6_20241212_172044 item[1].quantity missing
17 2c75bd51-e61c-452e-b19b-494fa70e9cc9_Facture_lentilles_janvier_2024 item[4].amount negative: -2.9
18 2c75bd51-e61c-452e-b19b-494fa70e9cc9_Facture_lentilles_janvier_2024 item[5].amount negative: -3.0
19 Facture ostéopathe-26605349 item[0].quantity missing
20 Facture médecine douce-27702698 item[0].quantity missing
21 6221379e-7344-4868-9ee0-04f2c4e26874_consultation_ophtalmo27janvier2025BEAUPERINyann item[0].quantity missing
22 f55f9121-499d-4c25-b79b-464413d7ca6c_Quittance_Ophtalmologue item[0].quantity missing
23 f55f9121-499d-4c25-b79b-464413d7ca6c_Quittance_Ophtalmologue item[0].quantity missing
24 62b45277-a437-48c6-af52-d1814f23434f_17460042180346042803920585280783 item[0].quantity missing
25 62b45277-a437-48c6-af52-d1814f23434f_17460042180346042803920585280783 item[1].quantity missing
26 Facture ostéopathe-25847017 bill_paid True but remaining_payment > 0
27 02358c4c-820a-409f-9489-a75f22af3f32_image item[0].quantity missing
28 02358c4c-820a-409f-9489-a75f22af3f32_image item[1].quantity missing
29 7ef7306d-400e-4a56-b31c-02237212c470_Scan item[0].quantity missing
30 7ef7306d-400e-4a56-b31c-02237212c470_Scan item[1].quantity missing
31 f482ebef-e885-4627-a927-96ad54ab5aa0_Facture item[0].quantity missing
32 f482ebef-e885-4627-a927-96ad54ab5aa0_Facture item[1].quantity missing
33 f482ebef-e885-4627-a927-96ad54ab5aa0_Facture item[3].quantity missing
34 f482ebef-e885-4627-a927-96ad54ab5aa0_Facture item[4].quantity missing
35 f482ebef-e885-4627-a927-96ad54ab5aa0_Facture item[6].quantity missing
36 f482ebef-e885-4627-a927-96ad54ab5aa0_Facture item[7].quantity missing
37 f482ebef-e885-4627-a927-96ad54ab5aa0_Facture item[8].quantity missing
38 f482ebef-e885-4627-a927-96ad54ab5aa0_Facture item[9].quantity missing
39 f482ebef-e885-4627-a927-96ad54ab5aa0_Facture item[11].quantity missing
40 Facture ostéopathe-26610949 item[0].quantity missing
41 8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes item[0].quantity missing
42 8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes item[1].quantity missing
43 8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes item[2].quantity missing
44 8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes item[3].quantity missing
45 8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes item[4].quantity missing
46 bf09a877-0705-4c79-b908-6e8da44e44c7_17490641879424403676372514736136 item[0].quantity missing
47 bf09a877-0705-4c79-b908-6e8da44e44c7_17490641879424403676372514736136 item[1].quantity missing
48 17b264a2-4881-49a4-8326-48ace17dd86f_factures_ophtalmo item[0].quantity missing
49 17b264a2-4881-49a4-8326-48ace17dd86f_factures_ophtalmo item[1].quantity missing
50 17b264a2-4881-49a4-8326-48ace17dd86f_factures_ophtalmo item[0].quantity missing
51 e566a3b0-cc99-4c4d-8715-9f3be841a066_noname item[0].quantity missing
52 e566a3b0-cc99-4c4d-8715-9f3be841a066_noname item[1].quantity missing
53 c6013936-5850-4027-9f61-32c30486e6d5_optique item[0].quantity missing
54 c6013936-5850-4027-9f61-32c30486e6d5_optique item[1].quantity missing
55 47399c82-030f-4904-b8f4-2c3dc7c46723_image item[0].quantity missing
56 47399c82-030f-4904-b8f4-2c3dc7c46723_image item[1].quantity missing
57 57188e7d-280a-4f94-9d7d-6af62ede30ed_lunettes item[0].quantity missing
58 209e4abe-4973-4fd3-83cc-64f940fb7372_facture_ophtalmologue item[0].quantity missing
59 209e4abe-4973-4fd3-83cc-64f940fb7372_facture_ophtalmologue item[1].quantity missing
60 85120394-0ea3-4a2c-b0d4-11b0fe31a4e7_20250213_145033 item[0].quantity missing
61 85120394-0ea3-4a2c-b0d4-11b0fe31a4e7_20250213_145033 item[1].quantity missing
62 Facture ostéopathe-26972680 item[0].quantity missing
63 Facture médecine douce-27784971 item[0].quantity missing
64 8de5aacb-e142-4321-aaaf-c4179f031d7a_20240810152224_001 item[0].quantity missing
65 8de5aacb-e142-4321-aaaf-c4179f031d7a_20240810152224_001 item[1].quantity missing
66 8de5aacb-e142-4321-aaaf-c4179f031d7a_20240810152224_001 item[2].quantity missing
67 Facture ostéopathe-26479073 item[0].quantity missing
68 b5cfbf34-f15b-4f2e-bbe9-e83c86549d98_FACTURE_OPHTALMO item[0].quantity missing
69 b5cfbf34-f15b-4f2e-bbe9-e83c86549d98_FACTURE_OPHTALMO item[1].quantity missing
70 43666807-3eb2-40b9-bdf6-94d4fe31b71e_factures item[0].quantity missing
71 43666807-3eb2-40b9-bdf6-94d4fe31b71e_factures item[1].quantity missing
72 43666807-3eb2-40b9-bdf6-94d4fe31b71e_factures item[2].quantity missing
73 70e53730-c41c-402b-a227-2262cdd9fa7b_osteo_Laurette item[0].quantity missing
74 1724226151795facture_du_30_mars_2024 item[0].quantity missing
75 Facture médecine douce-27688568 bill_paid True but amount_paid missing
76 Facture ostéopathe-26626551 item[0].quantity missing
77 Facture des lentilles de contact-27559701 item[5].amount negative: -6.67
78 Facture des lentilles de contact-27601451 item[0].quantity missing
79 Facture des lentilles de contact-27601451 item[1].quantity missing
80 Facture des lentilles de contact-27680116 item[0].quantity missing
81 Facture des lentilles de contact-27680116 item[1].quantity missing
82 Facture médecine douce-27640153 item[0].quantity missing
83 Facture médecine douce-27640153 item[1].quantity missing
84 Facture des lentilles de contact-27653858 item[4].amount negative: -2.9
85 Facture des lentilles de contact-27653858 item[5].amount negative: -3.0
86 Facture des lentilles de contact-27545715 item[1].quantity missing
87 ed44bada-dfae-4ab1-b810-e47cec83e3d9_PXL_20250206_222803759.MP item[0].quantity missing
88 f6fc955d-e941-4a94-892b-ffebcfbb949a_image item[0].quantity missing
89 f6fc955d-e941-4a94-892b-ffebcfbb949a_image item[1].quantity missing
90 f6fc955d-e941-4a94-892b-ffebcfbb949a_image item[2].quantity missing
91 252c4ad4-8fa3-4ed1-9508-ee77f6dce6fe_img20250206_20040851 item[0].quantity missing
92 c53ffdcc-0ee6-4bf2-8c43-923c5471310f_IMG_7285 item[0].quantity missing
93 c53ffdcc-0ee6-4bf2-8c43-923c5471310f_IMG_7285 item[1].quantity missing
94 d8203a60-049f-4f78-befd-556987e766d7_Facture_Mme_GLACON_Adeline item[0].quantity missing
95 d8203a60-049f-4f78-befd-556987e766d7_Facture_Mme_GLACON_Adeline item[1].quantity missing
96 821b6297-8c00-4f88-89a7-a9213c38c3e8_JEAN_PIERRE_001 item[0].quantity missing
97 821b6297-8c00-4f88-89a7-a9213c38c3e8_JEAN_PIERRE_001 item[1].quantity missing
98 b442261a-d504-4cda-98cd-e22a6875bfd0_M._ZIMMER_2401 item[0].quantity missing
99 819f6faf-d9f3-4668-9000-e414d92c7f41_ROYER_LUDIVINE_FACTURE_OPHTALMO item[0].quantity missing
100 819f6faf-d9f3-4668-9000-e414d92c7f41_ROYER_LUDIVINE_FACTURE_OPHTALMO item[1].quantity missing
101 Facture ostéopathe-25152747 bill_paid True but amount_paid missing
102 DDE prestation Facture des lentilles de contact-26705902 item[3].amount negative: -3.0
103 Facture ostéopathe-26750142 item[0].quantity missing
104 9934f5be-de66-495a-a478-f34e4ced1fa5_Facture_lunettes_Emnah item[0].quantity missing
105 9934f5be-de66-495a-a478-f34e4ced1fa5_Facture_lunettes_Emnah item[1].quantity missing
106 9934f5be-de66-495a-a478-f34e4ced1fa5_Facture_lunettes_Emnah item[2].quantity missing
107 9934f5be-de66-495a-a478-f34e4ced1fa5_Facture_lunettes_Emnah item[3].quantity missing
108 9934f5be-de66-495a-a478-f34e4ced1fa5_Facture_lunettes_Emnah item[4].quantity missing
109 9934f5be-de66-495a-a478-f34e4ced1fa5_Facture_lunettes_Emnah item[5].quantity missing
110 e997eddb-05a4-49f9-a7fd-82b48c2694b3_IMG_OPHTALMOLOGIE_20250117_0001 item[0].quantity missing
111 fa25423e-b79c-48f9-89ae-32ffd95e3101_Facture_Ophtalmologie item[0].quantity missing
112 91c41171-ac88-4ce4-8f15-48c4ad2c5aa2_Devis_lunette item[0].quantity missing
113 DDE prestation Facture des lentilles de contact-26736761 item[0].quantity missing
114 DDE prestation Facture des lentilles de contact-26736761 item[1].quantity missing
115 Facture ostéopathe-26077624 item[0].quantity missing
116 Facture médecine douce-27701986 item[0].quantity missing
117 801fa72b-9dba-4852-9378-3b69ea925679_17354854480549213702943309634816 item[0].quantity missing
118 Facture médecine douce-27784881 item[0].quantity missing
119 d3ef8b3d-b78f-4455-b2d6-1c9ef9ec5e60_Quittance_Ophtalmologue item[0].quantity missing
120 d3ef8b3d-b78f-4455-b2d6-1c9ef9ec5e60_Quittance_Ophtalmologue item[0].quantity missing
121 Facture des lentilles de contact-27654482 item[3].amount negative: -5.9
122 Facture des lentilles de contact-27654482 item[4].amount negative: -17.38
123 Facture médecine douce-27784857 item[0].quantity missing
124 DDE prestation Facture des lentilles de contact-26729570 item[0].quantity missing
125 1724156677847Facture_osteophate_13_08_2024_POIGNANT_Thierry item[0].quantity missing
126 5cf26866-c1ae-4dfd-8793-54ef5148224c_FACTURE_OSTEO_SILLON_DU_22-11-2024 item[0].quantity missing
127 Facture ostéopathe-26300731 item[0].quantity missing
128 Facture ostéopathe-26300731 item[1].quantity missing
129 Facture ostéopathe-26300731 item[2].quantity missing
130 dc4e7302-925d-438f-82d5-e78510d858c5_7447113 item[3].amount negative: -5.9
131 dc4e7302-925d-438f-82d5-e78510d858c5_7447113 item[4].amount negative: -5.0
132 Facture ostéopathe-25089174 item[0].quantity missing
133 d9e1cb2a-b44b-4cc8-b07a-030ddf3acd28_Ordonnance_lentilles_Mary bill_paid True but amount_paid missing
134 1724658376437factosteo item[0].quantity missing
135 Facture des lentilles de contact-27708923 item[0].quantity missing
136 b46e8411-29d3-44b6-ae65-55f11bf360bd_FACTURE_OCULISTE_JANE item[0].quantity missing
137 b46e8411-29d3-44b6-ae65-55f11bf360bd_FACTURE_OCULISTE_JANE item[1].quantity missing
138 b46e8411-29d3-44b6-ae65-55f11bf360bd_FACTURE_OCULISTE_JANE item[2].quantity missing
139 27c16ad0-3309-4eb1-9432-ab8a546fee7c_osteo currency missing for bill
140 c2009b55-58d4-411f-a25a-3dc1e32e4a89_facture_lentille item[3].amount negative: -3.0
141 25f19f18-b19d-4e1e-b105-349dd1584c81_75109795868__1FEA46AA-A04E-44AF-9748-541DE3F7B438 item[0].quantity missing
142 25f19f18-b19d-4e1e-b105-349dd1584c81_75109795868__1FEA46AA-A04E-44AF-9748-541DE3F7B438 item[1].quantity missing
143 1724399050339FACTURE_132120424_MME_RONDIN_MAHEVA item[0].quantity missing
144 64fa4c19-efa4-48f1-acf8-8c2e8f573b8b_Facture_osteopathe_ item[0].quantity missing
145 c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo item[0].quantity missing
146 c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo item[1].quantity missing
147 c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo item[0].quantity missing
148 bae2e636-32c5-4b2c-b2d2-a7b28b30760f_KM_C250i24082011140 item[0].quantity missing
149 bae2e636-32c5-4b2c-b2d2-a7b28b30760f_KM_C250i24082011140 item[1].quantity missing
150 e0f0eab0-f98c-4b74-95f2-bfc61ad76d28_Ophtalmo_Isa_01-24 item[0].quantity missing
151 e0f0eab0-f98c-4b74-95f2-bfc61ad76d28_Ophtalmo_Isa_01-24 item[1].quantity missing
152 Facture des lentilles de contact-27647325 item[0].quantity missing
153 1724399050380osteo_Lina item[0].quantity missing
154 70c3e7f5-405b-49d8-a73c-dae83beafb59_Facture_ophtalmo item[0].quantity missing
155 70c3e7f5-405b-49d8-a73c-dae83beafb59_Facture_ophtalmo item[1].quantity missing
156 70c3e7f5-405b-49d8-a73c-dae83beafb59_Facture_ophtalmo item[2].quantity missing
157 66de7232-78a6-46a0-8392-47ec4630ad31_image item[0].quantity missing
158 66de7232-78a6-46a0-8392-47ec4630ad31_image item[1].quantity missing
159 66de7232-78a6-46a0-8392-47ec4630ad31_image item[2].quantity missing
160 0be67d5b-5af6-49ba-8851-d3976f9920a0_Facture_optalmo_Emma_PINSARD item[0].quantity missing
161 0be67d5b-5af6-49ba-8851-d3976f9920a0_Facture_optalmo_Emma_PINSARD item[1].quantity missing
162 b79c0ed4-4126-4ff5-86a8-0348cd1c308c_IMG_0048 item[0].quantity missing
163 b79c0ed4-4126-4ff5-86a8-0348cd1c308c_IMG_0048 item[1].quantity missing
164 b79c0ed4-4126-4ff5-86a8-0348cd1c308c_IMG_0048 item[2].quantity missing
165 Facture ostéopathe-26252579 item[0].quantity missing
166 Facture ostéopathe-26252579 item[1].quantity missing
167 Facture ostéopathe-26252579 item[2].quantity missing
168 Facture ostéopathe-26252579 item[3].quantity missing
169 a5bd8b97-a2a8-49ae-900d-0673d2f96637_quittance_optique_ item[0].quantity missing
170 8b6539db-21b4-41dc-a27f-db2cd351fe5f_Doc_34 item[0].quantity missing
171 172465822585720240416133632216 item[0].quantity missing
172 Facture médecine douce-27781814 item[0].quantity missing
173 Facture ostéopathe-26349654 item[0].quantity missing
174 4950b870-6662-4fcd-a7e9-1fc3abd0fdc9_IMG_20250321_182918 item[0].quantity missing
175 4950b870-6662-4fcd-a7e9-1fc3abd0fdc9_IMG_20250321_182918 currency missing for bill
176 cbc7ddff-2ed1-441b-85cb-5c1079588a52_Mes_des_factures item[0].quantity missing
177 cbc7ddff-2ed1-441b-85cb-5c1079588a52_Mes_des_factures item[1].quantity missing
178 91efe623-7d6b-4a96-8b03-87199c56566a_image item[0].quantity missing
179 DDE prestation Facture des lentilles de contact-26705131 item[2].amount negative: -5.0
180 Facture des lentilles de contact-27620389 item[0].quantity missing
181 Facture des lentilles de contact-27620389 item[1].quantity missing
182 2da98e03-19d0-430e-90da-a09706de143b_Facture_Lentilles_Stephanie_Marchenay_ item[0].quantity missing
183 Facture-quittance toutes spécialités-27648502 item[0].quantity missing
184 Facture médecine douce-27776613 item[0].quantity missing
185 DDE prestation Facture des lentilles de contact-26685394 item[0].quantity missing
186 ec6baa8c-a189-4850-b310-c90bab372cc2_Facture_Krys bill_paid True but remaining_payment > 0
187 DDE prestation Facture des lentilles de contact-26772555 item[0].quantity missing
188 DDE prestation Facture des lentilles de contact-26772555 item[1].quantity missing
189 Facture des lentilles de contact-27700117 item[0].quantity missing
190 1724399050308image item[0].quantity missing
191 179673c3-7b80-47cb-9467-3425e010905a_ordonnance08.10.2024 item[0].quantity missing
192 179673c3-7b80-47cb-9467-3425e010905a_ordonnance08.10.2024 item[1].quantity missing
193 cdea6c95-be16-4d2b-ba78-95ef182d8e63_IMG_20250523_084341 item[0].quantity missing
194 Facture ostéopathe-25073562 item[0].quantity missing
195 499639d7-4faa-4d3e-b412-7f75da0b4e01_quercy item[0].quantity missing
196 499639d7-4faa-4d3e-b412-7f75da0b4e01_quercy item[1].quantity missing
197 Facture ostéopathe-26189649 item[0].quantity missing
198 Facture psychologie - 27581557 item[0].quantity missing
199 Facture psychologie - 27581557 item[0].quantity missing
200 fdaa0d42-8e79-4506-b222-373c88891ff5_notehonoraire__20250212_143947 item[0].quantity missing
201 92340ad4-27cf-476b-a842-051d0b6a2c9f_IMG_20250619_231842 item[0].quantity missing
202 Facture ostéopathe-1142513 item[0].quantity missing
203 Facture ostéopathe-26447822 bill_paid True but amount_paid missing
204 1724156469365facture_osteo08.24 item[0].quantity missing
205 1eea4521-e98f-4f41-911b-07ffaf3b52a0_Facture_MGP item[0].quantity missing
206 1eea4521-e98f-4f41-911b-07ffaf3b52a0_Facture_MGP item[1].quantity missing
207 Facture ostéopathe-26595219 item[0].quantity missing
208 0aa44c3d-2dc8-47fc-9307-d1485df454c1_20250207152016_001 item[0].quantity missing
209 Facture ostéopathe-25416514 item[0].quantity missing
210 Sans titre item[0].quantity missing
211 707771f6-bb3b-4e5e-8d7d-acd584a23009_IMG_20240726_142929 item[0].quantity missing
212 707771f6-bb3b-4e5e-8d7d-acd584a23009_IMG_20240726_142929 item[1].quantity missing
213 d35e4ea0-6678-4dd1-b0d5-fe905d262430_FACTURE_GAFFE_Thierry item[0].quantity missing
214 Facture ostéopathe-25921103 item[0].quantity missing
215 DDE prestation Facture des lentilles de contact-26764274 item[0].quantity missing
216 DDE prestation Facture des lentilles de contact-26764274 item[1].quantity missing
217 1724658376419facture_ostheo_avril_24 item[0].quantity missing
218 Facture des lentilles de contact-27654407 bill_paid True but amount_paid missing
219 Facture ostéopathe-26610950 item[0].quantity missing
220 Facture des lentilles de contact-27668729 item[4].amount negative: -4.9
221 Facture des lentilles de contact-27668729 item[5].amount negative: -12.8
222 a05800f6-c1f1-4d50-9598-98e0f90b83f0_17476639221036811513370155179329 item[0].quantity missing
223 32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337 item[0].quantity missing
224 32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337 item[1].quantity missing
225 32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337 item[2].quantity missing
226 Facture ostéopathe-1119174 item[0].quantity missing
227 Facture ostéopathe-26298895 item[0].quantity missing
228 82ac654c-54d4-401f-a006-96d9e46531fe_Facture_ostheo_JEAN item[0].quantity missing
229 Facture ostéopathe-26585743 item[0].quantity missing
230 106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie item[0].quantity missing
231 106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie item[1].quantity missing
232 106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie item[2].quantity missing
233 106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie item[3].quantity missing
234 106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie item[4].quantity missing
235 106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie item[5].quantity missing
236 284cb22c-17ad-409b-8d5f-79e43a6dd51b_Facture_ item[0].quantity missing
237 fe86f6a8-8360-458e-834c-805ac99350cf_Monsieur_OUEDRAOGO_DAOUDA item[0].quantity missing
238 fe86f6a8-8360-458e-834c-805ac99350cf_Monsieur_OUEDRAOGO_DAOUDA item[1].quantity missing
239 Facture des lentilles de contact-27576127 item[2].amount negative: -53.0
240 1724425079263JACOB_Francois_2024-111 item[0].quantity missing
241 46ddeec5-97bf-4175-b214-b7bd74c4fa24_Renouvin_Ferlicot_Andre item[0].quantity missing
242 46ddeec5-97bf-4175-b214-b7bd74c4fa24_Renouvin_Ferlicot_Andre item[1].quantity missing
243 0a26adda-beef-4977-966c-12efc73f1d15_20250129_190625 item[0].quantity missing
244 0a26adda-beef-4977-966c-12efc73f1d15_20250129_190625 item[1].quantity missing
245 Facture ostéopathe-26699279 item[0].quantity missing
246 Facture ostéopathe-1216961 bill_paid True but amount_paid missing
247 Facture ostéopathe-1216961 item[0].quantity missing
248 Facture ostéopathe-26935993 item[0].quantity missing
249 1724425079207douilly_6 item[0].quantity missing
250 Facture ostéopathe-26298310 item[0].quantity missing
251 8019accc-33b4-4f20-95eb-3ff1e1d4db0b_nnn item[0].quantity missing
252 8019accc-33b4-4f20-95eb-3ff1e1d4db0b_nnn item[1].quantity missing
253 379ed230-4e27-4f61-9039-226972f26cc9_Factures_Dani_medecin_ item[0].quantity missing
254 379ed230-4e27-4f61-9039-226972f26cc9_Factures_Dani_medecin_ item[1].quantity missing
255 b410345a-31de-4397-a896-bc11d97e524c_FACTURE_OPHTALMOLOGISTE item[0].quantity missing
256 0268b186-6926-46af-b75f-ba01c02cb647_IMG_20240514_152542 item[0].quantity missing
257 0bfb5041-2751-421d-b5d5-60d696c361c1_17391960081576654684571490136238 item[0].quantity missing
258 598221c3-d0b3-403a-a261-c68cbe56b453_facture_ophtalmo item[0].quantity missing
259 598221c3-d0b3-403a-a261-c68cbe56b453_facture_ophtalmo item[1].quantity missing
260 1724226151831IMG_8005 item[0].quantity missing
261 c8fa8d11-c2df-4f39-9909-28790acc5957_Factures_opthalmo item[0].quantity missing
262 50eeaebf-d552-4a12-92a4-66d185bb992b_facture_optique item[0].quantity missing
263 50eeaebf-d552-4a12-92a4-66d185bb992b_facture_optique item[1].quantity missing
264 50eeaebf-d552-4a12-92a4-66d185bb992b_facture_optique item[2].quantity missing
265 Facture ostéopathe-26744045 item[0].quantity missing
266 1724425031419Facture_Osteo_20240417 item[0].quantity missing
267 Facture ostéopathe-25187936 item[0].quantity missing
268 ec117b21-9348-4a76-9a22-2bae87639392_facture_du_14.02_Tony item[0].quantity missing
269 ec117b21-9348-4a76-9a22-2bae87639392_facture_du_14.02_Tony item[1].quantity missing
270 Facture ostéopathe-26052732 item[0].quantity missing
271 de6a66cd-d729-479c-a119-8b9e442702db_Screenshot_20250227_112521_Gallery item[0].quantity missing
272 de6a66cd-d729-479c-a119-8b9e442702db_Screenshot_20250227_112521_Gallery item[1].quantity missing
273 Facture médecine douce-27709304 item[0].quantity missing
274 DDE prestation Facture des lentilles de contact-26715605 item[0].quantity missing
275 Facture médecine douce-27702699 item[0].quantity missing
276 70546a38-b6d7-4151-b08a-82b01c8e4a98_480755849_2183001178819517_1003204107786000285_n item[0].quantity missing
277 1724658298461facture_podologue_alicia item[0].quantity missing

View File

@@ -0,0 +1,61 @@
source_image,total_billed,sum_item_amount,diff
6f544990-74c6-4c7e-8a25-08eb3f9138c8_RemboursementSoins01082024_1,24.98,41.41,-16.429999999999996
ea64ca35-29f5-49ba-894b-13aa3421f1d6_doc00681020250513143142,138.96,115.78,23.180000000000007
b7df45bd-a142-4cb1-bb00-69122c5b405a_IMG20250520184626,594.8,798.0,-203.20000000000005
2dbb4025-f570-49f9-83d1-08aedb2b122d_lunettes_Lou-Ann,213.4,253.0,-39.599999999999994
Facture des lentilles de contact-27693842,130.0,150.0,-20.0
6221379e-7344-4868-9ee0-04f2c4e26874_consultation_ophtalmo27janvier2025BEAUPERINyann,20.8,20.86,-0.05999999999999872
0a639214-b39e-4971-8d51-d83b7d2d2c2e_facture_lentilles_17_01_2025,540.8,550.8,-10.0
8f0e72ca-64e5-4797-87bc-9378b842433a_CF_1676107,64.48,59.88,4.600000000000001
Facture ostéopathe-26610949,60.0,100.0,-40.0
8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes,262.0,257.0,5.0
e566a3b0-cc99-4c4d-8715-9f3be841a066_noname,44.0,43.28,0.7199999999999989
Facture ostéopathe-25449739,70.0,60.0,10.0
47399c82-030f-4904-b8f4-2c3dc7c46723_image,77.61,0.0,77.61
209e4abe-4973-4fd3-83cc-64f940fb7372_facture_ophtalmologue,72.63,0.0,72.63
85120394-0ea3-4a2c-b0d4-11b0fe31a4e7_20250213_145033,73.33,84.33,-11.0
43666807-3eb2-40b9-bdf6-94d4fe31b71e_factures,147.0,105.0,42.0
a3e845ff-e89c-4eb0-bf8d-164979dfee2b_Recu_Osteo_LIGNAC_Sebastien,65.0,60.0,5.0
060cd8e5-ac6f-47e5-b8f5-fe9d3920c522_CHIRO_FEVRIER_2025,40.0,90.0,-50.0
1724397121050Adobe_Scan_17_avr._2024,45.96,43.00999999999999,2.95000000000001
8f2b09a0-d20d-4a94-a70a-fda31024af49_Facture_22_04_2025,340.0,290.0,50.0
06e1588f-71a7-43fc-bf99-d066db847189_Opticien_,375.6,613.6,-238.0
72cb658b-3239-4479-918d-aac53bc4a552_Facture_ophtalmo_14-01-2025,130.0,0.0,130.0
e997eddb-05a4-49f9-a7fd-82b48c2694b3_IMG_OPHTALMOLOGIE_20250117_0001,119.48,0.0,119.48
Facture ostéopathe-1066603,45.0,65.0,-20.0
DDE prestation Facture des lentilles de contact-26736761,78.0,76.0,2.0
Facture ostéopathe-26555547,220.65,0.0,220.65
96be3553-7261-4698-bf20-88ca5c826889_ReleveMensuel_Mai,154.04,535.1099999999999,-381.06999999999994
ba1b499f-199f-4106-bb2c-aac62a67c235_doc00448420250313084147,644.16,643.96,0.1999999999999318
1724397121048facture_kine_15-04-24,88.4,17.68,70.72
Facture ostéopathe-26401996,205.56,0.0,205.56
27c16ad0-3309-4eb1-9432-ab8a546fee7c_osteo,60.0,0.0,60.0
c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo,120.0,0.0,120.0
c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo,20.8,0.0,20.8
bae2e636-32c5-4b2c-b2d2-a7b28b30760f_KM_C250i24082011140,110.48,0.0,110.48
e0f0eab0-f98c-4b74-95f2-bfc61ad76d28_Ophtalmo_Isa_01-24,76.0,0.0,76.0
670b97e0-61da-4341-843d-a02b4ae76ef5_image,352.0,468.67,-116.67000000000002
e6c39a83-a53c-48f5-bffe-6bdb57337b33_image,560.06,560.0,0.05999999999994543
172442503141724-04-08_recu_kine_Suz,66.12,0.0,66.12
499639d7-4faa-4d3e-b412-7f75da0b4e01_quercy,97.63,97.43,0.19999999999998863
5dec7b4c-0160-443c-a498-6e94875222aa_FEVRIER_HYPNO,90.0,72.0,18.0
ff6211dc-b681-4709-9451-d36fb961476f_MICHELIZZA_QuittanceFSE_1952,280.0,245.0,35.0
8ed22fd8-18ae-4c54-93ae-2f5cd4ec2af6_17375530503755104210735675998866,73.43,0.0,73.43
78ec53bb-a4c5-469f-a4d0-f42db4cf9b11_CF_1697735,64.48,59.88,4.600000000000001
4fa21bd9-393e-41d4-9af2-bf42004f4e94_image,15.93,14.48,1.4499999999999993
DDE prestation Facture des lentilles de contact-26764274,78.0,76.0,2.0
ffc129de-c82b-4c0b-8ab8-2941fd28cda9_Facture_opticien,525.6,828.3,-302.69999999999993
edb77e5c-ea68-4bad-a177-1256a3bafc9c_CF_1686176,64.48,59.88,4.600000000000001
32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337,92.4,75.72,16.680000000000007
82ac654c-54d4-401f-a006-96d9e46531fe_Facture_ostheo_JEAN,40.0,60.0,-20.0
Facture des lentilles de contact-27603799,73.7,67.8,5.900000000000006
fe86f6a8-8360-458e-834c-805ac99350cf_Monsieur_OUEDRAOGO_DAOUDA,87.0,0.0,87.0
1498c5f5-22cf-41d4-87f0-9b295ff481f4_IMG_5659,50.0,41.41,8.590000000000003
0a26adda-beef-4977-966c-12efc73f1d15_20250129_190625,74.61,0.0,74.61
Facture des lentilles de contact-27687795,63.98,58.0,5.979999999999997
8019accc-33b4-4f20-95eb-3ff1e1d4db0b_nnn,127.77,0.0,127.77
379ed230-4e27-4f61-9039-226972f26cc9_Factures_Dani_medecin_,26.5,53.0,-26.5
598221c3-d0b3-403a-a261-c68cbe56b453_facture_ophtalmo,44.0,88.0,-44.0
1724226151831IMG_8005,33.0,38.0,-5.0
50eeaebf-d552-4a12-92a4-66d185bb992b_facture_optique,85.08,70.61,14.469999999999999
b5ecf45a-00cd-45a8-900d-6a4fc90a79a4_ZOPIE_CORPETTI_CAROLE,113.44,113.34,0.09999999999999432
1 source_image total_billed sum_item_amount diff
2 6f544990-74c6-4c7e-8a25-08eb3f9138c8_RemboursementSoins01082024_1 24.98 41.41 -16.429999999999996
3 ea64ca35-29f5-49ba-894b-13aa3421f1d6_doc00681020250513143142 138.96 115.78 23.180000000000007
4 b7df45bd-a142-4cb1-bb00-69122c5b405a_IMG20250520184626 594.8 798.0 -203.20000000000005
5 2dbb4025-f570-49f9-83d1-08aedb2b122d_lunettes_Lou-Ann 213.4 253.0 -39.599999999999994
6 Facture des lentilles de contact-27693842 130.0 150.0 -20.0
7 6221379e-7344-4868-9ee0-04f2c4e26874_consultation_ophtalmo27janvier2025BEAUPERINyann 20.8 20.86 -0.05999999999999872
8 0a639214-b39e-4971-8d51-d83b7d2d2c2e_facture_lentilles_17_01_2025 540.8 550.8 -10.0
9 8f0e72ca-64e5-4797-87bc-9378b842433a_CF_1676107 64.48 59.88 4.600000000000001
10 Facture ostéopathe-26610949 60.0 100.0 -40.0
11 8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes 262.0 257.0 5.0
12 e566a3b0-cc99-4c4d-8715-9f3be841a066_noname 44.0 43.28 0.7199999999999989
13 Facture ostéopathe-25449739 70.0 60.0 10.0
14 47399c82-030f-4904-b8f4-2c3dc7c46723_image 77.61 0.0 77.61
15 209e4abe-4973-4fd3-83cc-64f940fb7372_facture_ophtalmologue 72.63 0.0 72.63
16 85120394-0ea3-4a2c-b0d4-11b0fe31a4e7_20250213_145033 73.33 84.33 -11.0
17 43666807-3eb2-40b9-bdf6-94d4fe31b71e_factures 147.0 105.0 42.0
18 a3e845ff-e89c-4eb0-bf8d-164979dfee2b_Recu_Osteo_LIGNAC_Sebastien 65.0 60.0 5.0
19 060cd8e5-ac6f-47e5-b8f5-fe9d3920c522_CHIRO_FEVRIER_2025 40.0 90.0 -50.0
20 1724397121050Adobe_Scan_17_avr._2024 45.96 43.00999999999999 2.95000000000001
21 8f2b09a0-d20d-4a94-a70a-fda31024af49_Facture_22_04_2025 340.0 290.0 50.0
22 06e1588f-71a7-43fc-bf99-d066db847189_Opticien_ 375.6 613.6 -238.0
23 72cb658b-3239-4479-918d-aac53bc4a552_Facture_ophtalmo_14-01-2025 130.0 0.0 130.0
24 e997eddb-05a4-49f9-a7fd-82b48c2694b3_IMG_OPHTALMOLOGIE_20250117_0001 119.48 0.0 119.48
25 Facture ostéopathe-1066603 45.0 65.0 -20.0
26 DDE prestation Facture des lentilles de contact-26736761 78.0 76.0 2.0
27 Facture ostéopathe-26555547 220.65 0.0 220.65
28 96be3553-7261-4698-bf20-88ca5c826889_ReleveMensuel_Mai 154.04 535.1099999999999 -381.06999999999994
29 ba1b499f-199f-4106-bb2c-aac62a67c235_doc00448420250313084147 644.16 643.96 0.1999999999999318
30 1724397121048facture_kine_15-04-24 88.4 17.68 70.72
31 Facture ostéopathe-26401996 205.56 0.0 205.56
32 27c16ad0-3309-4eb1-9432-ab8a546fee7c_osteo 60.0 0.0 60.0
33 c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo 120.0 0.0 120.0
34 c7704de1-820a-44bf-aef9-f7b185f94a26_facture_ophtalmo 20.8 0.0 20.8
35 bae2e636-32c5-4b2c-b2d2-a7b28b30760f_KM_C250i24082011140 110.48 0.0 110.48
36 e0f0eab0-f98c-4b74-95f2-bfc61ad76d28_Ophtalmo_Isa_01-24 76.0 0.0 76.0
37 670b97e0-61da-4341-843d-a02b4ae76ef5_image 352.0 468.67 -116.67000000000002
38 e6c39a83-a53c-48f5-bffe-6bdb57337b33_image 560.06 560.0 0.05999999999994543
39 172442503141724-04-08_recu_kine_Suz 66.12 0.0 66.12
40 499639d7-4faa-4d3e-b412-7f75da0b4e01_quercy 97.63 97.43 0.19999999999998863
41 5dec7b4c-0160-443c-a498-6e94875222aa_FEVRIER_HYPNO 90.0 72.0 18.0
42 ff6211dc-b681-4709-9451-d36fb961476f_MICHELIZZA_QuittanceFSE_1952 280.0 245.0 35.0
43 8ed22fd8-18ae-4c54-93ae-2f5cd4ec2af6_17375530503755104210735675998866 73.43 0.0 73.43
44 78ec53bb-a4c5-469f-a4d0-f42db4cf9b11_CF_1697735 64.48 59.88 4.600000000000001
45 4fa21bd9-393e-41d4-9af2-bf42004f4e94_image 15.93 14.48 1.4499999999999993
46 DDE prestation Facture des lentilles de contact-26764274 78.0 76.0 2.0
47 ffc129de-c82b-4c0b-8ab8-2941fd28cda9_Facture_opticien 525.6 828.3 -302.69999999999993
48 edb77e5c-ea68-4bad-a177-1256a3bafc9c_CF_1686176 64.48 59.88 4.600000000000001
49 32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337 92.4 75.72 16.680000000000007
50 82ac654c-54d4-401f-a006-96d9e46531fe_Facture_ostheo_JEAN 40.0 60.0 -20.0
51 Facture des lentilles de contact-27603799 73.7 67.8 5.900000000000006
52 fe86f6a8-8360-458e-834c-805ac99350cf_Monsieur_OUEDRAOGO_DAOUDA 87.0 0.0 87.0
53 1498c5f5-22cf-41d4-87f0-9b295ff481f4_IMG_5659 50.0 41.41 8.590000000000003
54 0a26adda-beef-4977-966c-12efc73f1d15_20250129_190625 74.61 0.0 74.61
55 Facture des lentilles de contact-27687795 63.98 58.0 5.979999999999997
56 8019accc-33b4-4f20-95eb-3ff1e1d4db0b_nnn 127.77 0.0 127.77
57 379ed230-4e27-4f61-9039-226972f26cc9_Factures_Dani_medecin_ 26.5 53.0 -26.5
58 598221c3-d0b3-403a-a261-c68cbe56b453_facture_ophtalmo 44.0 88.0 -44.0
59 1724226151831IMG_8005 33.0 38.0 -5.0
60 50eeaebf-d552-4a12-92a4-66d185bb992b_facture_optique 85.08 70.61 14.469999999999999
61 b5ecf45a-00cd-45a8-900d-6a4fc90a79a4_ZOPIE_CORPETTI_CAROLE 113.44 113.34 0.09999999999999432

View File

@@ -0,0 +1,193 @@
# Label Analysis Report
Input: `009_label_data_sample_seed_42.json`
## Overview
- Total records: 1232
- Total labels (flattened): 1259
- is_bill distribution: {True: 1126, False: 133}
- bill_paid distribution: {False: 74, True: 1011, None: 174}
- Invoice dates span: 2012-04-17 .. 2025-12-20
- Unique year-month pairs: 64
## Professions (top)
- Ostéopathe: 377
- Ostéopathie: 308
- Optique: 221
- (missing): 108
- Chiropractie: 54
- Psychologue: 52
- Unknown: 21
- Kinésithérapie: 15
- Ophtalmologie: 13
- Sophrologie: 12
- Podologue: 9
- Hypnothérapie: 7
- Pharmacie: 5
- Naturopathie: 5
- Etiopathie: 4
- Radiologie: 4
- Étiopathie: 4
- Soins hospitalier: 4
- Sophrologue: 3
- Etiopathe: 3
- Psychologie: 2
- Psychomotricité: 2
- Otique: 2
- Médecine Générale: 2
- Homéopathie: 2
- Kinésiologie: 2
- Pompes funèbres: 2
- Chirurgie dentaire: 1
- Biologie: 1
- Sevrage tabagique: 1
- Acupuncture: 1
- Étiopathe: 1
- unknown: 1
- Orthopédie: 1
- Psychiatrie: 1
- Diététicienne: 1
- Chiropratie: 1
- Medecine Générale: 1
- Sage-femme: 1
- Addictologie: 1
- Ophtalmologue: 1
- Diététique: 1
- Réflexologie: 1
## Currency distribution
- EUR: 1137
- F: 2
## Identifier and key field presence
- adeli_number: 902 present
- rpps_number: 179 present
- finess_number: 133 present
- prescripteur_finess_number: 42 present
- doctor_name: 1051 present
- invoice_issuer: 1122 present
- insured_name: 203 present
- beneficiary_name: 1098 present
- security_number: 494 present
- currency: 1139 present
## Flags
- is_handwriting: {True: 62, None: 858, False: 339}
- is_rotated: {False: 372, None: 856, True: 31}
## Numeric summaries
- total_billed: {'count': 1134, 'min': 1.0, 'p25': 55.0, 'median': 60.0, 'p75': 70.0, 'max': 18600.0, 'mean': 112.98805114638448, 'sum': 128128.45000000001, 'missing': 125}
- amount_paid: {'count': 1012, 'min': 0.0, 'p25': 50.0, 'median': 60.0, 'p75': 65.0, 'max': 18600.0, 'mean': 106.93289525691699, 'sum': 108216.08999999997, 'missing': 247}
- remaining_payment: {'count': 252, 'min': 0.0, 'p25': 0.0, 'median': 0.0, 'p75': 0.0, 'max': 2744.64, 'mean': 14.226587301587301, 'sum': 3585.1, 'missing': 1007}
- client_part: {'count': 153, 'min': 0.0, 'p25': 27.72, 'median': 46.41, 'p75': 81.5, 'max': 1100.0, 'mean': 95.07934640522876, 'sum': 14547.140000000007, 'missing': 1106}
- mandatory_coverage: {'count': 138, 'min': 0.0, 'p25': 0.09, 'median': 27.380000000000003, 'p75': 47.730000000000004, 'max': 1175.72, 'mean': 39.25376811594203, 'sum': 5417.020000000004, 'missing': 1121}
- complementary_coverage: {'count': 89, 'min': 0.0, 'p25': 0.0, 'median': 0.0, 'p75': 60.0, 'max': 370.03, 'mean': 54.395168539325844, 'sum': 4841.169999999999, 'missing': 1170}
## Items analysis
- Items per label: count=1259, min=0, max=14, mean=1.22
- total_billed vs sum(items.amount) mismatches: 60
## Data quality issues (sample)
- eedda33e-049b-4ab8-aee8-6f5d0c88b500_IMG_0358: item[0].quantity missing
- eedda33e-049b-4ab8-aee8-6f5d0c88b500_IMG_0358: item[1].quantity missing
- e72e49e0-7891-4dc8-b62f-40c7bf6252a4_Nuria_Ravier_Ophtalomologiste: item[0].quantity missing
- e72e49e0-7891-4dc8-b62f-40c7bf6252a4_Nuria_Ravier_Ophtalomologiste: item[0].quantity missing
- Facture ostéopathe-25417096: item[0].quantity missing
- eb5561dd-937b-4c0b-b6c6-56da8b528c94_facture_vision_claire_ophtalmo_1_001: item[0].quantity missing
- 6f544990-74c6-4c7e-8a25-08eb3f9138c8_RemboursementSoins01082024_1: item[0].quantity missing
- 6f544990-74c6-4c7e-8a25-08eb3f9138c8_RemboursementSoins01082024_1: item[1].quantity missing
- 1150ac6a-abdc-409d-b7ca-296e7b35769c_Facture_BOLZERJean_Francois_20250131GMAM: item[0].quantity missing
- Facture ostéopathe-26738638: item[0].quantity missing
- 34162b51-6c3f-4dcc-a18a-d6b9e45e4f22_Recu_ophtalmo_Cadet_Corine_2025-03-09: bill_paid True but remaining_payment > 0
- 34162b51-6c3f-4dcc-a18a-d6b9e45e4f22_Recu_ophtalmo_Cadet_Corine_2025-03-09: item[0].quantity missing
- 34162b51-6c3f-4dcc-a18a-d6b9e45e4f22_Recu_ophtalmo_Cadet_Corine_2025-03-09: item[1].quantity missing
- abff81b4-d895-47d5-b3d4-93da48f5c1e6_20241212_172044: item[0].quantity missing
- abff81b4-d895-47d5-b3d4-93da48f5c1e6_20241212_172044: item[1].quantity missing
- 2c75bd51-e61c-452e-b19b-494fa70e9cc9_Facture_lentilles_janvier_2024: item[4].amount negative: -2.9
- 2c75bd51-e61c-452e-b19b-494fa70e9cc9_Facture_lentilles_janvier_2024: item[5].amount negative: -3.0
- Facture ostéopathe-26605349: item[0].quantity missing
- Facture médecine douce-27702698: item[0].quantity missing
- 6221379e-7344-4868-9ee0-04f2c4e26874_consultation_ophtalmo27janvier2025BEAUPERINyann: item[0].quantity missing
- f55f9121-499d-4c25-b79b-464413d7ca6c_Quittance_Ophtalmologue: item[0].quantity missing
- f55f9121-499d-4c25-b79b-464413d7ca6c_Quittance_Ophtalmologue: item[0].quantity missing
- 62b45277-a437-48c6-af52-d1814f23434f_17460042180346042803920585280783: item[0].quantity missing
- 62b45277-a437-48c6-af52-d1814f23434f_17460042180346042803920585280783: item[1].quantity missing
- Facture ostéopathe-25847017: bill_paid True but remaining_payment > 0
- 02358c4c-820a-409f-9489-a75f22af3f32_image: item[0].quantity missing
- 02358c4c-820a-409f-9489-a75f22af3f32_image: item[1].quantity missing
- 7ef7306d-400e-4a56-b31c-02237212c470_Scan: item[0].quantity missing
- 7ef7306d-400e-4a56-b31c-02237212c470_Scan: item[1].quantity missing
- f482ebef-e885-4627-a927-96ad54ab5aa0_Facture: item[0].quantity missing
- f482ebef-e885-4627-a927-96ad54ab5aa0_Facture: item[1].quantity missing
- f482ebef-e885-4627-a927-96ad54ab5aa0_Facture: item[3].quantity missing
- f482ebef-e885-4627-a927-96ad54ab5aa0_Facture: item[4].quantity missing
- f482ebef-e885-4627-a927-96ad54ab5aa0_Facture: item[6].quantity missing
- f482ebef-e885-4627-a927-96ad54ab5aa0_Facture: item[7].quantity missing
- f482ebef-e885-4627-a927-96ad54ab5aa0_Facture: item[8].quantity missing
- f482ebef-e885-4627-a927-96ad54ab5aa0_Facture: item[9].quantity missing
- f482ebef-e885-4627-a927-96ad54ab5aa0_Facture: item[11].quantity missing
- Facture ostéopathe-26610949: item[0].quantity missing
- 8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes: item[0].quantity missing
- 8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes: item[1].quantity missing
- 8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes: item[2].quantity missing
- 8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes: item[3].quantity missing
- 8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes: item[4].quantity missing
- bf09a877-0705-4c79-b908-6e8da44e44c7_17490641879424403676372514736136: item[0].quantity missing
- bf09a877-0705-4c79-b908-6e8da44e44c7_17490641879424403676372514736136: item[1].quantity missing
- 17b264a2-4881-49a4-8326-48ace17dd86f_factures_ophtalmo: item[0].quantity missing
- 17b264a2-4881-49a4-8326-48ace17dd86f_factures_ophtalmo: item[1].quantity missing
- 17b264a2-4881-49a4-8326-48ace17dd86f_factures_ophtalmo: item[0].quantity missing
- e566a3b0-cc99-4c4d-8715-9f3be841a066_noname: item[0].quantity missing
## Plots
- is_bill
![](plots/is_bill.png)
- bill_paid
![](plots/bill_paid.png)
- is_handwriting
![](plots/is_handwriting.png)
- is_rotated
![](plots/is_rotated.png)
- professions_top20
![](plots/professions_top20.png)
- currency
![](plots/currency.png)
- invoice_year_month
![](plots/invoice_year_month.png)
- items_per_label
![](plots/items_per_label.png)
- hist_total_billed
![](plots/hist_total_billed.png)
- hist_amount_paid
![](plots/hist_amount_paid.png)
- hist_remaining_payment
![](plots/hist_remaining_payment.png)
- hist_client_part
![](plots/hist_client_part.png)
- hist_mandatory_coverage
![](plots/hist_mandatory_coverage.png)
- hist_complementary_coverage
![](plots/hist_complementary_coverage.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

View File

@@ -0,0 +1,44 @@
profession,count
Ostéopathe,377
Ostéopathie,308
Optique,221
(missing),108
Chiropractie,54
Psychologue,52
Unknown,21
Kinésithérapie,15
Ophtalmologie,13
Sophrologie,12
Podologue,9
Hypnothérapie,7
Pharmacie,5
Naturopathie,5
Etiopathie,4
Radiologie,4
Étiopathie,4
Soins hospitalier,4
Sophrologue,3
Etiopathe,3
Psychologie,2
Psychomotricité,2
Otique,2
Médecine Générale,2
Homéopathie,2
Kinésiologie,2
Pompes funèbres,2
Chirurgie dentaire,1
Biologie,1
Sevrage tabagique,1
Acupuncture,1
Étiopathe,1
unknown,1
Orthopédie,1
Psychiatrie,1
Diététicienne,1
Chiropratie,1
Medecine Générale,1
Sage-femme,1
Addictologie,1
Ophtalmologue,1
Diététique,1
Réflexologie,1
1 profession count
2 Ostéopathe 377
3 Ostéopathie 308
4 Optique 221
5 (missing) 108
6 Chiropractie 54
7 Psychologue 52
8 Unknown 21
9 Kinésithérapie 15
10 Ophtalmologie 13
11 Sophrologie 12
12 Podologue 9
13 Hypnothérapie 7
14 Pharmacie 5
15 Naturopathie 5
16 Etiopathie 4
17 Radiologie 4
18 Étiopathie 4
19 Soins hospitalier 4
20 Sophrologue 3
21 Etiopathe 3
22 Psychologie 2
23 Psychomotricité 2
24 Otique 2
25 Médecine Générale 2
26 Homéopathie 2
27 Kinésiologie 2
28 Pompes funèbres 2
29 Chirurgie dentaire 1
30 Biologie 1
31 Sevrage tabagique 1
32 Acupuncture 1
33 Étiopathe 1
34 unknown 1
35 Orthopédie 1
36 Psychiatrie 1
37 Diététicienne 1
38 Chiropratie 1
39 Medecine Générale 1
40 Sage-femme 1
41 Addictologie 1
42 Ophtalmologue 1
43 Diététique 1
44 Réflexologie 1

163
filter/create_label_data.py Normal file
View File

@@ -0,0 +1,163 @@
#!/usr/bin/env python3
"""
Script to filter label_data.json based on filepaths in dbscan_filtered_results.json
This script will keep only the samples from label_data.json where the 'image' field
matches with the filepath names found in the 'results' section of dbscan_filtered_results.json
"""
import json
import os
from pathlib import Path
from typing import List, Dict, Set
def extract_image_names_from_filepath(filepath: str) -> str:
"""
Extract the base image name from a filepath for comparison.
Args:
filepath: Full filepath from dbscan results
Returns:
Base filename without extension and path
"""
return Path(filepath).stem
def load_dbscan_filtered_results(filepath: str) -> Set[str]:
"""
Load dbscan filtered results and extract image names.
Args:
filepath: Path to dbscan_filtered_results.json
Returns:
Set of image names extracted from filepaths
"""
with open(filepath, 'r', encoding='utf-8') as f:
data = json.load(f)
image_names = set()
# Extract image names from all results
for result in data.get('results', []):
filepath_str = result.get('filepath', '')
if filepath_str:
# Extract filename without extension
image_name = extract_image_names_from_filepath(filepath_str)
image_names.add(image_name)
# Also try to match different variations
# Some images might have different naming patterns
filename = Path(filepath_str).name
# Remove extension and add to set
filename_without_ext = Path(filename).stem
image_names.add(filename_without_ext)
return image_names
def load_label_data(filepath: str) -> List[Dict]:
"""
Load label data from JSON file.
Args:
filepath: Path to label_data.json
Returns:
List of label data samples
"""
with open(filepath, 'r', encoding='utf-8') as f:
return json.load(f)
def filter_label_data(label_data: List[Dict], valid_image_names: Set[str]) -> List[Dict]:
"""
Filter label data to keep only samples with matching image names.
Args:
label_data: List of label data samples
valid_image_names: Set of valid image names from dbscan results
Returns:
Filtered list of label data samples
"""
filtered_data = []
for sample in label_data:
image_name = sample.get('image', '')
# Check if the image name matches any of the valid names
# We'll check various matching strategies
if (image_name in valid_image_names or
# Check if any valid name is contained in the image name
any(valid_name in image_name for valid_name in valid_image_names) or
# Check if image name is contained in any valid name
any(image_name in valid_name for valid_name in valid_image_names)):
filtered_data.append(sample)
return filtered_data
def save_filtered_data(filtered_data: List[Dict], output_filepath: str):
"""
Save filtered data to JSON file.
Args:
filtered_data: Filtered label data
output_filepath: Path to save the filtered data
"""
with open(output_filepath, 'w', encoding='utf-8') as f:
json.dump(filtered_data, f, ensure_ascii=False, indent=2)
def main():
"""Main function to execute the filtering process."""
# Input file paths
# dbscan_results_path = '014_dbscan_filtered_results_temp.json'
# dbscan_results_path = '/home/nguyendc/sonnh/embedding-clustering/filter/027_dbscan_v3_filtered_results_temp.json'
dbscan_results_path = '/home/nguyendc/sonnh/embedding-clustering/filter/029_dbscan_v3_filtered_results_temp_30.json'
print(dbscan_results_path)
label_data_path = '/home/nguyendc/sonnh/embedding-clustering/filter/label_data.json'
# Output file path
# output_path = '014_filtered_label_data_dbscan_v2_30_percent_amount_data.json'
output_path = '030_dbscan_v3_retrain_014.json'
# Check if input files exist
if not os.path.exists(dbscan_results_path):
print(f"Error: {dbscan_results_path} not found!")
return
if not os.path.exists(label_data_path):
print(f"Error: {label_data_path} not found!")
return
print("Loading dbscan filtered results...")
valid_image_names = load_dbscan_filtered_results(dbscan_results_path)
print(f"Found {len(valid_image_names)} unique image names in dbscan results")
print("Loading label data...")
label_data = load_label_data(label_data_path)
print(f"Loaded {len(label_data)} samples from label data")
print("Filtering label data...")
filtered_data = filter_label_data(label_data, valid_image_names)
print(f"Filtered to {len(filtered_data)} samples")
print(f"Saving filtered data to {output_path}...")
save_filtered_data(filtered_data, output_path)
print("Filtering completed successfully!")
print(f"Original samples: {len(label_data)}")
print(f"Filtered samples: {len(filtered_data)}")
print(f"Reduction: {len(label_data) - len(filtered_data)} samples removed")
print(f"Retention rate: {len(filtered_data)/len(label_data)*100:.2f}%")
if __name__ == "__main__":
main()

326
filter/dbscan.py Normal file
View File

@@ -0,0 +1,326 @@
#!/usr/bin/env python3
"""
DBSCAN Clustering Filter
Filters clustering results based on specific criteria:
- For each cluster: select 50% of points
- 25% from center region (closest to centroid)
- 25% from border region (furthest from centroid)
- All noise points are selected
- Uses cosine distance metric
"""
import json
import numpy as np
from sklearn.preprocessing import normalize
from sklearn.metrics.pairwise import cosine_distances
import argparse
import os
from pathlib import Path
class DBSCANFilter:
def __init__(self, embeddings_path, clustering_results_path):
"""
Initialize DBSCAN filter
Args:
embeddings_path: Path to embeddings JSON file
clustering_results_path: Path to DBSCAN clustering results JSON
"""
self.embeddings_path = embeddings_path
self.clustering_results_path = clustering_results_path
self.embeddings = None
self.embeddings_normalized = None
self.clustering_results = None
self.filepath_to_embedding = {}
def load_data(self):
"""Load embeddings and clustering results"""
print("Loading embeddings...")
with open(self.embeddings_path, 'r') as f:
embeddings_data = json.load(f)
# Create mapping from filepath to embedding
embeddings_list = []
filepaths = []
for item in embeddings_data:
self.filepath_to_embedding[item['filepath']] = item['embedding']
embeddings_list.append(item['embedding'])
filepaths.append(item['filepath'])
self.embeddings = np.array(embeddings_list, dtype=np.float32)
self.embeddings_normalized = normalize(self.embeddings, norm='l2')
print(f"Loaded {len(embeddings_list)} embeddings")
print("Loading clustering results...")
with open(self.clustering_results_path, 'r') as f:
self.clustering_results = json.load(f)
print(f"Loaded clustering results: {self.clustering_results['n_clusters']} clusters, "
f"{self.clustering_results['n_samples']} samples")
def group_by_clusters(self):
"""Group data points by cluster labels"""
clusters = {}
noise_points = []
for result in self.clustering_results['results']:
cluster_id = result['cluster']
filepath = result['filepath']
if 'is_noise' in result:
is_noise = result['is_noise']
else:
is_noise = False
if is_noise or cluster_id == -1:
noise_points.append({
'filepath': filepath,
'embedding': self.filepath_to_embedding[filepath]
})
else:
if cluster_id not in clusters:
clusters[cluster_id] = []
clusters[cluster_id].append({
'filepath': filepath,
'embedding': self.filepath_to_embedding[filepath]
})
return clusters, noise_points
def calculate_cluster_centroid(self, cluster_points):
"""Calculate centroid of a cluster using normalized embeddings"""
embeddings = np.array([point['embedding'] for point in cluster_points])
embeddings_normalized = normalize(embeddings, norm='l2')
# For cosine distance, centroid is the normalized mean
centroid = np.mean(embeddings_normalized, axis=0)
centroid_normalized = normalize(centroid.reshape(1, -1), norm='l2')[0]
return centroid_normalized
def calculate_cosine_distances_to_centroid(self, cluster_points, centroid):
"""Calculate cosine distances from each point to cluster centroid"""
embeddings = np.array([point['embedding'] for point in cluster_points])
embeddings_normalized = normalize(embeddings, norm='l2')
# Calculate cosine distances to centroid
distances = cosine_distances(embeddings_normalized, centroid.reshape(1, -1)).flatten()
return distances
# v1 0.5 data, 0.5 center 0.5 border
# v2 0.5 data, 0.25 center 0.75 border
# def filter_cluster(self, cluster_points, selection_ratio=0.5):
# v3 0.75 data, 0.25 center 0.75 border
def filter_cluster(self, cluster_points, selection_ratio=0.5):
"""
Filter points from a cluster
Args:
cluster_points: List of points in the cluster
selection_ratio: Ratio of points to select (default: 0.5 = 50%)
Returns:
List of selected points
"""
if len(cluster_points) == 0:
return []
# Calculate how many points to select
total_points = len(cluster_points)
num_to_select = max(15, int(total_points * selection_ratio))
# If we need to select all or almost all points, just return all
if num_to_select >= total_points:
return cluster_points
# Calculate centroid
centroid = self.calculate_cluster_centroid(cluster_points)
# Calculate distances to centroid
distances = self.calculate_cosine_distances_to_centroid(cluster_points, centroid)
# Create list of (point, distance) pairs
point_distance_pairs = list(zip(cluster_points, distances))
# Sort by distance (closest to furthest from centroid)
point_distance_pairs.sort(key=lambda x: x[1])
# Calculate how many points to select from center and border
# 25% from center (closest to centroid)
center_count = max(1, int(num_to_select * 0.25)) # 50% of selected points from center
# 25% from border (furthest from centroid)
border_count = num_to_select - center_count # remaining from border
selected_points = []
# Select center points (closest to centroid)
center_points = [pair[0] for pair in point_distance_pairs[:center_count]]
selected_points.extend(center_points)
# Select border points (furthest from centroid)
if border_count > 0:
border_points = [pair[0] for pair in point_distance_pairs[-border_count:]]
selected_points.extend(border_points)
print(f"Cluster with {total_points} points -> selected {len(selected_points)} points "
f"({center_count} center + {border_count} border)")
return selected_points
def filter_all_clusters(self):
"""Filter all clusters according to the specified criteria"""
print("\n" + "="*60)
print("FILTERING DBSCAN CLUSTERING RESULTS")
print("="*60)
clusters, noise_points = self.group_by_clusters()
print(f"Found {len(clusters)} clusters and {len(noise_points)} noise points")
filtered_results = []
# Process each cluster
for cluster_id, cluster_points in clusters.items():
print(f"\nProcessing Cluster {cluster_id}:")
filtered_points = self.filter_cluster(cluster_points)
# Add cluster information
for point in filtered_points:
filtered_results.append({
'filepath': point['filepath'],
'cluster': cluster_id,
'is_noise': False,
'selection_type': 'cluster_filtered'
})
# Add all noise points
print(f"\nAdding all {len(noise_points)} noise points...")
for point in noise_points:
filtered_results.append({
'filepath': point['filepath'],
'cluster': -1,
'is_noise': True,
'selection_type': 'noise'
})
return filtered_results
def save_filtered_results(self, filtered_results, output_path=None):
"""Save filtered results to JSON file"""
if output_path is None:
# Generate output filename based on input
base_name = Path(self.clustering_results_path).stem
output_path = f"{base_name}_filtered.json"
# Create summary statistics
cluster_stats = {}
noise_count = 0
for result in filtered_results:
if result['is_noise']:
noise_count += 1
else:
cluster_id = result['cluster']
if cluster_id not in cluster_stats:
cluster_stats[cluster_id] = 0
cluster_stats[cluster_id] += 1
# Prepare output data
output_data = {
"method": "DBSCAN_FILTERED",
"original_n_clusters": self.clustering_results['n_clusters'],
"original_n_samples": self.clustering_results['n_samples'],
"filtered_n_samples": len(filtered_results),
"filtering_criteria": {
"cluster_selection_ratio": 0.5,
"center_points_ratio": 0.5, # 50% of selected points from center
"border_points_ratio": 0.5, # 50% of selected points from border
"noise_points": "all_selected"
},
"cluster_statistics": cluster_stats,
"noise_points": noise_count,
"results": filtered_results
}
with open(output_path, 'w', encoding='utf-8') as f:
json.dump(output_data, f, indent=4, ensure_ascii=False)
print("\n" + "="*60)
print("FILTERING SUMMARY")
print("="*60)
print(f"Original samples: {self.clustering_results['n_samples']}")
print(f"Filtered samples: {len(filtered_results)}")
print(f"Reduction ratio: {len(filtered_results)/self.clustering_results['n_samples']:.2%}")
print("\nCluster breakdown:")
for cluster_id, count in sorted(cluster_stats.items()):
print(f" Cluster {cluster_id}: {count} points")
print(f" Noise points: {noise_count} points")
print(f"\nFiltered results saved to: {output_path}")
return output_path
def create_filepath_list(self, filtered_results, output_txt_path=None):
"""Create a simple text file with filtered filepaths"""
if output_txt_path is None:
base_name = Path(self.clustering_results_path).stem
output_txt_path = f"{base_name}_filtered_filepaths.txt"
filepaths = [result['filepath'] for result in filtered_results]
with open(output_txt_path, 'w', encoding='utf-8') as f:
for filepath in filepaths:
f.write(f"{filepath}\n")
print(f"Filepath list saved to: {output_txt_path}")
return output_txt_path
def main():
parser = argparse.ArgumentParser(description="Filter DBSCAN clustering results")
parser.add_argument("--embeddings_path", required=True,
help="Path to embeddings JSON file")
parser.add_argument("--clustering_results_path", required=True,
help="Path to DBSCAN clustering results JSON file")
parser.add_argument("--output_path",
help="Output path for filtered results (optional)")
parser.add_argument("--create_filepath_list", action="store_true",
help="Also create a simple text file with filtered filepaths")
args = parser.parse_args()
# Validate input files exist
if not os.path.exists(args.embeddings_path):
print(f"Error: Embeddings file not found: {args.embeddings_path}")
return
if not os.path.exists(args.clustering_results_path):
print(f"Error: Clustering results file not found: {args.clustering_results_path}")
return
# Initialize filter
filter_obj = DBSCANFilter(args.embeddings_path, args.clustering_results_path)
# Load data
filter_obj.load_data()
# Filter clusters
filtered_results = filter_obj.filter_all_clusters()
# Save results
filter_obj.save_filtered_results(filtered_results, args.output_path)
# Create filepath list if requested
if args.create_filepath_list:
filter_obj.create_filepath_list(filtered_results)
print("\nFiltering completed successfully!")
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,429 @@
#!/usr/bin/env python3
"""
DBSCAN Clustering Filter
Filters clustering results based on specific criteria:
- For each cluster: select 50% of points
- 25% from center region (closest to centroid)
- 25% from border region (furthest from centroid)
- All noise points are selected
- Uses cosine distance metric
"""
import json
import numpy as np
from sklearn.preprocessing import normalize
from sklearn.metrics.pairwise import cosine_distances
import argparse
import os
from pathlib import Path
import random
class DBSCANFilter:
def __init__(self, embeddings_path, clustering_results_path):
"""
Initialize DBSCAN filter
Args:
embeddings_path: Path to embeddings JSON file
clustering_results_path: Path to DBSCAN clustering results JSON
"""
self.embeddings_path = embeddings_path
self.clustering_results_path = clustering_results_path
self.embeddings = None
self.embeddings_normalized = None
self.clustering_results = None
self.filepath_to_embedding = {}
def load_data(self):
"""Load embeddings and clustering results"""
print("Loading embeddings...")
with open(self.embeddings_path, 'r') as f:
embeddings_data = json.load(f)
# Create mapping from filepath to embedding
embeddings_list = []
filepaths = []
for item in embeddings_data:
self.filepath_to_embedding[item['filepath']] = item['embedding']
embeddings_list.append(item['embedding'])
filepaths.append(item['filepath'])
self.embeddings = np.array(embeddings_list, dtype=np.float32)
self.embeddings_normalized = normalize(self.embeddings, norm='l2')
print(f"Loaded {len(embeddings_list)} embeddings")
print("Loading clustering results...")
with open(self.clustering_results_path, 'r') as f:
self.clustering_results = json.load(f)
print(f"Loaded clustering results: {self.clustering_results['n_clusters']} clusters, "
f"{self.clustering_results['n_samples']} samples")
def group_by_clusters(self):
"""Group data points by cluster labels"""
clusters = {}
noise_points = []
for result in self.clustering_results['results']:
cluster_id = result['cluster']
filepath = result['filepath']
if 'is_noise' in result:
is_noise = result['is_noise']
else:
is_noise = False
if is_noise or cluster_id == -1:
noise_points.append({
'filepath': filepath,
'embedding': self.filepath_to_embedding[filepath]
})
else:
if cluster_id not in clusters:
clusters[cluster_id] = []
clusters[cluster_id].append({
'filepath': filepath,
'embedding': self.filepath_to_embedding[filepath]
})
return clusters, noise_points
def calculate_cluster_centroid(self, cluster_points):
"""Calculate centroid of a cluster using normalized embeddings"""
embeddings = np.array([point['embedding'] for point in cluster_points])
embeddings_normalized = normalize(embeddings, norm='l2')
# For cosine distance, centroid is the normalized mean
centroid = np.mean(embeddings_normalized, axis=0)
centroid_normalized = normalize(centroid.reshape(1, -1), norm='l2')[0]
return centroid_normalized
def calculate_cosine_distances_to_centroid(self, cluster_points, centroid):
"""Calculate cosine distances from each point to cluster centroid"""
embeddings = np.array([point['embedding'] for point in cluster_points])
embeddings_normalized = normalize(embeddings, norm='l2')
# Calculate cosine distances to centroid
distances = cosine_distances(embeddings_normalized, centroid.reshape(1, -1)).flatten()
return distances
# v3
def filter_cluster(self, cluster_points, selection_ratio=0.3):
"""
Filter points from a cluster
Args:
cluster_points: List of points in the cluster
selection_ratio: Ratio of points to select (default: 0.5 = 50%)
Returns:
List of selected points
"""
if len(cluster_points) == 0:
return []
# Calculate how many points to select
total_points = len(cluster_points)
num_to_select = max(15, int(total_points * selection_ratio))
# If we need to select all or almost all points, just return all
if num_to_select >= total_points:
return cluster_points
# Calculate centroid
centroid = self.calculate_cluster_centroid(cluster_points)
# Calculate distances to centroid
distances = self.calculate_cosine_distances_to_centroid(cluster_points, centroid)
# Create list of (point, distance) pairs
point_distance_pairs = list(zip(cluster_points, distances))
# Sort by distance (closest to furthest from centroid)
point_distance_pairs.sort(key=lambda x: x[1])
dis = 0.1
# count_center = sum(1 for pair in point_distance_pairs if pair[1] < dis)
all_center_points = [pair[0] for pair in point_distance_pairs if pair[1] < dis]
print(f"Number of center points (distance < {dis}): {len(all_center_points)}")
# count_border = sum(1 for pair in point_distance_pairs if pair[1] >= dis)
all_border_points = [pair[0] for pair in point_distance_pairs if pair[1] >= dis]
print(f"Number of border points (distance >= {dis}): {len(all_border_points)}")
# Calculate how many points to select from center and border
n_center = len(all_center_points)
center_count = max(1, int(n_center * 0.15))
n_border = len(all_border_points)
if n_border < 70:
border_count = n_border
else:
border_count = max(0, int(n_border * 0.3)) # remaining from border
selected_points = []
random.seed(42)
# Select center points (closest to centroid)
# center_points = [pair[0] for pair in point_distance_pairs[:center_count]]
center_points = random.sample(all_center_points, center_count)
selected_points.extend(center_points)
# # Select border points (furthest from centroid)
if border_count > 0:
# border_points = [pair[0] for pair in point_distance_pairs[-border_count:]]
border_points = random.sample(all_border_points, border_count)
selected_points.extend(border_points)
print(f"Cluster with {total_points} points -> selected {len(selected_points)} points "
f"({center_count} center + {border_count} border)")
return selected_points
def filter_all_clusters(self):
"""Filter all clusters according to the specified criteria"""
print("\n" + "="*60)
print("FILTERING DBSCAN CLUSTERING RESULTS")
print("="*60)
clusters, noise_points = self.group_by_clusters()
print(f"Found {len(clusters)} clusters and {len(noise_points)} noise points")
filtered_results = []
# Process each cluster
for cluster_id, cluster_points in clusters.items():
print(f"\nProcessing Cluster {cluster_id}:")
filtered_points = self.filter_cluster(cluster_points)
# Add cluster information
for point in filtered_points:
filtered_results.append({
'filepath': point['filepath'],
'cluster': cluster_id,
'is_noise': False,
'selection_type': 'cluster_filtered'
})
# Add all noise points
print(f"\nAdding all {len(noise_points)} noise points...")
for point in noise_points:
filtered_results.append({
'filepath': point['filepath'],
'cluster': -1,
'is_noise': True,
'selection_type': 'noise'
})
return filtered_results
def save_full_clusters_separately(self, output_dir=None):
"""Save ALL points of each cluster (and noise) into separate JSON files.
The output format for each file matches the existing aggregated format
produced by save_filtered_results (keys / structure unchanged). Only the
content (subset of results) differs. Noise is treated as a cluster with id -1.
Args:
output_dir: Optional directory to place per-cluster files. If None,
files are written next to the clustering_results file.
Returns:
List of written file paths.
"""
clusters, noise_points = self.group_by_clusters()
base_name = Path(self.clustering_results_path).stem
if output_dir is None:
output_dir = Path('.')
else:
output_dir = Path(output_dir)
output_dir.mkdir(parents=True, exist_ok=True)
written_files = []
# Helper to build and write one cluster file
def _write_cluster_file(cluster_id, points, is_noise=False):
# Build results entries preserving field names
results_entries = []
for p in points:
results_entries.append({
'filepath': p['filepath'],
'cluster': -1 if is_noise else cluster_id,
'is_noise': is_noise,
'selection_type': 'noise' if is_noise else 'cluster_full'
})
# Stats
if is_noise:
cluster_stats = {}
noise_count = len(points)
else:
cluster_stats = {cluster_id: len(points)}
noise_count = 0
output_data = {
"method": "DBSCAN_FILTERED", # keep unchanged label
"original_n_clusters": self.clustering_results['n_clusters'],
"original_n_samples": self.clustering_results['n_samples'],
"filtered_n_samples": len(results_entries),
"filtering_criteria": {
# Keep same keys / structure (values kept as original literal values)
"cluster_selection_ratio": 0.5,
"center_points_ratio": 0.5,
"border_points_ratio": 0.5,
"noise_points": "all_selected"
},
"cluster_statistics": cluster_stats,
"noise_points": noise_count,
"results": results_entries
}
# Filename
if is_noise:
filename = f"{base_name}_cluster_noise.json"
else:
filename = f"{base_name}_cluster_{cluster_id}.json"
out_path = output_dir / filename
with open(out_path, 'w', encoding='utf-8') as f:
json.dump(output_data, f, indent=4, ensure_ascii=False)
written_files.append(str(out_path))
print(f"Saved cluster {cluster_id if not is_noise else 'noise'} -> {out_path} ({len(points)} samples)")
# Write each real cluster
for cid, pts in clusters.items():
_write_cluster_file(cid, pts, is_noise=False)
# Noise as its own cluster
if noise_points:
_write_cluster_file(-1, noise_points, is_noise=True)
return written_files
def save_filtered_results(self, filtered_results, output_path=None):
"""Save filtered results to JSON file"""
if output_path is None:
# Generate output filename based on input
base_name = Path(self.clustering_results_path).stem
output_path = f"{base_name}_filtered.json"
# Create summary statistics
cluster_stats = {}
noise_count = 0
for result in filtered_results:
if result['is_noise']:
noise_count += 1
else:
cluster_id = result['cluster']
if cluster_id not in cluster_stats:
cluster_stats[cluster_id] = 0
cluster_stats[cluster_id] += 1
# Prepare output data
output_data = {
"method": "DBSCAN_FILTERED",
"original_n_clusters": self.clustering_results['n_clusters'],
"original_n_samples": self.clustering_results['n_samples'],
"filtered_n_samples": len(filtered_results),
"filtering_criteria": {
"cluster_selection_ratio": 0.5,
"center_points_ratio": 0.5, # 50% of selected points from center
"border_points_ratio": 0.5, # 50% of selected points from border
"noise_points": "all_selected"
},
"cluster_statistics": cluster_stats,
"noise_points": noise_count,
"results": filtered_results
}
with open(output_path, 'w', encoding='utf-8') as f:
json.dump(output_data, f, indent=4, ensure_ascii=False)
print("\n" + "="*60)
print("FILTERING SUMMARY")
print("="*60)
print(f"Original samples: {self.clustering_results['n_samples']}")
print(f"Filtered samples: {len(filtered_results)}")
print(f"Reduction ratio: {len(filtered_results)/self.clustering_results['n_samples']:.2%}")
print("\nCluster breakdown:")
for cluster_id, count in sorted(cluster_stats.items()):
print(f" Cluster {cluster_id}: {count} points")
print(f" Noise points: {noise_count} points")
print(f"\nFiltered results saved to: {output_path}")
return output_path
def create_filepath_list(self, filtered_results, output_txt_path=None):
"""Create a simple text file with filtered filepaths"""
if output_txt_path is None:
base_name = Path(self.clustering_results_path).stem
output_txt_path = f"{base_name}_filtered_filepaths.txt"
filepaths = [result['filepath'] for result in filtered_results]
with open(output_txt_path, 'w', encoding='utf-8') as f:
for filepath in filepaths:
f.write(f"{filepath}\n")
print(f"Filepath list saved to: {output_txt_path}")
return output_txt_path
def main():
parser = argparse.ArgumentParser(description="Filter DBSCAN clustering results")
parser.add_argument("--embeddings_path", required=True,
help="Path to embeddings JSON file")
parser.add_argument("--clustering_results_path", required=True,
help="Path to DBSCAN clustering results JSON file")
parser.add_argument("--output_path",
help="Output path for filtered results (optional)")
parser.add_argument("--create_filepath_list", action="store_true",
help="Also create a simple text file with filtered filepaths")
parser.add_argument("--save_full_clusters", action="store_true",
help="Save ALL points of each cluster (and noise) into separate JSON files without altering format")
parser.add_argument("--clusters_output_dir",
help="Directory to store per-cluster JSON files (default: current directory)")
args = parser.parse_args()
# Validate input files exist
if not os.path.exists(args.embeddings_path):
print(f"Error: Embeddings file not found: {args.embeddings_path}")
return
if not os.path.exists(args.clustering_results_path):
print(f"Error: Clustering results file not found: {args.clustering_results_path}")
return
# Initialize filter
filter_obj = DBSCANFilter(args.embeddings_path, args.clustering_results_path)
# Load data
filter_obj.load_data()
# Filter clusters
filtered_results = filter_obj.filter_all_clusters()
# Save results
filter_obj.save_filtered_results(filtered_results, args.output_path)
# Save full clusters separately if requested
if args.save_full_clusters:
print("\nSaving full clusters (no filtering) separately...")
filter_obj.save_full_clusters_separately(args.clusters_output_dir)
# Create filepath list if requested
if args.create_filepath_list:
filter_obj.create_filepath_list(filtered_results)
print("\nFiltering completed successfully!")
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,981 @@
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/eedda33e-049b-4ab8-aee8-6f5d0c88b500_IMG_0358_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/dd1f6f53-e26f-44a1-90af-3f0167eea8e6_IMG_1045_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/d05b8d2e-0d0b-4354-9f3a-5cfaacf274da_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f5e670b2-9825-444b-a6c3-4f5e2a8d2882_20250206_110853_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6e609e6b-dd09-4dd8-9192-416dd99e3fc6_IMG_20250207_135202_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/7e3f586b-8053-40b0-9902-485f6af20e7c_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/df1aed59-e90c-44b3-b554-9486d68418da_IMG_4636_1_scale_0.8.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6b927189-bc6c-49e5-aadc-9c58f56a6d68_IMG_2695_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/3f09fc00-ffd5-498a-adb8-b6805519ad3a_20250212_133526_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/dbe359c6-62bd-4697-874d-992495192860_20250212_164630_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724425031238IMG_20240417_161859.jpg_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1271a6e8-cf74-4e87-927d-abdefb4609f6_1739029106267._1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Extrait acte de naissance - 27049977-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/5ff72751-5d92-463c-a272-97fda77c34f8_2025-01-31-13187-Luc_Lisa_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/881d86b7-5bdb-4a16-bcbc-57202e0879b1_osteo_fevrier_2025_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8c0d32a4-a14c-4294-9130-d34cc8fcdffa_Piece_identite__livret_famille-2_1_scale_0.8.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/caaa1340-dc45-4133-9ff4-8bac8e2f6bbd_Facture_Lunettes_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/17244250314221713370771620192636844333496435_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Extrait acte de naissance - 27060888-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/141f7ccc-37ab-4da5-9788-80a27e819b8b_Feuilles_de_soins_Psychologue_x2_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/4b0d7324-9a46-4f2c-872b-4b9c06cb0566_595570692474790_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/72347d5c-1c18-4a42-8b6c-f0a365dbaf97_FACTURE_N_14_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/46ddeec5-97bf-4175-b214-b7bd74c4fa24_Renouvin_Ferlicot_Andre_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/172415668128117241471676118541084374852557430_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27781771_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8682e432-4b4f-4152-a1d6-0e5f52eee148_Osteo_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27620389_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a87c1caa-f6cb-4fbe-a460-8f95e76217c8_IMG_20250207_100001_1_scale_0.9.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/32ffb8dc-fbd0-4edf-94b2-7b784cc72ff2_17479876010256548167621008372337_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b32c815a-62d9-40d2-b979-eb10e581f7a9_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26684583_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/33fea246-3d1b-4751-b216-3c2f5a07d26d_facture_lunettes_pat_16.5.2024_001_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/5600db4f-5884-4f54-87ce-56c8b3f5f0a0_Aurelie_GALEOTTI_Ezio__1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/preview-locataire-certificat-de-scolarite-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724156469378osteopathe_renau_anais_le_31-07-2024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25352522_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/eb5561dd-937b-4c0b-b6c6-56da8b528c94_facture_vision_claire_ophtalmo_1_001_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397366229Facture_RIVALLANDChrystelle_20240413ICQO_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8588f081-a48b-4676-90e1-cabcd66a74ad_IMG_20250207_110801_1_scale_0.9.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27703140_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/831984b8-6c87-4f5d-b0a0-2d0ab5cc9061_20250207_140107_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f02ef934-5964-4230-bfab-42bb97f20398_Scan_20250206_112050_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27238995_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/RIB_Mr_Mme_PHAM-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1142334_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/172415668130417241454121786128659475795835945_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ddc16454-d05b-4e9d-b03c-50468919fef3_IMG_9601_1_scale_0.4.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/c0625556-2cb1-42c8-9433-e31274c121a3_Livret_de_famille_hamidouna-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/588bd118-1770-4c2a-8d86-a6a6cbed79b2_osteopathe_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e3a47913-2535-4417-a34f-fb8213cd8174_recu_osteopathe_du_11-02-25_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Extrait acte de naissance - 27059891-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/d6b93c3d-f00e-49ac-8fce-ebd2c99ec6a5_Feuille_de_soins_PROBST_Annie_20250315_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/3e613099-4659-4efd-b33f-811fc5fc764d_IMG_20250206_131824_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26692990_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658225847osteo_du_17-04-24_CHIROUX_Theo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27756973_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/0a639214-b39e-4971-8d51-d83b7d2d2c2e_facture_lentilles_17_01_2025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27784796_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8dcf02a7-b647-4605-9d95-d3fda3685599_p20250212_14102586_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25003607_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26272878_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1078555_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1062996_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Acte_de_mariage_de_Joachim_Murat_et_de_Marie_Annonciade_Bonaparte-Archives-nationales-AE-I-11-12-12-2_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25375642_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/59c82220-6ed8-4ea6-937a-b40c106e7f3b_Facture_osteo_02-2025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/42182356-427d-4a67-8ad2-a21775f7bf44_17390334446023078850027382669569_1_scale_0.8.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26723534_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25182408_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397366265Facture_consultation_du_090424_psychologue_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27759503_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2dbb4025-f570-49f9-83d1-08aedb2b122d_lunettes_Lou-Ann_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/befdfae1-9f66-454c-8b37-754140a6e5de_Adobe_Scan_09_fevr._2025_2_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/bigcaptureconseil_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e6c39a83-a53c-48f5-bffe-6bdb57337b33_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b0c00bc9-adf8-4972-8350-a2a51177265a_bill_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/95c188de-0800-4cdc-8f02-4c6fdadf3d66_Facture_Osteo_Annick_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25489070_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397121055F.__Louis_Guillaume_G_030424_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/62f9b609-ae07-47b7-9e9f-5b28143887e3_IMG_2284_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26765337_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/72009fc3-e88d-4cbe-b482-7f1f354c17d3_osteo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture RETOUCHE remplie AVEC TVA_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25360588_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26341092_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26722802_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27608383_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/mobilenew2_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/d54b04ed-4dbc-426d-8ab9-39a42c7a5ed2_c5f12183-38cc-43e5-bffd-7844eceb9306_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26077624_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/172422615172020240401_145715_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/5dab2435-c975-40bc-89d4-fadf59c19553_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/250365a0-1f62-406f-b468-a8f87641414f_20250210_140211_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a5bd8b97-a2a8-49ae-900d-0673d2f96637_quittance_optique__1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6ba7415c-4d85-465b-bc52-d60959b9457f_Facture_NCBL_Cataracte_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/21d01f35-2873-4214-a367-be8deea76ff2_IMG_20250205_180742_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a593830c-dcbb-4553-860f-b0925a4c30ef_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/16320fb4-bbc5-4e71-b4b4-a3c6bf818b1a_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27689832_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1217517_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26328720_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25632678_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/fd94f8a5-93f4-49dd-a4c4-cf0b4765d704_Facture_Osteopathe_120225_Daoud_DEBBACHE_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27753021_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27601381_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/7ef7306d-400e-4a56-b31c-02237212c470_Scan_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/44f39110-8f97-415d-8cc1-989f0a6df226_Ostheo_22_01_25_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27679600_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/28a6084a-24a5-4922-b79d-f96dd51c5666_Factures_et_ordonnaces_optique_ABDOUL_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8019accc-33b4-4f20-95eb-3ff1e1d4db0b_nnn_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/14dc234b-2f2e-44d7-9dbe-65da4b000dbb_Lentilles_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27533786_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ee05efb9-c283-46d5-a7e7-222392db9309_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a3e845ff-e89c-4eb0-bf8d-164979dfee2b_Recu_Osteo_LIGNAC_Sebastien_1_scale_0.4.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27698460_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-27210576_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/48e19752-3534-4539-8905-e09bdeb9fddd_CamScanner_11-02-2025_21.51_1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27708551_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1221348_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27708923_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724425079184Facture_Osteopathe_Brousseau_sader_17avr24_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26189648_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/68f79cfb-bc94-42fa-b7d0-2406f95f2327_Devis_lunettes_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/baadcf11-c68e-4774-bbaf-c7dad90b4e13_DURAND_FABIEN_facture_2025-04-25_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27771477_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25224007_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/141d1472-51b6-49f1-a349-e2b5a2adbdde_Facture_osteo__1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/3374a3a0-4ff8-4056-957f-8fedca1cd314_17389546040733582030933880599903_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/7bad16be-dff9-4b92-8041-4a9c38638e29_facturation_osteo-1_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26626836_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27701052_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1a3dc013-5769-4e44-aa30-de4be4852e08_Seance_ostheo_TANCHOU_David_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25949353_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8794ba0a-5d58-4d01-a1be-71f7d5c4bfe2_IMG_20250207_185936_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27651465_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1100809_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658298467Facture_Osteopatie_Melanie_HAMON_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/cbc7ddff-2ed1-441b-85cb-5c1079588a52_Mes_des_factures_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6221379e-7344-4868-9ee0-04f2c4e26874_consultation_ophtalmo27janvier2025BEAUPERINyann_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27547656_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26957916_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/96be3553-7261-4698-bf20-88ca5c826889_ReleveMensuel_Mai_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27757098_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1102494_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2b39033c-dfff-4053-8765-682d1b5ee9b2__Facture_Ostheo_Fernandez_Thibault_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26447823_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2368a8d3-147e-4d8f-b183-889e65f9b30f_Adobe_Scan_10_fevr._2025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/252c4ad4-8fa3-4ed1-9508-ee77f6dce6fe_img20250206_20040851_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25192273_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26660518_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/17243973662518A42024B-6214-4DDE-A3C0-3CA27FC89720_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/5b11f47d-80de-4eb6-854c-4fe8bd4e4903_facture_osteo_30.01.25_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b98b1381-e3b2-41b9-87c8-a75b0a7d5e15_ReleveMensuelDecembre2024_CPAM_optique_Auregane_Daden_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/51062628-4c2d-444e-9359-ff2acb6104a8_facture_ophtalmologue_1_1_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/9496a72b-9c2c-4542-867f-9fc4dad457c1_IMG_20250207_084759_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25911689_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2475-6_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/17243969995542300676-guerrache-jessica-185907478364f5a55cbbbda_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27162326_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/7925fe35-96a3-4739-a64b-4d1c6ab90eeb_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27614709_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27580555_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/172415667782120240819_193126_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25979892_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26723851_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/modele-bon-de-livraison-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724396999541Image_2_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27712494_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6476f20b-dbac-4bba-9be0-3c22801eb59c_CamScanner_11-02-2025_21.51_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/3766651c-f086-4765-9557-c423473ea246_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/conseilmobile_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/137e6371-6478-4a36-8383-0090366a49fe_facture_Gros_Barbara_3_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27554761_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27597800_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25117297_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/3bae1b45-0f26-4056-b59c-a04c52679135_recu-fac-2025-1036_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/072fc9e8-d2ba-4bc7-9569-712845984ff8_Facture_ostheo_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27618927_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Attestation de droits RO-25180485-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-GED E-J22-1328268_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27668729_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/02c6c398-ddf5-47e9-be88-a27742a2683c_recu-fac-2025-02-002979_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e7f2d26a-0abe-479b-bedf-02ea97f357d8_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26722562_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/RIB-TESTNHIDEUX-UT-9-4-2025_152144-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1112007_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/actmariaaafd02qfqdfdfe5024424af_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26689382_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/91c41171-ac88-4ce4-8f15-48c4ad2c5aa2_Devis_lunette_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/56f4bf93-8fe8-4273-a48a-4d2551892ec8_facture_osthero_2_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27586729_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26772899_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/c691b973-9ac9-4fc3-aaf2-d6dde41c98e0_livret_de_famille-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26702327_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27701057_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1184307_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/3860a65d-b7fe-45ed-942d-5832de69430e_Facture_osteo_15-01-25_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b6f16c2c-bd49-4062-b2ee-486cef3a62a7_Facture_Mr_Boulahia_Mohammed_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/fixIBULL_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f19b0290-ea44-45ae-9c34-719083ec4671_Lentilles_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2b987e55-9575-4a74-a557-94540c2a7548_Scan_CPN_STL_Siat_20250207161910_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27588122_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f482ebef-e885-4627-a927-96ad54ab5aa0_Facture_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ffa6f7d2-f14a-4a66-bc63-69977fb71a7a_2_consult_hypnose__1_scale_0.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/172563258396120240419_114051_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26709735_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ed2edb2f-d8f6-4194-8a2e-a42e49d6c317_2025-02-12_18-25_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25236328_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27146817_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/d3ef8b3d-b78f-4455-b2d6-1c9ef9ec5e60_Quittance_Ophtalmologue_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658225861IMG_4399_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1d4346b3-1322-457d-9436-ea1d82f74cea_Facture_ophtalmo_enfants_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1150ac6a-abdc-409d-b7ca-296e7b35769c_Facture_BOLZERJean_Francois_20250131GMAM_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25236329_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a63e27cd-9d32-4806-9cb9-e3bc43a3c999_image03-02-2025-093926_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/17243971209982400066-guerrache-jessica-83960773165b0ce7dbef5b_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b01c4fa3-53cb-49a7-8e24-a8f7aabe65f2_2025-04-28_consultation_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ec5f9e8d-e15a-421c-9fa8-6274420215cd_Facture_lentilles_2025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b410345a-31de-4397-a896-bc11d97e524c_FACTURE_OPHTALMOLOGISTE_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/24ca9fa1-064d-49a0-8d54-d6f0171c8187_Facture_lunette_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/75f7652c-7e29-494f-a02f-dd2e2c47c9e0_CamScanner_06-02-2025_15_32_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/847603bb-2553-4d83-ace0-2b6ff79fa244_facture_osteo_06-02-2025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25841816_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/91d588d0-aa0a-438c-91c2-06bbe858810c_n96_DUBOIS_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27691255_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25330401_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f8c6fe47-9608-4f9e-938b-117bfa4dcd30_ostheopatie_2025-02-12_Grenot-JLuc_Mme-Tabary_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27710953_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/7c2574b4-814d-46a5-aa87-a4402f46be9c_DAGHOU_Mustapha_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27654407_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/0cae671e-6b7f-41aa-a0ab-d74b8e15e424_DIMART_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8d5e5dfe-71a8-4a05-a376-8727cd264ffd_osteopathe_do_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a9f88b8f-a751-478e-9338-2d31fb1062e7_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724226151715Facture_Julie_Boissel_2_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25919222_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26729570_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1106092_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27784971_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26592477_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1f5c9f90-eb0c-45aa-b809-e08a7c7593b8_SOPHRO_FACTURE_MME_POIROT_MAURICETTE_JANV_25_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25279751_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658376437factosteo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1d3b5d22-87f2-4c89-90e5-8b0350bca84e_facture__Surre_Chloe_03_fevrier_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f0395d11-18fb-4b9f-bee1-5ca75d656d14_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b0977b46-747a-418c-bd20-9e99472917a2_Screenshot_20250209-143006_Samsung_Notes_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2af3fe93-a285-4ced-898b-90b4106bef8c_osteo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27653858_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27474258_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27576127_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/d317e79c-0485-42f8-b24d-413d94e7a779_Livret_de_famille-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/34162b51-6c3f-4dcc-a18a-d6b9e45e4f22_Recu_ophtalmo_Cadet_Corine_2025-03-09_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25187936_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26107527_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27554784_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Quittance de Loyer 11.24 Mr NGUYEN-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/834a074c-811f-4d27-9c19-134a4b9ab2ea_FACTURE-25-02-208-GEORGES_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27717154_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25273058_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2b3ed78c-1a3c-40b3-b997-0e74f6ba497f_FENOLLAR_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26691031_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/9567846a-09af-4b73-9194-28f51c7bebce_Chevance_Lena_facture_2025-02-11_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/abd25cab-e2d5-456c-ac6c-d209b698daf2_Le_Monnier_Fauche_Nolan_facture_2025-01-31_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724156469373facture_psy_DOMI_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/c7bbe834-632d-4fb6-8e24-c9c5caf488bc_IMG_4966_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27664783_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1105977_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/04fde30d-7891-439d-85e7-285a0d8ffee1_IMG_1550_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1b68fc1f-1e79-4f0b-a9dd-700931da1db1_FACTURE-25-02-542-PLANVIER_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26723200_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1196314_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26255763_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724425031280Facture_Osteopathe_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2212e210-bbbc-466f-b30c-fce89df87489_20250210_134936_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25263636_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/879cf76a-68c1-40d7-b444-0ff3341c97de_facture-zami-isabelle-20250130-1703_1_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/4fa21bd9-393e-41d4-9af2-bf42004f4e94_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1498c5f5-22cf-41d4-87f0-9b295ff481f4_IMG_5659_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/0abfd7b9-9456-4b68-a489-bd990ef9a78e_livret_de_famille-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ff7bd554-e95b-411f-b07a-4347a96eb077_IMG_20250507_112754_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/cd3050c7-d380-4ecc-9665-c7209b6035f9_2025-02-07-malik-chaouche_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27749409_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26005448_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27699508_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/c2b83174-b925-4b53-a364-4f90864eef93_pdfOlivier_B_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/7ad6d85f-7245-4c05-8c79-512ed13fe0d5_lunettes_001_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/bef5bd2d-a370-457f-9d30-f7ce27c4dd70_Facture_2024-12-002_-_S_Frederic_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/626c99a4-986b-401f-b91e-9b6c0f15cce6_Commande_n100691223_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/36571d26-dd70-4596-bcaa-3b77c37e0c38_FACTURE_ETIOPATE_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a4949824-1296-4d97-a46a-6173dee1f3ad_FACTURE_LENTILLES_09_2024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25192590_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Elec+gaz 17.05.25 Auray-2_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2a9dd772-6d23-44ae-95f7-5de05ffd1167_fact_podologue_7-2-25_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/7cec0f10-5643-45db-a0e7-96d14f8a243f_osteo-0924-coste_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27671269_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25034588_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27697454_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/661c031f-1da5-4947-bf0e-3f5ae7267b99_20250206_173541_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27773374_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397125633ostheopate4_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25358481_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25416514_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25241935_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26760297_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/534b115b-9997-48c3-bc09-ffb89e5bddf3_Screenshot_20250212_150902_com.google.android.apps.docs_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/4d989506-6dba-451c-97ab-6c371618298f_8089465_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a7524bf0-1810-47ff-96c1-e744cbb863be_RDV_04.02.25FA-7564-000052_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26729830_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25375639_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397121098Screenshot_20240417_102951_Samsung_Notes_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27776512_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/d40eaef8-860d-43f7-9156-3e2dcd09e498_Screenshot_20250211_104714_cn_wps_moffice_eng_PDFReader2_edit_2442102462482098_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724156677851ostheo_24_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/d9e1cb2a-b44b-4cc8-b07a-030ddf3acd28_Ordonnance_lentilles_Mary_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27148581_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26754469_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27661590_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Impression-facture_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/facture-engie-page-2_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27651465_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27663184_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b1b5e4da-2462-48c1-a9b9-ff75ecd61e37_IMG_20250206_142210_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6f92aef5-73c1-404e-aabe-29f40cffd8b9_facture-20250203003_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/172415667785217241478517061500135449349862696_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25198509_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27671269_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724425031408Facture_psy_fevrier_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658376424KM_C250i24032713020_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/c3c2a06b-9a19-4bc4-8e61-bce909c2d7eb_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25246953_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2f91e647-c8b5-42c5-9a4e-e6dc639bd488_2025-02-00097_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/0ca9563f-d46d-4f22-8f28-a19eca15ae40_Scan0015_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-27210535_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26107528_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25360470_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724226587949AnyScanner_03_25_2024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/da1943b5-80c4-4105-8b48-78f49245b7c4_Facture_patient__1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27703118_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/484d05c2-b89b-4ec0-8968-9ae6a5360f6a_DetailDesPaiements_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27572543_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658126093MM_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/172465812606717133766883857695232286776891989_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e86a4c65-f1d6-4555-83e9-ca7ed9fd7352_IMG_4440_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b2d1c0ae-7f30-4730-82e0-39361ceba000_Facture_du_08.02.25_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25076150_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397366294irm_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27235184_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25352522_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27784796_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/c64d0b90-f96f-432c-8ad7-52567dd9efc4_DRAPERI_Delphine_734_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27686118_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/7f0110a2-87fa-40db-9d29-b89fbc21a5ac_Ostheo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/3ee0ac3b-4d77-4692-80fa-15004f8a3499_facture_ophta_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b685d5dd-e01e-4fa9-b7aa-17abd1a25b74_IMG_5544_1_scale_0.9.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26479073_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a2da2013-8b36-453d-b6cc-d9c8d3336947_Osteo_janvier_2025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-27210547_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1180505_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1433196e-97f1-4452-a061-8ec311e3bddd_IMG_4464_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/5440b8b5-5ea3-4a72-a8bc-23d578333d9b_Osteo_severine_2025_20250206_0001_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26077623_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/dc224b52-7d9a-4cda-9ac9-f12f4a7c1762_20250428102258_001_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27646505_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f8f29a91-6c43-4768-b4ad-ebd1c1cedf5b_17392679302675416955239120322151_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/551dd33d-0011-4887-b115-4ddf28ee0e2f_fact_barret_l_2024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-27210534_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26764274_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/certificat-cérémonie-alice-merveille_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25106529_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1498644-copie-de-l-acte-de-divorce-d-antonio-580x0-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Attestation de droits RO-25935660-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25360588_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/offers1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-GED N-R-2323015_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/085f8bfc-690a-4daf-9559-865274181242_Facture_CIANO_Ophtamologique_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8f0e72ca-64e5-4797-87bc-9378b842433a_CF_1676107_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/39f80d3f-06e9-4bf5-9a57-5bbcb27f3321_facture_osteopathe_12.02.25_001_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27701997_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b7e34b86-fdb8-4ea4-b646-5bee350b947c_IMG_3542_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25007101_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25106530_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/df2d6a0f-3528-4629-a783-3dea426bcad1_IMG_4520_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1084027_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27702698_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2f3c1f06-a109-4236-944c-c6343d80bbe3_IMG_20250211_0001_1_scale_0.8.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/7d3ed5db-8ea9-48bb-870b-d67be0b7eb95_FACTURE_OSTEOPATHE_FEVRIER_2025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f2d7862b-6953-42c0-8fce-22854ae760f9_Osteopathe__1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/cbb73a7f-8331-43df-a7f5-1562efc4bbff_IMG_4077_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/88f6c32a-2ae7-476a-b62f-59f8f74c3289_Facture_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/458af3c4-37ff-4eaf-b88c-99ea6a299a8d_IMG_4610_1_scale_0.4.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e389253a-a9f3-4559-b704-61be921eb0d3_Facture_lentilles_decembre_2024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25164623_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26610950_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27778240_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/d783daf8-282e-4860-af41-904aa36f5405_PXL_20250207_1233101042_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/64423bd1-67f9-49e4-8192-c9e6fae257fc_1739110695856573011383863310512_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25374417_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/02e9fec4-4a39-431e-ae25-2f758a1c1f7f_20250206_174531_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Magasinier-Exemple-de-CV_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/bad7f9ef-347f-4ab6-b69d-c99a726769f2_20250208125718_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/file-5e85e2ead7b5b_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26705902_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26398662_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/7957eec3-5b84-4e8d-bde3-99aa88ceef07_Facture_opticien_Mme_HERMANN_CLAUDETTE_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture psychologie - 27641339_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397125658received_451290077337699_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/717d0d8d-3065-41d4-99d9-8c42dbcab6a8_Viani_Doris_facture_2025-02-01_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/17243969994532400313-simon-heilyn-1693195547661d58d7e884c_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/84731b17-5743-4240-8aab-0f1bcc603925_chiropracteur_1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724156469367facture_psy_DOMI_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27702202_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25406488_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1203226_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25489071_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/carte-tiers-payant_2025-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e0e762ca-3c0c-499e-813f-837b41cb9208_20250206_160143_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1198078_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/21c0bb8a-301e-43e4-b9d4-121a6e1d7106_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f4e2083e-3640-4988-853e-83579e9fed87_Adobe_Scan_11_fevr._2025_1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25310144_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26401996_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/57188e7d-280a-4f94-9d7d-6af62ede30ed_lunettes_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1228504_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26761307_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/9421b4f1-e9f7-42ea-8d9b-833361b16a20_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/bdb308da-16f5-4370-b1a4-8ffe4f063d84_2025-02-06-13-21-14-309_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/bebdddca-5e13-4baa-9b5a-ea26cd0e2db5_Facture_optalmologie_acquitee_du_28.03.2025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26219439_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/preview-facture-2014-09-10-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/0a26adda-beef-4977-966c-12efc73f1d15_20250129_190625_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724425031429IMG_20240417_0001_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26740934_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/d172cce4-7c6e-4954-93ff-ba8bba04e7db_2025-02-04_Facture_BAUDAIS_Ingrid_4_fevrier_2025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25346392_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25190164_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26555547_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25864357_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27701064_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27778165_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/9536b482-958e-4978-9989-3bd87a85ccf6_Ostheo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f2d3f12d-cdd2-4ec6-af22-0aeb3f1f6467_MONIQUE_001_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26610949_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2c07c6c0-9ab6-4578-8a88-704ea038047e_Screenshot_20250211_101627_M365_Copilot_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/RIB DU SIE SCEAUX-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27705929_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f1f52e8d-326c-4714-ac75-c9ade1d945ca_facture_osteopathe_tosi_christine_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/5df53e4c-13e5-4c12-91a2-24236c5cfa5f_IMG_20250207_154557_1_scale_0.9.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/beb224ad-6c43-4abc-b80c-d438d00a77c2_Facture_TP_Client_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/c20881d7-861d-44dd-b69e-a3f5ed4768ea_Osteopathe_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26722801_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27703581_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/c2009b55-58d4-411f-a25a-3dc1e32e4a89_facture_lentille_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/5bb3a883-f00f-42a5-84e4-007ffa949d76_facture_acquittee_optique_MIHI_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/43efc0af-d04d-42a1-b638-89c32aac42d9_osteo_1_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26627281_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Liste_PJ_PasseportTalent_MembreFamille-2_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27711119_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/455854fe-84e6-4ece-9492-276410b4e422_BORDERES1_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27648502_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a3745377-917b-49b9-b9fc-3e65d22c5638_BERTIN_Franck_Facture_osteopathie_du_23_01_2025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/39384a4b-4117-4f56-8cca-55fd51e5b062_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/719ba06c-91ee-44dc-b7b6-4a3132f733af_FievreVillaniCarlaLunettes_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25190194_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/054de057-2011-49a3-9d11-3529ac66348d_roux_clemence_facture_2025-02-12_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26186342_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26715605_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724226587915Facture_kiro_fred_mars_2024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/cc6f476b-07ef-4342-8d4d-3a490ab0d1c9_2025-02-09_22-25_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/172465822585720240416133632216_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724156677823Facture-CONSTANT-F2024-311_240820_122321_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26908261_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/82ac654c-54d4-401f-a006-96d9e46531fe_Facture_ostheo_JEAN_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/60167615-8a25-483b-9354-a6da8deb969c_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/facture-3_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e695ab7d-2b24-46df-8a84-75c6243d04ac_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26550623_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27603575_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1112614_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26705567_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26685696_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724399050413Facture_Osteo_Nathan_15_04_24_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25382470_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/RIB_Mr_Mme_PHAM-2_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26347233_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26626549_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27565028_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/9c2763f2-fb0c-4fe4-be38-6f94fba64162_optical_facture_lunettes_apres_accident_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724396999465IMG_20240416_0001_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25848670_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26771426_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Elec+gaz 17.05.25 Auray-3_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/4377eaa0-4f03-404e-86d3-fb386ae03826_facture_osteo_j3l_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26765337_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/17241566778247779dccd-e833-44f2-8acf-5d5ab7077245_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f40d1b67-7690-4d39-8578-eca04cfd2b3c_Factures_Ethiopathe_Dimitri_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26479073_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27711119_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26556388_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27703142_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f539946f-af74-4bd2-92d6-36c8b867b21e_FACTURE_21.01.2025_JEAN_OSTEO_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/40e6166e-dce5-4710-aba7-538fa663ec6c_IMG_20250306_093631_1_scale_0.8.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27701669_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27611284_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658126054image16-04-2024-173146-1_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/815d334e-5da4-47f8-8ab5-2dd9365f9b63_Numerisation_20250206_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/d3aea37d-3c4d-49b1-bbd6-75fdea788fc9_IMG_3831_1_scale_0.8.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26771865_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27702790_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25880926_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25352901_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658298484BENTO29032024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27596586_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27784754_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e93a0fa5-82af-43d0-a3b5-f59a8b753c4f_IMG_2051_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/5e06ef95-6731-4416-a626-67039c3593dd_facture_osteo_chris_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1866f267-d6a3-49c5-80c3-e1c5d5ee6e72_HAEFFNER_Esther_Honoraires_osteeo-Schweickart_du_070225_Montant_55_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1174802_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724399050329osteo_B_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/bedf599f-99db-4613-aa22-17d52690c34c_doc00194520240521104544_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26683579_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6555a519-f9f4-4b6a-ae0d-fd491dcf9a96_Bidard_Dylan_facture_2025-02-08_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27784861_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/17243971210022_factures_naturopathie_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27703160_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27701197_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1101598_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25375639_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/920c8c7c-e3b7-445f-8fcc-4d89cc33a578_facture_osteo_du_04022025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27693842_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/fd8187e1-b9eb-4727-8041-9fc9e6f1affb_0556_001_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6d5224ac-69a5-4658-b278-a7a03fef5cd8_facture_osteo_2_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/17242265879332024-03-04_Osteo_facture_-Xa_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397366227Scan_Attestation_soin_MCT_15_av_2024_Mme_Nadine_ROMERO_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8eceb56a-b571-4ab6-a64e-668db6bf4ad5_chiropracteur_fevrier_25_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26349654_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27534156_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/9dfe878b-b49f-4c96-bab5-93bb2ccfc4cf_Facture_DE_LA_RIVIERE_G_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25143901_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ab1215bd-b251-4071-85aa-e24ef9dfd006_2024-12-31-valentin-petit-blanc_1_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-27232722_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/84ee3980-6f2b-4943-9b11-1996dce1039f_Dossier_lentilles_Stephanie_M_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25161622_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724226151881090424_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27668729_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/499639d7-4faa-4d3e-b412-7f75da0b4e01_quercy_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25382478_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27705426_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/72bb486e-792d-45ef-b522-511ea16d56ef_IMG_5602_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Certificate of honour for filing all statutory tax returns_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/fe5aa214-30d9-44e4-a735-43ebe3eee76f_20240916_081457_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25054565_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724226151864OPPON_GEORGES_ORDO_LENT_2024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26775374_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724226587918facture_kiro_vanessa_29_mars_2024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25357010_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/17243969995351713296832283485517389105164997_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27701052_3_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f1313200-92c8-4b7d-93e9-c010275f811c_osteo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26719410_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1197096_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27703114_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25176008_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724226587965Consultation_psychologie_Nathan_MERTEN_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27694953_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/mus22_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a4873987-de63-47b0-b0ef-81044554305f_IMG_20250211_163051_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1092486_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8f8adcc8-9b8f-48e0-94d5-d8cfb9d84a1f_Scanned_20250212_154615_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25632680_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1041724_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27575670_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/45ccffcd-5fe8-418b-80c2-894086de9087_facture_ophtalmo_Fred__1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/bdd3ed76-034c-4414-a72d-39cf766d272f_1739358339947320998553071824360_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/043bf393-055f-451c-ba6f-f01cac5964f0_17370239165192445587441836799654_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/323d5c7f-9ec7-42b0-9cad-d7cbd5f5c4d1_2025-02-06-simon-blondel_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/offers_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27396737_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/4969fd33-c173-4ae5-8020-28985599da71_17389252341351391827234693879142_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27622860_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6e41e75d-289c-4d07-a65c-9400c0cee5b7_Ophtalmo_Eshal_compressed_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/380f5d8e-540c-4671-8b03-26b7f659b7b4_image0000001_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27604021_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/01a27c1e-afbe-428f-9261-a9a82d1b2efb_IMG_20250210_171911_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/70c197e1-93a3-4eed-9b39-6f96d8cd07f2_17392727785368655476842236029180_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/17243969995522300584-guerrache-jessica-57560893664d4b237dd783_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/0b801a90-3a0a-4b0c-bc7d-56f18b938619_2025-01-23-ophelie-lenoir_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/9c2ac88c-d912-4d55-8ea3-20e2feb3b8ad_Livret_de_famille_8-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6bf53897-d7c7-4485-9393-4ebbaf952d30_2ostheoRecu_2025-02-06_092631_1_scale_0.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26052732_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/fdaa0d42-8e79-4506-b222-373c88891ff5_notehonoraire__20250212_143947_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25239523_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6589f4fa-ebac-459a-9ebe-aa84820a2905_FACTURE_LENTILLE_2024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/modele-contrat-de-travail-plein-temps-city-management-lausanne_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6f544990-74c6-4c7e-8a25-08eb3f9138c8_RemboursementSoins01082024_1_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26941951_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/699e17b1-2aff-4884-af8c-126367c8ca95_lunettes_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1cbf5b4f-5370-4ad4-b877-1e3aaf3259f6_Document_2025-02-05_105424_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2d21dc04-ddde-4f3f-a9a2-bd0070dc04e4_Factures_ophtalmo_3_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2d79f19d-3ec5-4cdf-a88b-040e733860fa_Osteopathe_2_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27690522_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/facture-engie-page-4_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724226151795facture_du_30_mars_2024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/795c0773-842a-467d-b78f-07746869b761_IMG_20250228_084908_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e45ea3e1-95fe-4d22-acf4-8ed0a30d9dc6_IMG20250206200324_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/719ba06c-91ee-44dc-b7b6-4a3132f733af_FievreVillaniCarlaLunettes_4_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26592511_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ecc107be-fcec-4b98-a0ed-bd325bd27b35_recu-fac-2025-02-031_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25040113_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25864356_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27545119_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b228ea49-7729-4c79-908d-d10ffd773ece_20250211_105509_1_scale_0.8.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1071226_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1174801_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/77c1b3c3-234d-4431-8675-a5c1d12053e0_osteopathe_MOREAU_Coralie_10-02-25_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/d9341373-0699-4897-9dfc-15a20235ce80_Livret_de_famille_des_2_LAMA-7_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27778049_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e3c36ee1-bf05-4ac7-b27f-c7cef109b796_Note_dhonoraires_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/74441931-f8d0-4cb0-8eb5-df4147a72bbe_mgp_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27784756_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658376426facture_psy_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/141e5445-10ab-400b-81a3-001132ec0783_ROSSIGNOL_Laurine_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724226151851OPPON_GEROGES_FACTURE_LENTILLES_2024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25233929_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/d79dfb79-bfef-40db-bc98-f2af328e266e_facture_ostheo_1738873157473_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/37edd5db-6709-4433-8b25-badbc7e5ca61_20250208_132125_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-27082405_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25152384_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26548441_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1140659_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26360535_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25048435_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25849685_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25280845_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/fc14b93e-73ae-44e1-82b1-0ca50ee622de_Facture_1_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26505719_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26238691_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25021617_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26689382_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1098837_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/17242265879312024-02-19_Osteo_facture_-Xa_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/5bb3a883-f00f-42a5-84e4-007ffa949d76_facture_acquittee_optique_MIHI_4_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/de7be139-654f-4d9b-9179-2c08f02e0e93_osteo_noelle_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/7d98b25c-938e-4d62-9e14-ddc1d119fa45_FACTURE_OSTEO_DU_7_FEVRIER_2025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/bae2e636-32c5-4b2c-b2d2-a7b28b30760f_KM_C250i24082011140_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/5c719322-2486-428c-8c7e-1441497877cc_scan_tc_2025-02-07-13-36-23_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25332784_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-27082405_3_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/09aafdfc-4378-4d2f-be2a-f647d5138f5b_Ordonnance_marie_lunettes_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b10610ca-bc5d-4954-bbc7-f6ab6e640a2c_Facture_250210_211735_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26592510_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1188165_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/83f38474-d109-4edc-a395-0025e6259d96_Facture_250128_Osteo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25198201_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/698ea3aa-944c-41f0-89c2-46a2be3a9189_facture_577852_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/0efee497-131b-4961-a1dc-2810eedbb393_Facture_BALDACHINO.V_chiropracteur__1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26660350_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/17243969995232400015-gielczynski-jeanne-131369953265965e69a20c6_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27718628_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e5090ee5-7b15-4056-9459-c12d5757b516_1739267158433_CamScanner_11-02-2025_10.45_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/dc89371d-1648-4674-ba86-57579de74299_2500352-ozturk-kaan-90009253167ab6c990cbd9_1_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27670038_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25292677_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25826742_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ea64ca35-29f5-49ba-894b-13aa3421f1d6_doc00681020250513143142_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1210372_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/5c4353b0-55a4-4687-9744-d1a6da183abd_facture_lentilles_de_contact_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27555315_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1142334_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27776417_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture psychologie - 27581557_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397121107image0_4_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25058603_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/598221c3-d0b3-403a-a261-c68cbe56b453_facture_ophtalmo_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/17b264a2-4881-49a4-8326-48ace17dd86f_factures_ophtalmo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397121061Numerisation_20240417_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/acte_nass_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27781876_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27576495_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/48eb0cb0-6218-4263-a1bf-a75c4b2cfc3d_Aurelie_CLOTAULT_250213003_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1183991_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f55f9121-499d-4c25-b79b-464413d7ca6c_Quittance_Ophtalmologue_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27236936_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26483179_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724425031349MEDECINE_DOUCE_2_TOMASSELLI_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/17b264a2-4881-49a4-8326-48ace17dd86f_factures_ophtalmo_3_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27206664_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27779029_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture psychologie-GED S-Z22-996335_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/af206337-404d-4b97-9772-baae1962c3ee_IMG_2129_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27566548_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/11a7e90a-3116-4b7a-9b8d-e6949ef0cc00_Adobe_Scan_10_fevr._2025_1_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27575321_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26592477_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26112050_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-26471195_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25361117_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27752635_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/419fd893-b8ef-404d-bc49-d637110e06ad_facture_ostheo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b6a49fa0-2900-45c1-915c-58d63bf64e48_OSTEO__NASSER_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26774954_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25885703_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b53e8f7a-d934-4e3f-8d03-12e071fdcfd6_Chiro_10_Fevrier_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8f0e72ca-64e5-4797-87bc-9378b842433a_CF_1676107_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ec6baa8c-a189-4850-b310-c90bab372cc2_Facture_Krys_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/d2a8cfa5-32ee-4bf7-a77c-8d48625be243_2025-02-00061_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27703139_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26694527_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/cccf5a90-7d2c-46e5-a1a9-4ec676a6964c_IMG_3533_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8a9a4ca2-1881-473c-8604-9fddbaa624a0_Ordonnance_Lentilles_Lunettes__Facture_3_scale_0.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724425079263JACOB_Francois_2024-111_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/48df624c-9ff3-4155-94b4-773bb00a967a_Facture_osteopathie_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27665791_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25203829_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/5e5d3bd8-4494-4764-a001-fba806688587_Facture_ostheo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25290421_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture psychologie-GED N-R1-941543_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27200660_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27232257_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26441046_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27777639_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25241935_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/3b2e0bc5-3f96-456f-9a21-1b6a5c2138b8_Osteopathe_Sophie_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724399050372FA_24-1136_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1114152_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/13388e62-739c-4338-9b78-eb1c67fc740f_Facture_Osteo_02.25_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/0a28cce2-34d3-4fa0-8d46-7ff07a0b96c6_Numerisation_20250211_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27716116_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/fadd7aaa-0b0f-4f95-b66f-cd034f107ded_Facture_TICHIT_05022025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/749991f0-5f22-4b49-ad9d-457db1b5c472_facture_osteopathe_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25267998_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b013c377-130f-4bb8-a0ec-410e5e43b7f0_Seance_Hypnose_070225_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/9c2763f2-fb0c-4fe4-be38-6f94fba64162_optical_facture_lunettes_apres_accident_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/88a54205-4f31-459b-981a-99dadbeaad02_IMG_4210_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1071291_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/22a87bee-a05c-4605-afed-9e83d6a6e379_Scan092229_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724425079170Osteo_12-04-24_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27591022_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25175432_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27200192_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27758070_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/110bf0ce-0cc7-4189-ab0e-cb2b8cab1cd9_Ostheo_1_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27663036_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724156681302Loen_osteopathe__1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397125647facture_osteoathie_Maxime_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b96f6ca3-3175-4cd8-a827-e886b5799867_Facture_ophtalmologue_24022025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724399050370Copie_Integrale_dacte_de_Naissance_Ya_Fatou_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658225868facture_PECOURT_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/7b830a57-2131-479c-bf31-1673e7308903_invoice_2025_1_31_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/060cd8e5-ac6f-47e5-b8f5-fe9d3920c522_CHIRO_FEVRIER_2025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26740051_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26934661_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1066100_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/3116513f-22b1-4143-8f0b-97527093a9cb_Facture_osteo_fevrier_2024_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26762901_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/d4724213-255b-41ec-aa7c-608661c35856__Facture_Ostheo_Fernandez_Thibault_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26555594_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/c64ad8f0-0d5a-4a5b-aec5-62ec44099520_Screenshot_20250211_100040_Gallery_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27213931_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25358990_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e5200778-8114-415c-8304-539e8e8876a0_CamScanner_07-02-2025_11.49_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/57c0b77e-4634-4a68-b116-73ceb3223a39_OPHTALMO_16_12_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/655f9ad1-1759-4ae4-8707-c66a97ef4096_IMG_20250131_162239_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2f0d42d8-930e-46cb-9222-f421480516db_IMG_9332_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27619324_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/47a3ed6d-aade-4da2-8006-1ec798c5e915_Stiegler_Gary_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/20f7572a-00e5-45f9-8812-e6d2037826ea_IMG_1767_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26709999_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f339c5ad-7df8-4f3e-a5fa-9dc7616abc3e_IMG_20250327_165906_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/cf49f64f-639a-4c76-9121-6e5ca6796fdf_Etiopathe_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27667405_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26368529_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658126141JACOB_Francois_2024-111_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-27011182_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/34918269-15fd-4e3d-9180-659530a82d35_OSTEO_01.25_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25847017_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25302988_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/c557951f-c4b7-4e04-a05c-871ace1f18af_F-2025-0065_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27699662_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25233928_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/43666807-3eb2-40b9-bdf6-94d4fe31b71e_factures_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/5d44caef-7a06-46ac-bd99-f3d33f544050_20241226_080225_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/9aea8ae5-7be5-4053-ac18-4135ec373137_IMG_5022_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27679188_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Extrait acte de naissance - 26616051-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1196314_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27618927_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25375641_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27562736_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-27210605_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/acte_nass_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25169425_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26761886_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27579724_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1072243_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27706035_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27705926_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27760177_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/coti1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1039410_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724396999467IMG_20240416_210050_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27618314_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27711297_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26732759_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6ffa2fe1-11be-4516-bd81-bef1824f5f8c_Ordonnances_et_factures_3_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/172422615178520240404_115041_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/fecefa42-3451-496b-bcb5-d5ebd4cdd8da_invoice_2024_10_14_3_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/88248db2-efbd-42c8-aacf-4e32f2b5b309_17392731219852541052997326186649_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27716094_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6ffa2fe1-11be-4516-bd81-bef1824f5f8c_Ordonnances_et_factures_4_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e4282a1e-c5df-4cf8-b326-032577658c64_IMG_20250108_090635_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1caeda03-aca9-43f5-8f05-8cd0ed3db1f2_20250211_134942_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27720265_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e1c02a95-aff0-4809-b30e-101ad81213b3_osteo_st1_2025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/700-142024-CERTIFICAT-DE-SCOLARITE_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27780823_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/RIB-TESTNHIDEUX-D-9-4-2025_152113_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26300440_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/af1bc4f5-7332-4785-96b2-627c73eff2eb_LIVRET_DE_FAMILLE-3_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25316942_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25405311_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25273060_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ab26e47b-d267-439c-9b12-8699c17d5d47_facture_Aurelie_Claude_naturopathe_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25489070_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1066100_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/V1_CV-1_jpeg.original_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27619261_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/dd900918-d858-4a8f-ba79-61dd031d0bd8_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26749684_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397366268IMG_20240417_143900_1_scale_0.8.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27705774_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658376447Facture_ostheo_Matheo_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27707015_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397125670Facture_lentilles_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26077829_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26951476_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27535832_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27702777_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27752590_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/44e87f9e-a4e2-4851-b383-e1401b36e853_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/RIB-TESTNHIDEUX-UT-9-4-2025_152144_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26107527_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25361051_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27773543_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/934ce856-861d-44d3-94b2-998eb1a3d763_2025-02-00049_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/quittance-de-loyer-exemple_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/3f98b687-6be4-42e1-bf05-2a4a0e834440_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25979890_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26731052_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397125653noname_1_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25406038_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724396999450DERNIERE_FACTURE_KINE_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/221e6223-efc6-44e8-9ef1-c53d5893abf9_Screenshot_20250210-175253_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25489071_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-GED E-J1-1065966_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25295241_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6d20c1cc-fa3b-41a9-990e-d115f2c1265b_Facture_MUNOZ_Florian_2025-0002-3_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26681219_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25792885_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25360589_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724226151848OPPON_GEROGES_ORDO_LENT_2023_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25224007_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25203829_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25183619_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27665789_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-GED E-J-2591884_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/c21b71c3-edeb-458b-b9d5-6977d39092d2_Screenshot_20250215_191517_cn_wps_moffice_eng_PDFReader1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/smallscreen_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25246953_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25270267_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27699394_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/127a26a9-785f-4059-ad4b-1000d1476ead_Stephane_BRETON_250207006_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/4e6947e0-c34b-4fe1-81ab-41fce98ebbed_25_02_10_Facture_Hypnotherapeute_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/carte-tiers-payant_2025-1-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/smallcaptureconseil_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/23.06-Haskn-modele-facture-sans-tva-annexe-1-2_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Gaz-recto-633x1024_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/creer-bon-de-livraison-antsroute-7_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25347662_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27753021_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27702699_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1b105dcc-c530-4799-869e-28c15c685fab_Facture_osteo_Balmelle_Cassandra5_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Capture2_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/10f40812-5311-4e1d-9fb1-bf24b002208b_17389235878412277367177928986574_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6eeacb70-27be-40dd-9511-522025b459a3_20241226_080214_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27560309_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27702792_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25977504_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/aze_cargmoe017762-61_001_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/235cfce2-bcd5-42d5-9bce-4a775e34485b_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Extrait acte de naissance - 26932272_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a8e35bb0-75aa-47e4-a759-0bbda47b7d72_facture2_du_06_02_2025_1_scale_0.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27759511_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b8083bbb-9489-4706-af99-69f625bbc530_facture_OPHALMOLOGIE_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/3c48237f-b76e-499f-b1a1-7f7f8347c4f2_facture_osto2025_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/172442507917415_03_24-charton-isabelle_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/17242265879292024-03-28_Facture_Chiroprateur_-Ch_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b966fb26-8754-4714-b795-78ef7e1116d0_facture_ostheopate_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25309354_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/95918650-771a-430c-9039-1601d46d19df_attestation_securite_sociale__1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/85e27f49-5723-4dff-a511-885441636918_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/28a6084a-24a5-4922-b79d-f96dd51c5666_Factures_et_ordonnaces_optique_ABDOUL_4_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724399050415IMG_20240417_160804_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25361051_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f6db258d-f400-41b5-a5ca-7878010f0fd7_doc00945920250206091811_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1041724_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26977630_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/RIB-TESTNHIDEUX-U-9-4-2025_152109_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/begin_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/bce5f438-e8f9-4089-b6c9-c3906bbc095f_Facture_Osteopathe_Karine_ANTONY_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/7402b29f-bcc9-42ed-a5a9-a8ec6468ad90_17392879320695618357009043029309_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ksnip_20250625-171328_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/facture anonyme_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25073562_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/conseill_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/07243018-c418-446f-8dca-307fc443b872_FACTURE_ETIOPATHE_5_FEVRIER_2025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/915b97eb-e7d5-415f-ae89-823f08ae3bc0_ACfacture_opthalmo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26543134_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26733889_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25382479_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/0453c161-70af-4474-8854-27ab0f5d7bc0_2025-02-00044-2_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1041725_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ee2bacc2-7a66-4adf-b4ff-95fc5c13a2da_20250213_112821_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/141f7ccc-37ab-4da5-9788-80a27e819b8b_Feuilles_de_soins_Psychologue_x2_3_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-27210603_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/facture-engie-page-3-349x500_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26550397_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27588485_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/9c09398e-1348-4844-8fce-e0421ad306c9_note-d-honoraire_-_2025-02-05T144527.016_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397125629Facture_psychologue__1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/02358c4c-820a-409f-9489-a75f22af3f32_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27703393_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8d5e5dfe-71a8-4a05-a376-8727cd264ffd_osteopathe_do_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26077623_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27706471_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1709a87a-d859-41e8-93da-5f307e1677e8_facture_ostheo_2_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27545715_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27772607_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27234926_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26555547_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27621466_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26702207_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25263730_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/sfr-facture-7-2_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e6d69c3f-dc5a-4bfc-844c-361b9bfd255e_OSTEO_02.25_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/mus33_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/attestation_AMI0ZRFLBQ97-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26298895_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Bulletin_de_salaire1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27781864_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/35e2f7b4-ab20-48ae-bf69-fc2441756fdc_facture_ostheo_-_Pascal_BOURGEOIS_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25136270_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27778142_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/29d72de2-da83-483a-8702-939fbe4addfa_20250207_112449_1_scale_0.8.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724156469377Facture_DAURISFlorian_20240815CGEI_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/72cb658b-3239-4479-918d-aac53bc4a552_Facture_ophtalmo_14-01-2025_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1bb42dc7-7ee0-45fe-aed7-68192d875df3_IMG_20250207_193157_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27705767_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/fe3ade48-89c0-4ac3-81f3-6dae15e20859_Ostheopate_07_02_25_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/actaadfdfffe_mariage_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/fcd6e41f-3d4c-43c8-a6f7-85e7ea5bda1d_IMG_7926_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e566a3b0-cc99-4c4d-8715-9f3be841a066_noname_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a6321cee-55d4-42c4-be96-6b3a59d70908_facture_osteo_030225_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27399788_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27647325_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/4684e3a8-c488-4e89-9b58-c65ae3e3c093_2024-12-06_facture_lunettes_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e0f0eab0-f98c-4b74-95f2-bfc61ad76d28_Ophtalmo_Isa_01-24_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f2cf3af6-98dd-49f8-9d85-533b65215fb3_17393639738994204232790165513253_1_scale_0.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-GED E-J-2759858_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/28f8623a-8962-4ad1-88bb-4914109e1d42_20241118103848034_4_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/0abfd7b9-9456-4b68-a489-bd990ef9a78e_livret_de_famille-2_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ec5f9e8d-e15a-421c-9fa8-6274420215cd_Facture_lentilles_2025_3_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26705886_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture psychologie-GED S-Z22-1003798_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26539712_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25152747_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/fee6466d-f0bb-4974-82a5-556586667c21_20250210_192626_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25330401_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724156469365facture_osteo08.24_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/k-bis-103142_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/13194c98-bb10-4227-a438-b7a1b9f2b6cb_facture_osteo_caro_08022025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1207573_1_scale_1.5.jpg

496
filter/dbscan_v2.py Normal file
View File

@@ -0,0 +1,496 @@
#!/usr/bin/env python3
"""
DBSCAN Clustering Filter
Filters clustering results based on specific criteria:
- For each cluster: select 50% of points
- 25% from center region (closest to centroid)
- 25% from border region (furthest from centroid)
- All noise points are selected
- Uses cosine distance metric
"""
import json
import numpy as np
from sklearn.preprocessing import normalize
from sklearn.metrics.pairwise import cosine_distances
import argparse
import os
from pathlib import Path
import random
class DBSCANFilter:
def __init__(self, embeddings_path, clustering_results_path):
"""
Initialize DBSCAN filter
Args:
embeddings_path: Path to embeddings JSON file
clustering_results_path: Path to DBSCAN clustering results JSON
"""
self.embeddings_path = embeddings_path
self.clustering_results_path = clustering_results_path
self.embeddings = None
self.embeddings_normalized = None
self.clustering_results = None
self.filepath_to_embedding = {}
def load_data(self):
"""Load embeddings and clustering results"""
print("Loading embeddings...")
with open(self.embeddings_path, 'r') as f:
embeddings_data = json.load(f)
# Create mapping from filepath to embedding
embeddings_list = []
filepaths = []
for item in embeddings_data:
self.filepath_to_embedding[item['filepath']] = item['embedding']
embeddings_list.append(item['embedding'])
filepaths.append(item['filepath'])
self.embeddings = np.array(embeddings_list, dtype=np.float32)
self.embeddings_normalized = normalize(self.embeddings, norm='l2')
print(f"Loaded {len(embeddings_list)} embeddings")
print("Loading clustering results...")
with open(self.clustering_results_path, 'r') as f:
self.clustering_results = json.load(f)
print(f"Loaded clustering results: {self.clustering_results['n_clusters']} clusters, "
f"{self.clustering_results['n_samples']} samples")
def group_by_clusters(self):
"""Group data points by cluster labels"""
clusters = {}
noise_points = []
for result in self.clustering_results['results']:
cluster_id = result['cluster']
filepath = result['filepath']
if 'is_noise' in result:
is_noise = result['is_noise']
else:
is_noise = False
if is_noise or cluster_id == -1:
noise_points.append({
'filepath': filepath,
'embedding': self.filepath_to_embedding[filepath]
})
else:
if cluster_id not in clusters:
clusters[cluster_id] = []
clusters[cluster_id].append({
'filepath': filepath,
'embedding': self.filepath_to_embedding[filepath]
})
return clusters, noise_points
def calculate_cluster_centroid(self, cluster_points):
"""Calculate centroid of a cluster using normalized embeddings"""
embeddings = np.array([point['embedding'] for point in cluster_points])
embeddings_normalized = normalize(embeddings, norm='l2')
# For cosine distance, centroid is the normalized mean
centroid = np.mean(embeddings_normalized, axis=0)
centroid_normalized = normalize(centroid.reshape(1, -1), norm='l2')[0]
return centroid_normalized
def calculate_cosine_distances_to_centroid(self, cluster_points, centroid):
"""Calculate cosine distances from each point to cluster centroid"""
embeddings = np.array([point['embedding'] for point in cluster_points])
embeddings_normalized = normalize(embeddings, norm='l2')
# Calculate cosine distances to centroid
distances = cosine_distances(embeddings_normalized, centroid.reshape(1, -1)).flatten()
return distances
# v1 0.5 data, 0.5 center 0.5 border
# v2 0.5 data, 0.25 center 0.75 border
# def filter_cluster(self, cluster_points, selection_ratio=0.5):
# v3 0.75 data, 0.25 center 0.75 border
#dbscan 014
# def filter_cluster(self, cluster_points, selection_ratio=0.3):
# """
# Filter points from a cluster
# Args:
# cluster_points: List of points in the cluster
# selection_ratio: Ratio of points to select (default: 0.5 = 50%)
# Returns:
# List of selected points
# """
# if len(cluster_points) == 0:
# return []
# # Calculate how many points to select
# total_points = len(cluster_points)
# num_to_select = max(15, int(total_points * selection_ratio))
# # If we need to select all or almost all points, just return all
# if num_to_select >= total_points:
# return cluster_points
# # Calculate centroid
# centroid = self.calculate_cluster_centroid(cluster_points)
# # Calculate distances to centroid
# distances = self.calculate_cosine_distances_to_centroid(cluster_points, centroid)
# # Create list of (point, distance) pairs
# point_distance_pairs = list(zip(cluster_points, distances))
# # Sort by distance (closest to furthest from centroid)
# point_distance_pairs.sort(key=lambda x: x[1])
# dis = 0.1
# # count_center = sum(1 for pair in point_distance_pairs if pair[1] < dis)
# all_center_points = [pair[0] for pair in point_distance_pairs if pair[1] < dis]
# print(f"Number of center points (distance < {dis}): {len(all_center_points)}")
# # count_border = sum(1 for pair in point_distance_pairs if pair[1] >= dis)
# all_border_points = [pair[0] for pair in point_distance_pairs if pair[1] >= dis]
# print(f"Number of border points (distance >= {dis}): {len(all_border_points)}")
# # Calculate how many points to select from center and border
# n_center = len(all_center_points)
# center_count = max(1, int(n_center * 0.15))
# n_border = len(all_border_points)
# if n_border < 70:
# border_count = n_border
# else:
# border_count = max(0, int(n_border * 0.3)) # remaining from border
# selected_points = []
# random.seed(42)
# # Select center points (closest to centroid)
# # center_points = [pair[0] for pair in point_distance_pairs[:center_count]]
# center_points = random.sample(all_center_points, center_count)
# selected_points.extend(center_points)
# # # Select border points (furthest from centroid)
# if border_count > 0:
# # border_points = [pair[0] for pair in point_distance_pairs[-border_count:]]
# border_points = random.sample(all_border_points, border_count)
# selected_points.extend(border_points)
# print(f"Cluster with {total_points} points -> selected {len(selected_points)} points "
# f"({center_count} center + {border_count} border)")
# return selected_points
# dbscan 015
def filter_cluster(self, cluster_points, selection_ratio=0.3):
"""
Filter points from a cluster
Args:
cluster_points: List of points in the cluster
selection_ratio: Ratio of points to select (default: 0.5 = 50%)
Returns:
List of selected points
"""
if len(cluster_points) == 0:
return []
# Calculate how many points to select
total_points = len(cluster_points)
num_to_select = max(15, int(total_points * selection_ratio))
# If we need to select all or almost all points, just return all
if num_to_select >= total_points:
return cluster_points
# Calculate centroid
centroid = self.calculate_cluster_centroid(cluster_points)
# Calculate distances to centroid
distances = self.calculate_cosine_distances_to_centroid(cluster_points, centroid)
# Create list of (point, distance) pairs
point_distance_pairs = list(zip(cluster_points, distances))
# Sort by distance (closest to furthest from centroid)
point_distance_pairs.sort(key=lambda x: x[1])
dis = 0.1
# count_center = sum(1 for pair in point_distance_pairs if pair[1] < dis)
all_center_points = [pair[0] for pair in point_distance_pairs if pair[1] < dis]
print(f"Number of center points (distance < {dis}): {len(all_center_points)}")
# count_border = sum(1 for pair in point_distance_pairs if pair[1] >= dis)
all_border_points = [pair[0] for pair in point_distance_pairs if pair[1] >= dis]
print(f"Number of border points (distance >= {dis}): {len(all_border_points)}")
# Calculate how many points to select from center and border
n_center = len(all_center_points)
center_count = max(1, int(n_center * 0.15))
n_border = len(all_border_points)
if n_border < 70:
border_count = n_border
else:
border_count = max(0, int(n_border * 0.3)) # remaining from border
selected_points = []
random.seed(42)
# Select center points (closest to centroid)
# center_points = [pair[0] for pair in point_distance_pairs[:center_count]]
center_points = random.sample(all_center_points, center_count)
selected_points.extend(center_points)
# # Select border points (furthest from centroid)
if border_count > 0:
# border_points = [pair[0] for pair in point_distance_pairs[-border_count:]]
border_points = random.sample(all_border_points, border_count)
selected_points.extend(border_points)
print(f"Cluster with {total_points} points -> selected {len(selected_points)} points "
f"({center_count} center + {border_count} border)")
return selected_points
#gmm
# def filter_cluster(self, cluster_points, selection_ratio=0.3):
# """
# Filter points from a cluster
# Args:
# cluster_points: List of points in the cluster
# selection_ratio: Ratio of points to select (default: 0.5 = 50%)
# Returns:
# List of selected points
# """
# if len(cluster_points) == 0:
# return []
# # Calculate how many points to select
# total_points = len(cluster_points)
# num_to_select = max(15, int(total_points * selection_ratio))
# # If we need to select all or almost all points, just return all
# if num_to_select >= total_points:
# return cluster_points
# # Calculate centroid
# centroid = self.calculate_cluster_centroid(cluster_points)
# # Calculate distances to centroid
# distances = self.calculate_cosine_distances_to_centroid(cluster_points, centroid)
# # Create list of (point, distance) pairs
# point_distance_pairs = list(zip(cluster_points, distances))
# # Sort by distance (closest to furthest from centroid)
# point_distance_pairs.sort(key=lambda x: x[1])
# dis = 0.2
# # count_center = sum(1 for pair in point_distance_pairs if pair[1] < dis)
# all_center_points = [pair[0] for pair in point_distance_pairs if pair[1] < dis]
# print(f"Number of center points (distance < {dis}): {len(all_center_points)}")
# # count_border = sum(1 for pair in point_distance_pairs if pair[1] >= dis)
# all_border_points = [pair[0] for pair in point_distance_pairs if pair[1] >= dis]
# print(f"Number of border points (distance >= {dis}): {len(all_border_points)}")
# # Calculate how many points to select from center and border
# n_center = len(all_center_points)
# center_count = max(1, int(n_center * 0.15))
# n_border = len(all_border_points)
# if n_border < 70:
# border_count = n_border
# else:
# border_count = max(0, int(n_border * 0.3)) # remaining from border
# selected_points = []
# random.seed(42)
# # Select center points (closest to centroid)
# # center_points = [pair[0] for pair in point_distance_pairs[:center_count]]
# center_points = random.sample(all_center_points, center_count)
# selected_points.extend(center_points)
# # # Select border points (furthest from centroid)
# if border_count > 0:
# # border_points = [pair[0] for pair in point_distance_pairs[-border_count:]]
# border_points = random.sample(all_border_points, border_count)
# selected_points.extend(border_points)
# print(f"Cluster with {total_points} points -> selected {len(selected_points)} points "
# f"({center_count} center + {border_count} border)")
# return selected_points
def filter_all_clusters(self):
"""Filter all clusters according to the specified criteria"""
print("\n" + "="*60)
print("FILTERING DBSCAN CLUSTERING RESULTS")
print("="*60)
clusters, noise_points = self.group_by_clusters()
print(f"Found {len(clusters)} clusters and {len(noise_points)} noise points")
filtered_results = []
# Process each cluster
for cluster_id, cluster_points in clusters.items():
print(f"\nProcessing Cluster {cluster_id}:")
filtered_points = self.filter_cluster(cluster_points)
# Add cluster information
for point in filtered_points:
filtered_results.append({
'filepath': point['filepath'],
'cluster': cluster_id,
'is_noise': False,
'selection_type': 'cluster_filtered'
})
# Add all noise points
print(f"\nAdding all {len(noise_points)} noise points...")
for point in noise_points:
filtered_results.append({
'filepath': point['filepath'],
'cluster': -1,
'is_noise': True,
'selection_type': 'noise'
})
return filtered_results
def save_filtered_results(self, filtered_results, output_path=None):
"""Save filtered results to JSON file"""
if output_path is None:
# Generate output filename based on input
base_name = Path(self.clustering_results_path).stem
output_path = f"{base_name}_filtered.json"
# Create summary statistics
cluster_stats = {}
noise_count = 0
for result in filtered_results:
if result['is_noise']:
noise_count += 1
else:
cluster_id = result['cluster']
if cluster_id not in cluster_stats:
cluster_stats[cluster_id] = 0
cluster_stats[cluster_id] += 1
# Prepare output data
output_data = {
"method": "DBSCAN_FILTERED",
"original_n_clusters": self.clustering_results['n_clusters'],
"original_n_samples": self.clustering_results['n_samples'],
"filtered_n_samples": len(filtered_results),
"filtering_criteria": {
"cluster_selection_ratio": 0.5,
"center_points_ratio": 0.5, # 50% of selected points from center
"border_points_ratio": 0.5, # 50% of selected points from border
"noise_points": "all_selected"
},
"cluster_statistics": cluster_stats,
"noise_points": noise_count,
"results": filtered_results
}
with open(output_path, 'w', encoding='utf-8') as f:
json.dump(output_data, f, indent=4, ensure_ascii=False)
print("\n" + "="*60)
print("FILTERING SUMMARY")
print("="*60)
print(f"Original samples: {self.clustering_results['n_samples']}")
print(f"Filtered samples: {len(filtered_results)}")
print(f"Reduction ratio: {len(filtered_results)/self.clustering_results['n_samples']:.2%}")
print("\nCluster breakdown:")
for cluster_id, count in sorted(cluster_stats.items()):
print(f" Cluster {cluster_id}: {count} points")
print(f" Noise points: {noise_count} points")
print(f"\nFiltered results saved to: {output_path}")
return output_path
def create_filepath_list(self, filtered_results, output_txt_path=None):
"""Create a simple text file with filtered filepaths"""
if output_txt_path is None:
base_name = Path(self.clustering_results_path).stem
output_txt_path = f"{base_name}_filtered_filepaths.txt"
filepaths = [result['filepath'] for result in filtered_results]
with open(output_txt_path, 'w', encoding='utf-8') as f:
for filepath in filepaths:
f.write(f"{filepath}\n")
print(f"Filepath list saved to: {output_txt_path}")
return output_txt_path
def main():
parser = argparse.ArgumentParser(description="Filter DBSCAN clustering results")
parser.add_argument("--embeddings_path", required=True,
help="Path to embeddings JSON file")
parser.add_argument("--clustering_results_path", required=True,
help="Path to DBSCAN clustering results JSON file")
parser.add_argument("--output_path",
help="Output path for filtered results (optional)")
parser.add_argument("--create_filepath_list", action="store_true",
help="Also create a simple text file with filtered filepaths")
args = parser.parse_args()
# Validate input files exist
if not os.path.exists(args.embeddings_path):
print(f"Error: Embeddings file not found: {args.embeddings_path}")
return
if not os.path.exists(args.clustering_results_path):
print(f"Error: Clustering results file not found: {args.clustering_results_path}")
return
# Initialize filter
filter_obj = DBSCANFilter(args.embeddings_path, args.clustering_results_path)
# Load data
filter_obj.load_data()
# Filter clusters
filtered_results = filter_obj.filter_all_clusters()
# Save results
filter_obj.save_filtered_results(filtered_results, args.output_path)
# Create filepath list if requested
if args.create_filepath_list:
filter_obj.create_filepath_list(filtered_results)
print("\nFiltering completed successfully!")
if __name__ == "__main__":
main()

352
filter/dbscan_v3.py Normal file
View File

@@ -0,0 +1,352 @@
#!/usr/bin/env python3
"""
DBSCAN Clustering Filter
Filters clustering results based on specific criteria, parameterized via CLI:
- For each cluster: select a configurable ratio of points (selection_ratio)
- A configurable portion from center region (center_ratio)
- A configurable portion from border region (border_ratio)
- All noise points are selected
- Uses cosine distance metric
CLI parameters added:
--selection_ratio (float, default 0.5)
--center_ratio (float, default 0.5)
--border_ratio (float, default 0.5)
Example:
python dbscan_v3.py \
--embeddings_path embeddings.json \
--clustering_results_path dbscan_results.json \
--selection_ratio 0.4 --center_ratio 0.6 --border_ratio 0.4
"""
import json
import numpy as np
from sklearn.preprocessing import normalize
from sklearn.metrics.pairwise import cosine_distances
import argparse
import os
from pathlib import Path
import random
class DBSCANFilter:
def __init__(self, embeddings_path, clustering_results_path,
selection_ratio=0.5, center_ratio=0.5, border_ratio=0.5):
"""Initialize DBSCAN filter
Args:
embeddings_path: Path to embeddings JSON file
clustering_results_path: Path to DBSCAN clustering results JSON
selection_ratio: Ratio of total cluster points to consider selecting
center_ratio: Ratio applied within center region (relative scaling)
border_ratio: Ratio applied within border region (relative scaling)
"""
self.embeddings_path = embeddings_path
self.clustering_results_path = clustering_results_path
self.embeddings = None
self.embeddings_normalized = None
self.clustering_results = None
self.filepath_to_embedding = {}
self.selection_ratio = selection_ratio
self.center_ratio = center_ratio
self.border_ratio = border_ratio
def load_data(self):
"""Load embeddings and clustering results"""
print("Loading embeddings...")
with open(self.embeddings_path, 'r') as f:
embeddings_data = json.load(f)
# Create mapping from filepath to embedding
embeddings_list = []
filepaths = []
for item in embeddings_data:
self.filepath_to_embedding[item['filepath']] = item['embedding']
embeddings_list.append(item['embedding'])
filepaths.append(item['filepath'])
self.embeddings = np.array(embeddings_list, dtype=np.float32)
self.embeddings_normalized = normalize(self.embeddings, norm='l2')
print(f"Loaded {len(embeddings_list)} embeddings")
print("Loading clustering results...")
with open(self.clustering_results_path, 'r') as f:
self.clustering_results = json.load(f)
print(f"Loaded clustering results: {self.clustering_results['n_clusters']} clusters, "
f"{self.clustering_results['n_samples']} samples")
def group_by_clusters(self):
"""Group data points by cluster labels"""
clusters = {}
noise_points = []
for result in self.clustering_results['results']:
cluster_id = result['cluster']
filepath = result['filepath']
if 'is_noise' in result:
is_noise = result['is_noise']
else:
is_noise = False
if is_noise or cluster_id == -1:
noise_points.append({
'filepath': filepath,
'embedding': self.filepath_to_embedding[filepath]
})
else:
if cluster_id not in clusters:
clusters[cluster_id] = []
clusters[cluster_id].append({
'filepath': filepath,
'embedding': self.filepath_to_embedding[filepath]
})
return clusters, noise_points
def calculate_cluster_centroid(self, cluster_points):
"""Calculate centroid of a cluster using normalized embeddings"""
embeddings = np.array([point['embedding'] for point in cluster_points])
embeddings_normalized = normalize(embeddings, norm='l2')
# For cosine distance, centroid is the normalized mean
centroid = np.mean(embeddings_normalized, axis=0)
centroid_normalized = normalize(centroid.reshape(1, -1), norm='l2')[0]
return centroid_normalized
def calculate_cosine_distances_to_centroid(self, cluster_points, centroid):
"""Calculate cosine distances from each point to cluster centroid"""
embeddings = np.array([point['embedding'] for point in cluster_points])
embeddings_normalized = normalize(embeddings, norm='l2')
# Calculate cosine distances to centroid
distances = cosine_distances(embeddings_normalized, centroid.reshape(1, -1)).flatten()
return distances
def filter_cluster(self, cluster_points):
"""Lọc điểm trong một cluster dựa trên các tham số đã cấu hình."""
if not cluster_points:
return []
selection_ratio = self.selection_ratio
center_ratio = self.center_ratio
border_ratio = self.border_ratio
total_points = len(cluster_points)
num_to_select = max(15, int(total_points * selection_ratio))
if num_to_select >= total_points and selection_ratio != 1:
return cluster_points
centroid = self.calculate_cluster_centroid(cluster_points)
distances = self.calculate_cosine_distances_to_centroid(cluster_points, centroid)
point_distance_pairs = list(zip(cluster_points, distances))
point_distance_pairs.sort(key=lambda x: x[1])
dis = 0.1 # ngưỡng khoảng cách để phân loại center / border
all_center_points = [p for p, d in point_distance_pairs if d < dis]
all_border_points = [p for p, d in point_distance_pairs if d >= dis]
print(f"Number of center points (distance < {dis}): {len(all_center_points)}")
print(f"Number of border points (distance >= {dis}): {len(all_border_points)}")
n_center = len(all_center_points)
n_border = len(all_border_points)
if n_center > 0:
center_count = max(1, int(n_center * center_ratio * selection_ratio))
center_count = min(center_count, n_center)
else:
center_count = 0
if n_border < 70:
border_count = n_border
else:
border_count = max(0, int(n_border * border_ratio * selection_ratio))
border_count = min(border_count, n_border)
random.seed(42)
selected_points = []
if center_count > 0:
selected_points.extend(random.sample(all_center_points, center_count))
if border_count > 0:
selected_points.extend(random.sample(all_border_points, border_count))
print(
f"Cluster with {total_points} points -> selected {len(selected_points)} points "
f"({center_count} center + {border_count} border)"
)
return selected_points
def filter_all_clusters(self):
"""Filter all clusters according to the specified criteria"""
print("\n" + "="*60)
print("FILTERING DBSCAN CLUSTERING RESULTS")
print("="*60)
clusters, noise_points = self.group_by_clusters()
print(f"Found {len(clusters)} clusters and {len(noise_points)} noise points")
filtered_results = []
# Process each cluster
for cluster_id, cluster_points in clusters.items():
print(f"\nProcessing Cluster {cluster_id}:")
filtered_points = self.filter_cluster(cluster_points)
# Add cluster information
for point in filtered_points:
filtered_results.append({
'filepath': point['filepath'],
'cluster': cluster_id,
'is_noise': False,
'selection_type': 'cluster_filtered'
})
# Add all noise points
print(f"\nAdding all {len(noise_points)} noise points...")
n_noise = len(noise_points)
noise_count = max(0, int(n_noise * self.selection_ratio))
random.seed(42)
selected_noise_points = random.sample(noise_points, noise_count)
for point in selected_noise_points:
filtered_results.append({
'filepath': point['filepath'],
'cluster': -1,
'is_noise': True,
'selection_type': 'noise'
})
return filtered_results
def save_filtered_results(self, filtered_results, output_path=None):
"""Save filtered results to JSON file"""
if output_path is None:
# Generate output filename based on input
base_name = Path(self.clustering_results_path).stem
output_path = f"{base_name}_filtered.json"
# Create summary statistics
cluster_stats = {}
noise_count = 0
for result in filtered_results:
if result['is_noise']:
noise_count += 1
else:
cluster_id = result['cluster']
if cluster_id not in cluster_stats:
cluster_stats[cluster_id] = 0
cluster_stats[cluster_id] += 1
# Prepare output data
output_data = {
"method": "DBSCAN_FILTERED",
"original_n_clusters": self.clustering_results['n_clusters'],
"original_n_samples": self.clustering_results['n_samples'],
"filtered_n_samples": len(filtered_results),
"filtering_criteria": {
"cluster_selection_ratio": self.selection_ratio,
"center_points_ratio": self.center_ratio,
"border_points_ratio": self.border_ratio,
"noise_points": "all_selected"
},
"cluster_statistics": cluster_stats,
"noise_points": noise_count,
"results": filtered_results
}
with open(output_path, 'w', encoding='utf-8') as f:
json.dump(output_data, f, indent=4, ensure_ascii=False)
print("\n" + "="*60)
print("FILTERING SUMMARY")
print("="*60)
print(f"Original samples: {self.clustering_results['n_samples']}")
print(f"Filtered samples: {len(filtered_results)}")
print(f"Reduction ratio: {len(filtered_results)/self.clustering_results['n_samples']:.2%}")
print("\nCluster breakdown:")
for cluster_id, count in sorted(cluster_stats.items()):
print(f" Cluster {cluster_id}: {count} points")
print(f" Noise points: {noise_count} points")
print(f"\nFiltered results saved to: {output_path}")
return output_path
def create_filepath_list(self, filtered_results, output_txt_path=None):
"""Create a simple text file with filtered filepaths"""
if output_txt_path is None:
base_name = Path(self.clustering_results_path).stem
output_txt_path = f"{base_name}_filtered_filepaths.txt"
filepaths = [result['filepath'] for result in filtered_results]
with open(output_txt_path, 'w', encoding='utf-8') as f:
for filepath in filepaths:
f.write(f"{filepath}\n")
print(f"Filepath list saved to: {output_txt_path}")
return output_txt_path
def main():
parser = argparse.ArgumentParser(description="Filter DBSCAN clustering results")
parser.add_argument("--embeddings_path", required=True,
help="Path to embeddings JSON file")
parser.add_argument("--clustering_results_path", required=True,
help="Path to DBSCAN clustering results JSON file")
parser.add_argument("--output_path",
help="Output path for filtered results (optional)")
parser.add_argument("--create_filepath_list", action="store_true",
help="Also create a simple text file with filtered filepaths")
parser.add_argument("--selection_ratio", type=float, default=0.5,
help="Overall ratio of points to sample per cluster (default: 0.5). Minimum 15 points enforced.")
parser.add_argument("--center_ratio", type=float, default=0.5,
help="Relative ratio applied to center region when sampling (default: 0.5)")
parser.add_argument("--border_ratio", type=float, default=0.5,
help="Relative ratio applied to border region when sampling (default: 0.5)")
args = parser.parse_args()
# Validate input files exist
if not os.path.exists(args.embeddings_path):
print(f"Error: Embeddings file not found: {args.embeddings_path}")
return
if not os.path.exists(args.clustering_results_path):
print(f"Error: Clustering results file not found: {args.clustering_results_path}")
return
# Initialize filter
# Initialize filter with user-provided ratios
filter_obj = DBSCANFilter(
args.embeddings_path,
args.clustering_results_path,
selection_ratio=args.selection_ratio,
center_ratio=args.center_ratio,
border_ratio=args.border_ratio
)
# Load data
filter_obj.load_data()
# Filter clusters
filtered_results = filter_obj.filter_all_clusters()
# Save results
filter_obj.save_filtered_results(filtered_results, args.output_path)
# Create filepath list if requested
if args.create_filepath_list:
filter_obj.create_filepath_list(filtered_results)
print("\nFiltering completed successfully!")
if __name__ == "__main__":
main()

376
filter/fillter_all.py Normal file
View File

@@ -0,0 +1,376 @@
#!/usr/bin/env python3
"""
Universal Clustering Filter
Filters clustering results for multiple algorithms:
- DBSCAN: handles noise points, uses density-based selection
- GMM: uses probability-based selection, no noise points
- K-Means: standard centroid-based selection
Uses cosine distance metric for all calculations.
"""
import json
import numpy as np
from sklearn.preprocessing import normalize
from sklearn.metrics.pairwise import cosine_distances
import argparse
import os
from pathlib import Path
class UniversalClusterFilter:
def __init__(self, embeddings_path, clustering_results_path):
"""
Initialize universal cluster filter
Args:
embeddings_path: Path to embeddings JSON file
clustering_results_path: Path to clustering results JSON
"""
self.embeddings_path = embeddings_path
self.clustering_results_path = clustering_results_path
self.embeddings = None
self.embeddings_normalized = None
self.clustering_results = None
self.filepath_to_embedding = {}
self.algorithm = None
def load_data(self):
"""Load embeddings and clustering results"""
print("Loading embeddings...")
with open(self.embeddings_path, 'r') as f:
embeddings_data = json.load(f)
# Create mapping from filepath to embedding
embeddings_list = []
filepaths = []
for item in embeddings_data:
self.filepath_to_embedding[item['filepath']] = item['embedding']
embeddings_list.append(item['embedding'])
filepaths.append(item['filepath'])
self.embeddings = np.array(embeddings_list, dtype=np.float32)
self.embeddings_normalized = normalize(self.embeddings, norm='l2')
print(f"Loaded {len(embeddings_list)} embeddings")
print("Loading clustering results...")
with open(self.clustering_results_path, 'r') as f:
self.clustering_results = json.load(f)
# Detect algorithm type
self.algorithm = self.clustering_results.get('method', 'UNKNOWN')
print(f"Detected algorithm: {self.algorithm}")
print(f"Loaded clustering results: {self.clustering_results['n_clusters']} clusters, "
f"{self.clustering_results['n_samples']} samples")
def group_by_clusters(self):
"""Group data points by cluster labels (algorithm-agnostic)"""
clusters = {}
noise_points = []
for result in self.clustering_results['results']:
cluster_id = result['cluster']
filepath = result['filepath']
# Check for noise points (DBSCAN specific)
is_noise = result.get('is_noise', False)
if is_noise or cluster_id == -1:
noise_points.append({
'filepath': filepath,
'embedding': self.filepath_to_embedding[filepath],
'metadata': result
})
else:
if cluster_id not in clusters:
clusters[cluster_id] = []
clusters[cluster_id].append({
'filepath': filepath,
'embedding': self.filepath_to_embedding[filepath],
'metadata': result
})
return clusters, noise_points
def calculate_cluster_centroid(self, cluster_points):
"""Calculate centroid of a cluster using normalized embeddings"""
embeddings = np.array([point['embedding'] for point in cluster_points])
embeddings_normalized = normalize(embeddings, norm='l2')
# For cosine distance, centroid is the normalized mean
centroid = np.mean(embeddings_normalized, axis=0)
centroid_normalized = normalize(centroid.reshape(1, -1), norm='l2')[0]
return centroid_normalized
def calculate_cosine_distances_to_centroid(self, cluster_points, centroid):
"""Calculate cosine distances from each point to cluster centroid"""
embeddings = np.array([point['embedding'] for point in cluster_points])
embeddings_normalized = normalize(embeddings, norm='l2')
# Calculate cosine distances to centroid
distances = cosine_distances(embeddings_normalized, centroid.reshape(1, -1)).flatten()
return distances
def filter_cluster_standard(self, cluster_points, selection_ratio=0.5):
"""
Standard filtering: 25% center + 75% border of selected points
"""
if len(cluster_points) == 0:
return []
# Calculate how many points to select
total_points = len(cluster_points)
num_to_select = max(1, int(total_points * selection_ratio))
# If we need to select all or almost all points, just return all
if num_to_select >= total_points:
return cluster_points
# Calculate centroid
centroid = self.calculate_cluster_centroid(cluster_points)
# Calculate distances to centroid
distances = self.calculate_cosine_distances_to_centroid(cluster_points, centroid)
# Create list of (point, distance) pairs
point_distance_pairs = list(zip(cluster_points, distances))
# Sort by distance (closest to furthest from centroid)
point_distance_pairs.sort(key=lambda x: x[1])
# Calculate how many points to select from center and border
center_count = max(1, int(num_to_select * 0.25)) # 25% from center
border_count = num_to_select - center_count # 75% from border
selected_points = []
# Select center points (closest to centroid)
center_points = [pair[0] for pair in point_distance_pairs[:center_count]]
for point in center_points:
point['selection_type'] = 'center'
selected_points.extend(center_points)
# Select border points (furthest from centroid)
if border_count > 0:
border_points = [pair[0] for pair in point_distance_pairs[-border_count:]]
for point in border_points:
point['selection_type'] = 'border'
selected_points.extend(border_points)
print(f"Cluster with {total_points} points -> selected {len(selected_points)} points "
f"({center_count} center + {border_count} border)")
return selected_points
def filter_cluster_gmm(self, cluster_points, selection_ratio=0.5):
"""
GMM-specific filtering: consider probability scores if available
"""
if len(cluster_points) == 0:
return []
# Check if we have probability scores
has_probabilities = any('probability' in point['metadata'] for point in cluster_points)
if has_probabilities:
# Use probability-based selection
total_points = len(cluster_points)
num_to_select = max(1, int(total_points * selection_ratio))
if num_to_select >= total_points:
return cluster_points
# Sort by probability (highest confidence first)
sorted_points = sorted(cluster_points,
key=lambda x: x['metadata'].get('probability', 0),
reverse=True)
# Take top probability points
selected_points = sorted_points[:num_to_select]
for point in selected_points:
point['selection_type'] = 'high_probability'
print(f"GMM Cluster with {total_points} points -> selected {len(selected_points)} points "
f"(top probability)")
return selected_points
else:
# Fall back to standard filtering
return self.filter_cluster_standard(cluster_points, selection_ratio)
def filter_all_clusters(self, selection_ratio=0.5):
"""Filter all clusters according to algorithm-specific criteria"""
print("\n" + "="*60)
print(f"FILTERING {self.algorithm} CLUSTERING RESULTS")
print("="*60)
clusters, noise_points = self.group_by_clusters()
print(f"Found {len(clusters)} clusters and {len(noise_points)} noise points")
filtered_results = []
# Process each cluster
for cluster_id, cluster_points in clusters.items():
print(f"\nProcessing Cluster {cluster_id}:")
# Choose filtering method based on algorithm
if self.algorithm.upper() == 'GMM' or 'GAUSSIAN' in self.algorithm.upper():
filtered_points = self.filter_cluster_gmm(cluster_points, selection_ratio)
else:
filtered_points = self.filter_cluster_standard(cluster_points, selection_ratio)
# Add cluster information
for point in filtered_points:
filtered_results.append({
'filepath': point['filepath'],
'cluster': cluster_id,
'is_noise': False,
'selection_type': point.get('selection_type', 'cluster_filtered'),
'original_metadata': point['metadata']
})
# Add all noise points (DBSCAN only)
if noise_points:
print(f"\nAdding all {len(noise_points)} noise points...")
for point in noise_points:
filtered_results.append({
'filepath': point['filepath'],
'cluster': -1,
'is_noise': True,
'selection_type': 'noise',
'original_metadata': point['metadata']
})
return filtered_results
def save_filtered_results(self, filtered_results, output_path=None):
"""Save filtered results to JSON file"""
if output_path is None:
base_name = Path(self.clustering_results_path).stem
output_path = f"{base_name}_filtered.json"
# Create summary statistics
cluster_stats = {}
noise_count = 0
selection_type_stats = {}
for result in filtered_results:
# Cluster stats
if result['is_noise']:
noise_count += 1
else:
cluster_id = result['cluster']
if cluster_id not in cluster_stats:
cluster_stats[cluster_id] = 0
cluster_stats[cluster_id] += 1
# Selection type stats
sel_type = result['selection_type']
selection_type_stats[sel_type] = selection_type_stats.get(sel_type, 0) + 1
# Prepare output data
output_data = {
"method": f"{self.algorithm}_FILTERED",
"original_algorithm": self.algorithm,
"original_n_clusters": self.clustering_results['n_clusters'],
"original_n_samples": self.clustering_results['n_samples'],
"filtered_n_samples": len(filtered_results),
"filtering_criteria": {
"cluster_selection_ratio": 0.5,
"center_points_ratio": 0.25,
"border_points_ratio": 0.75,
"noise_points": "all_selected" if noise_count > 0 else "none_present"
},
"cluster_statistics": cluster_stats,
"selection_type_statistics": selection_type_stats,
"noise_points": noise_count,
"results": filtered_results
}
with open(output_path, 'w', encoding='utf-8') as f:
json.dump(output_data, f, indent=4, ensure_ascii=False)
print("\n" + "="*60)
print("FILTERING SUMMARY")
print("="*60)
print(f"Algorithm: {self.algorithm}")
print(f"Original samples: {self.clustering_results['n_samples']}")
print(f"Filtered samples: {len(filtered_results)}")
print(f"Reduction ratio: {len(filtered_results)/self.clustering_results['n_samples']:.2%}")
print("\nCluster breakdown:")
for cluster_id, count in sorted(cluster_stats.items()):
print(f" Cluster {cluster_id}: {count} points")
if noise_count > 0:
print(f" Noise points: {noise_count} points")
print("\nSelection type breakdown:")
for sel_type, count in selection_type_stats.items():
print(f" {sel_type}: {count} points")
print(f"\nFiltered results saved to: {output_path}")
return output_path
def create_filepath_list(self, filtered_results, output_txt_path=None):
"""Create a simple text file with filtered filepaths"""
if output_txt_path is None:
base_name = Path(self.clustering_results_path).stem
output_txt_path = f"{base_name}_filtered_filepaths.txt"
filepaths = [result['filepath'] for result in filtered_results]
with open(output_txt_path, 'w', encoding='utf-8') as f:
for filepath in filepaths:
f.write(f"{filepath}\n")
print(f"Filepath list saved to: {output_txt_path}")
return output_txt_path
def main():
parser = argparse.ArgumentParser(description="Universal filter for clustering results")
parser.add_argument("--embeddings_path", required=True,
help="Path to embeddings JSON file")
parser.add_argument("--clustering_results_path", required=True,
help="Path to clustering results JSON file")
parser.add_argument("--output_path",
help="Output path for filtered results (optional)")
parser.add_argument("--selection_ratio", type=float, default=0.5,
help="Ratio of points to select from each cluster (default: 0.5)")
parser.add_argument("--create_filepath_list", action="store_true",
help="Also create a simple text file with filtered filepaths")
args = parser.parse_args()
# Validate input files exist
if not os.path.exists(args.embeddings_path):
print(f"Error: Embeddings file not found: {args.embeddings_path}")
return
if not os.path.exists(args.clustering_results_path):
print(f"Error: Clustering results file not found: {args.clustering_results_path}")
return
# Initialize filter
filter_obj = UniversalClusterFilter(args.embeddings_path, args.clustering_results_path)
# Load data
filter_obj.load_data()
# Filter clusters
filtered_results = filter_obj.filter_all_clusters(args.selection_ratio)
# Save results
filter_obj.save_filtered_results(filtered_results, args.output_path)
# Create filepath list if requested
if args.create_filepath_list:
filter_obj.create_filepath_list(filtered_results)
print("\nFiltering completed successfully!")
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,105 @@
#!/usr/bin/env python3
"""Generate filtered DBSCAN results based on images listed in 009_label_data_sample_seed_42.json.
Rules (v1): keep only entries whose base filename (before _<idx>_scale_* suffix or extension)
can be matched with any "image" field in the label JSON. Matching strategy:
- Extract filename without extension from each DBSCAN result filepath.
- Remove trailing pattern: _<digits>_scale_<anything>
- For each image name from labels, keep the DBSCAN entry if:
* cleaned_filename startswith(image_name) OR
* image_name startswith(cleaned_filename) OR
* image_name in cleaned_filename OR cleaned_filename in image_name
- This permissive logic aims to cover variations; can be tightened later.
Outputs file: dbscan_results_filter.json in the same folder with structure:
{
"method": "DBSCAN_FILTERED",
"n_samples": <count_of_original>,
"n_filtered": <count_after_filter>,
"results": [ ...filtered entries... ]
}
"""
from __future__ import annotations
import json
import re
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent
# LABEL_FILE = BASE_DIR / "009_label_data_sample_seed_42.json"
LABEL_FILE = BASE_DIR / "015_label_data_sample_seed_1997.json"
LABEL_FILE = BASE_DIR / "008_label_data_sample_seed_1997.json"
# Prefer the clustering output in cluster/ directory relative to project root
# DBSCAN_FILE_CANDIDATES = [
# BASE_DIR.parent / "cluster" / "dbscan_results.json",
# BASE_DIR.parent / "result" / "dbscan_results.json",
# ]
DBSCAN_FILE_CANDIDATES = [
BASE_DIR.parent / "cluster" / "dbscan_results.json",
BASE_DIR.parent / "result" / "dbscan_results.json",
]
OUTPUT_FILE = BASE_DIR / "dbscan_results_filter_008.json"
def load_first_existing(paths):
for p in paths:
if p.exists():
return p
raise FileNotFoundError("No dbscan_results.json file found in expected locations: " + ", ".join(map(str, paths)))
def normalize_image_name(name: str) -> str:
return name.strip()
def cleaned_filename(path: str) -> str:
stem = Path(path).stem # remove extension
stem = re.sub(r"_[0-9]+_scale_.*$", "", stem)
return stem
def build_image_name_set(label_path: Path) -> set[str]:
data = json.loads(label_path.read_text())
names: set[str] = set()
for entry in data:
if not isinstance(entry, dict):
continue
img = entry.get("image")
if isinstance(img, str) and img.strip():
names.add(normalize_image_name(img))
return names
def match_entry(core_name: str, image_names: set[str]) -> bool:
for img in image_names:
if core_name.startswith(img) or img.startswith(core_name):
return True
if img in core_name or core_name in img:
return True
return False
def main():
dbscan_file = load_first_existing(DBSCAN_FILE_CANDIDATES)
image_names = build_image_name_set(LABEL_FILE)
raw = json.loads(dbscan_file.read_text())
results = raw.get("results", [])
filtered = []
for rec in results:
filepath = rec.get("filepath")
if not filepath:
continue
core = cleaned_filename(filepath)
if match_entry(core, image_names):
filtered.append(rec)
out = {
"method": "DBSCAN_FILTERED",
"n_samples": len(results),
"n_filtered": len(filtered),
"match_ratio": round(len(filtered) / len(results), 4) if results else 0.0,
"source_file": str(dbscan_file),
"label_source": str(LABEL_FILE),
"results": filtered,
}
OUTPUT_FILE.write_text(json.dumps(out, indent=2, ensure_ascii=False))
print(f"Wrote {len(filtered)} filtered results to {OUTPUT_FILE}")
if __name__ == "__main__": # pragma: no cover
main()

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,460 @@
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-26471195_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26539711_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ee47fa65-6a09-493b-af5e-3d8faf643436_2500016-duvivier-anne-marie-173187397567aa1b97b01b5_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/c884bb97-d413-4384-8ec1-6a99735b8be1_facture_opticien_4_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2f91e647-c8b5-42c5-9a4e-e6dc639bd488_2025-02-00097_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27545119_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1070373_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25374417_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f482ebef-e885-4627-a927-96ad54ab5aa0_Facture_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b410345a-31de-4397-a896-bc11d97e524c_FACTURE_OPHTALMOLOGISTE_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/aa50cf96-f4cb-4848-a392-99daa5efa987_Facture_ZINT_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/38b89b50-a6b6-4816-a495-ce2d9e71082f_Kine-28-11-2024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27776469_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26556388_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/7bc6ff74-13df-435e-8457-ecbb20d9d366_Demande_remboursement_mutuelle_osteo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25332784_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1212858_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26539712_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/76577d77-1213-4994-9360-9b72f6053892_Document_PDF_2_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27703581_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2d21dc04-ddde-4f3f-a9a2-bd0070dc04e4_Factures_ophtalmo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1140659_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture psychologie-GED N-R-2391368_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724156469375osteopathe_renau_anais_le_31-07-2024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/05ec43f1-34ea-40e6-b799-413abcba56a5_IMG_1539_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/3c00ec8d-24ad-46c1-aa12-08f7cba34328_17478452286276479334092225478882_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-27210547_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27605403_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27708936_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27596405_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27697454_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/7e914ee7-a271-4faa-8d0c-3b911e700820_image_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/803f61ed-759c-4773-90f2-d8737ef911ab_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397366294irm_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/RIB-TESTNHIDEUX-U-9-4-2025_152109-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/287b78bf-1861-467f-973f-21aad6be26f1_livret_de_famille_Humez_25022024-3_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25290421_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8c31bae4-5322-4f3b-ae00-d3dbd40446df_facture_Henry_Nadege_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/172442507921917133766883857695232286776891989_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6e609e6b-dd09-4dd8-9192-416dd99e3fc6_IMG_20250207_135202_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26729830_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/047b2e29-3030-4b30-b328-8726874f3506_251_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/506fd2ef-84fb-4c32-9ce8-f68335c66bf2_1739272341881936420559325279448_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1071225_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27701076_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/03c955b1-c201-4ec2-b5e0-42a11e04908f_facture_osteo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27672722_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/91efe623-7d6b-4a96-8b03-87199c56566a_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/4ba5828c-76aa-45e9-a89f-1257021074c9_Claire_Osteo_20250207_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26592511_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/81fa09d5-04c7-4ed5-8a19-e6e724a47acb_MORIN_MARYLINE_osteopathe_050225_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/smallscreen_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1183799_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27711119_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1106091_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/5818c642-d6c2-4cc9-a16d-b66563f0cb0b_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26685506_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25864357_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27559701_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25379394_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26954651_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/comprendre-ma-facture-edf-exemple_F4nHAoq_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/300a47a0-30a0-4419-a27b-a08f7ccd6db3_17392726735678376859314053270035_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/0b801a90-3a0a-4b0c-bc7d-56f18b938619_2025-01-23-ophelie-lenoir_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25143901_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ro_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e1c02a95-aff0-4809-b30e-101ad81213b3_osteo_st1_2025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25293643_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397125678ordo_05.03.2024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25863446_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25007101_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a64d7f57-a8ed-44e9-ae38-fae9bb713144_Osteopathe__1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ecc107be-fcec-4b98-a0ed-bd325bd27b35_recu-fac-2025-02-031_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724399050400acte_de_naissance_Amaury_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/254612ad-aaea-43d0-8af7-882709c7e1d4_2025-02-00047_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25190194_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25880926_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e6d69c3f-dc5a-4bfc-844c-361b9bfd255e_OSTEO_02.25_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27776257_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/881d86b7-5bdb-4a16-bcbc-57202e0879b1_osteo_fevrier_2025_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ecf337c5-6bab-4630-aa9a-8364b1f542bb_facture_osteo__1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/c64ad8f0-0d5a-4a5b-aec5-62ec44099520_Screenshot_20250211_100040_Gallery_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/41e00ab7-34ce-4ebd-baae-b7b9e42fb973_17392896793882777076946436275276_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26186342_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26595219_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/preview-promesse-embauche-doc1-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/k-bis-103142_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/17b264a2-4881-49a4-8326-48ace17dd86f_factures_ophtalmo_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25847017_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1b105dcc-c530-4799-869e-28c15c685fab_Facture_osteo_Balmelle_Cassandra5_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25270267_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397125640FACTURE_HOSTEO__1_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a13a6613-da2d-48b7-96ef-412ba5a88af0_Factures_Clemence__2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a73c367c-878a-4461-a248-1f29d0a4eafb_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture psychologie-GED S-Z22-1003800_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/EdiAttAssPermCont_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1196314_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/4fa21bd9-393e-41d4-9af2-bf42004f4e94_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27716093_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25414972_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27545715_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25332074_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/fc14b93e-73ae-44e1-82b1-0ca50ee622de_Facture_1_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25203829_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26717084_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27709440_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/caaa1340-dc45-4133-9ff4-8bac8e2f6bbd_Facture_Lunettes_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8c3abdc3-796f-4764-9cc8-4da2481f36e8_IMG_2534_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25361051_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8908ff09-4087-467a-88f1-e415501a95b4_POUVAIT_lunettes_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Extrait acte de naissance - 27052816-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1207573_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658298461facture_podologue_alicia_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/56711b2e-104c-4be3-8308-60c6fb070bd6_IMG_8832_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1071291_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e6272522-cc2a-44b0-af14-9f54d1a76a59_Facture_lunettes__1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25093559_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/719ba06c-91ee-44dc-b7b6-4a3132f733af_FievreVillaniCarlaLunettes_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f041f191-6b8f-429a-b8d9-1204957390b2_JANNEAU_DAVID_JANV25_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/89b129db-8ec0-4d9f-a40a-a85c38cbf44b_IMG_4581_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2d21dc04-ddde-4f3f-a9a2-bd0070dc04e4_Factures_ophtalmo_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27658074_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a0bbcbed-7ccd-4e43-9e14-296e186afcce_FACTURE_Osteo_AdlaNadia_11022025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6d20c1cc-fa3b-41a9-990e-d115f2c1265b_Facture_MUNOZ_Florian_2025-0002-3_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1224543_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/27c16ad0-3309-4eb1-9432-ab8a546fee7c_osteo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2212e210-bbbc-466f-b30c-fce89df87489_20250210_134936_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27702790_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f894f446-28ce-491b-b6fb-f138c6406def_Scan_CPN_STL_Siat_20250207161822_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/9c09398e-1348-4844-8fce-e0421ad306c9_note-d-honoraire_-_2025-02-05T144527.016_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25417096_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27575418_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/819f6faf-d9f3-4668-9000-e414d92c7f41_ROYER_LUDIVINE_FACTURE_OPHTALMO_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/85e27f49-5723-4dff-a511-885441636918_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/3fd4b2e1-0247-47a1-8f27-ef7d95b9bcd2_Facture_M._Delattre_3_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25265881_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658376424KM_C250i24032713020_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6ba7415c-4d85-465b-bc52-d60959b9457f_Facture_NCBL_Cataracte_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25875089_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26772555_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724226151775psy_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2ffb844a-d807-42e3-93e8-18ee0285a542_facture-POULAIN_Justine_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2d21dc04-ddde-4f3f-a9a2-bd0070dc04e4_Factures_ophtalmo_3_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b8feb7cc-40df-4d9a-b250-a06d519fdd3d_IMG_20240522_181521_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724425031414recu-fac-2024-04-002327_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658298482BENTO22032024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/73c8aacd-890c-427f-b73d-9590f84fd6cb_20250208_114121_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/3e214583-2362-4d68-a96e-ac34df3a2bb7_osteo_ju_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-27210605_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/68e26d63-8bae-4e80-8f45-9a0cf6c23ad1_Osteo__1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1183772_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27784857_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27631166_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture psychologie-GED S-Z22-996335_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/4d8f8074-95e0-411a-b29d-25f1180fab97_Facture_Osteo_05.02.25_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/bef5bd2d-a370-457f-9d30-f7ce27c4dd70_Facture_2024-12-002_-_S_Frederic_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26592510_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/717d0d8d-3065-41d4-99d9-8c42dbcab6a8_Viani_Doris_facture_2025-02-01_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e5200778-8114-415c-8304-539e8e8876a0_CamScanner_07-02-2025_11.49_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/72eca803-8b6c-462c-83b3-ffbccf565a09_invoice-1_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/exemple-cvec_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/77645bbd-1bc5-4636-b6c9-1c64713d19b1_facture_Raphael_Braud__1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25187935_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6ac3dac2-9705-4daa-848b-86f960b592f6_IMG_1638_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25233928_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/4c53616e-7da0-4c6b-9d89-b645e80f1836_FA_25-1000_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25357010_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/cfe63e63-0385-4881-b08a-b65b50e7eeed_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/534b115b-9997-48c3-bc09-ffb89e5bddf3_Screenshot_20250212_150902_com.google.android.apps.docs_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/9e0ec80c-7190-4c77-a4f8-3dda603b0b30_Facture_Osteo_-_1ERE_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27579724_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/0453c161-70af-4474-8854-27ab0f5d7bc0_2025-02-00044-2_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25632679_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/actaadfdfffe_mariage_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6589f4fa-ebac-459a-9ebe-aa84820a2905_FACTURE_LENTILLE_2024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724399050308image_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/83f38474-d109-4edc-a395-0025e6259d96_Facture_250128_Osteo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/c64d0b90-f96f-432c-8ad7-52567dd9efc4_DRAPERI_Delphine_734_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/172560941569217134836825692176214918791820826_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/modele quittance de loyers agricoles_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Extrait acte de naissance - 27049977-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f2d7862b-6953-42c0-8fce-22854ae760f9_Osteopathe__1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724226151828Facture-FACTURE_2024-1152-MEKELLECHE-31-03-2024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27701396_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e18c5522-3488-40e9-9237-fd47811fb031_17388342101672092579270573009279_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658298484BENTO29032024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/40e6166e-dce5-4710-aba7-538fa663ec6c_IMG_20250306_093631_1_scale_0.8.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27619324_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25161623_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25166322_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/137586df-491e-440d-97b1-0afd0047318f_Facture_2025-02-008_-_L_Ezra_5_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25184785_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27778112_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f58f9a38-60a6-4f41-98f5-26852a68d8c7_Facture_osteo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/5550f57b-87f9-49dc-966d-aebef8d6c1d0_facture-chaulan-eliane-20250523-1531_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25414972_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26775374_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/085f8bfc-690a-4daf-9559-865274181242_Facture_CIANO_Ophtamologique_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/mobilenew_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e01ef5c0-efc8-4f46-9868-b2b7ea2e85e9_Facture_4_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25182410_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27619261_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/141f7ccc-37ab-4da5-9788-80a27e819b8b_Feuilles_de_soins_Psychologue_x2_3_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a3745377-917b-49b9-b9fc-3e65d22c5638_BERTIN_Franck_Facture_osteopathie_du_23_01_2025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a682cca0-0df7-4f71-b366-7525e73fb322_IMG_20250207_115651_1_scale_0.8.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25117961_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a4873987-de63-47b0-b0ef-81044554305f_IMG_20250211_163051_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/d1d62a23-a37a-4bae-b6f5-a28a137ef0af_RECTIFY_IMG_20250207_153454_1_scale_0.8.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b0977b46-747a-418c-bd20-9e99472917a2_Screenshot_20250209-143006_Samsung_Notes_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1210953_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27775827_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/511f4232-e9d9-47e2-b8b4-d029f8dc1e6e_2025-01-23_OSTEO_ALCOCK_FAC-2170_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/0007983c-1e48-4197-87d8-9291c7928688_LUNETTE_IVANOV_REMI_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27646505_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/106b84f7-29a1-4c06-8cdf-4a297995e678_Facture_lunettes_Amelie_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724156681291facture_osteopathe_20_aout_2024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/419fd893-b8ef-404d-bc49-d637110e06ad_facture_ostheo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26775264_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25300559_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1204645_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/3116513f-22b1-4143-8f0b-97527093a9cb_Facture_osteo_fevrier_2024_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e8e0549f-9d27-4508-9f56-1750649f9c1f_17466044538525179769049202853107_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/9dfe878b-b49f-4c96-bab5-93bb2ccfc4cf_Facture_DE_LA_RIVIERE_G_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/484d05c2-b89b-4ec0-8968-9ae6a5360f6a_DetailDesPaiements_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25239524_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/fe3ade48-89c0-4ac3-81f3-6dae15e20859_Ostheopate_07_02_25_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27687795_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27701163_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27779029_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/879cf76a-68c1-40d7-b444-0ff3341c97de_facture-zami-isabelle-20250130-1703_1_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27702202_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26749684_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/27af0979-5d5f-4dee-b6b3-a8ef17cce646_facture_osteopathie_Dufour_Francois_04-02-2025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27776107_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27603799_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e61341e0-47f5-44f0-afdd-b151b4ceb5aa_DEPASSEMENT_FACTURE_IVANOV_R_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/655f9ad1-1759-4ae4-8707-c66a97ef4096_IMG_20250131_162239_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27784722_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture psychologie - 27518206_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27701669_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1cbf5b4f-5370-4ad4-b877-1e3aaf3259f6_Document_2025-02-05_105424_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/5f424e29-cdd7-4c3f-aceb-28377ea12982_Facture_2500023_Ferre_Bryan_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26765337_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/c884bb97-d413-4384-8ec1-6a99735b8be1_facture_opticien_3_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27771553_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27633719_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25186075_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27651227_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/5bb3a883-f00f-42a5-84e4-007ffa949d76_facture_acquittee_optique_MIHI_3_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/172415668127717241473179067067247267468124453_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/17b264a2-4881-49a4-8326-48ace17dd86f_factures_ophtalmo_3_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27705806_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/455854fe-84e6-4ece-9492-276410b4e422_BORDERES1_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture psychologie-GED N-R-2391503_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27439925_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27232480_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1498c5f5-22cf-41d4-87f0-9b295ff481f4_IMG_5659_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26550623_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a2487589-0cc9-424b-b7c0-077dc768318b_Renouvin_Ferlicot_Edith_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/exemple-de-facture-e-commerce_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26908261_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b3271922-dc96-4bc0-b79b-f11c1c3c2d8b_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25627904_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/fa25423e-b79c-48f9-89ae-32ffd95e3101_Facture_Ophtalmologie_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b1b5e4da-2462-48c1-a9b9-ff75ecd61e37_IMG_20250206_142210_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27617919_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26189649_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1203226_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6e61ced2-f624-4434-b980-a347976b9612_osteopathe_11.02.2025_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26236562_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/c865b3cf-c251-465d-97e2-ada7a618dc56_Numerisation_20250207_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27746732_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26441046_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/4b0d7324-9a46-4f2c-872b-4b9c06cb0566_595570692474790_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27705767_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/RIB_Mr_Mme_PHAM-2_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397366242IMG_20240417_135648_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27686489_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/carte-tiers-payant_2025-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25382471_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/afc2330e-295a-4fcf-b12f-eb7de776c7a7_EMERY_Jerome_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724226587949AnyScanner_03_25_2024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724425031408Facture_psy_fevrier_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture psychologie-GED A-B22-677661_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b685d5dd-e01e-4fa9-b7aa-17abd1a25b74_IMG_5544_1_scale_0.9.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25192590_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27537844_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26740051_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/9c2763f2-fb0c-4fe4-be38-6f94fba64162_optical_facture_lunettes_apres_accident_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27235261_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27201372_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27660322_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1866f267-d6a3-49c5-80c3-e1c5d5ee6e72_HAEFFNER_Esther_Honoraires_osteeo-Schweickart_du_070225_Montant_55_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27776417_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25175989_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b7e34b86-fdb8-4ea4-b646-5bee350b947c_IMG_3542_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1198077_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-27011183_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658225850OSTEO1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/b6ecc678-8a40-4e52-bc31-09aab0782121_IMG_5670_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1959c640-25ba-42e8-a898-61d5e0d0eb98_Facture_chiropracteur_07022025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/17243969995252400021-gielczynski-louise-17494429056596ad03d4ae2_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27588377_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1221391_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/172415667785217241478517061500135449349862696_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1d7b21c7-12f2-475d-aacd-a4b6e48c3291_osteopathe_2_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1142197_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1abe7c4f-d458-4575-a0e9-3d2eaa3e0787_20250423133038356_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Elec+gaz 17.05.25 Auray-2_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/407243a9-16c8-4107-b8b3-5c9ad81c6952_DONNA_Celia_feuille-de-soins_2025-02-11_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27775261_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26748031_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/4ef6454c-e7e6-4b35-9e66-f41d56027d94_Facture_MARCIN_Amandine0702_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/28f8623a-8962-4ad1-88bb-4914109e1d42_20241118103848034_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/689164e2-be46-489b-8623-88eb5ef70df8_10-02-2025_Facture_Osteopathe_Mme__SIMOU_Daniele_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25957679_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/preview-locataire-certificat-de-scolarite-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724156469378osteopathe_renau_anais_le_31-07-2024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/40003ed8-4072-4398-bddd-0090359e602d_osteo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27708327_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2b553211-f546-45dd-aa16-d38b138a86c0_IMG_4601_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26729718_3_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/847603bb-2553-4d83-ace0-2b6ff79fa244_facture_osteo_06-02-2025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/831984b8-6c87-4f5d-b0a0-2d0ab5cc9061_20250207_140107_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8be57af2-165f-4a77-9579-8ee89b4c0d88_1000012628_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25167333_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26610949_3_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1142334_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e358b13d-402c-4e6e-9a65-1160a204353e_Screenshot_20250211_100027_Gallery_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658298467Facture_Osteopatie_Melanie_HAMON_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/0bfb5041-2751-421d-b5d5-60d696c361c1_17391960081576654684571490136238_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Capture'_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/dcfae795-497c-4d49-8e5d-1c059f6d5cb4_Facture_Osteopathe__2_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/01d6b922-8482-400e-93ea-82cec3190698_1000004180_1_scale_0.7.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/d6b93c3d-f00e-49ac-8fce-ebd2c99ec6a5_Feuille_de_soins_PROBST_Annie_20250315_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/3e613099-4659-4efd-b33f-811fc5fc764d_IMG_20250206_131824_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/d4f310c8-3bcf-4bb5-bf53-27ad74d66c1e_FACTURE_OPTICIEN_OPHTALMO_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25182408_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27756973_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/c0625556-2cb1-42c8-9433-e31274c121a3_Livret_de_famille_hamidouna-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26082051_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/719ba06c-91ee-44dc-b7b6-4a3132f733af_FievreVillaniCarlaLunettes_3_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/3676c6dd-d518-44b9-8c9f-a37b7eb77c2f_17389316237651055174693799784340_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/74441931-f8d0-4cb0-8eb5-df4147a72bbe_mgp_3_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1078555_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e41a3905-f595-4a23-8b98-cfba5c39052f_OSTEO_du_11_02_2025_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/12ebca6a-2e94-4739-a692-1100f6722a5f_Le_Monnier_Fauche_Nolan_facture_2025-01-17_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/50eeaebf-d552-4a12-92a4-66d185bb992b_facture_optique_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/9496a72b-9c2c-4542-867f-9fc4dad457c1_IMG_20250207_084759_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/42182356-427d-4a67-8ad2-a21775f7bf44_17390334446023078850027382669569_1_scale_0.8.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26723534_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/141d1472-51b6-49f1-a349-e2b5a2adbdde_Facture_osteo__1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ddc16454-d05b-4e9d-b03c-50468919fef3_IMG_9601_1_scale_0.4.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27759503_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397125672fact_osteo_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/bcdab145-079b-4ba1-a334-97abfd45d9f8_Cabinet_Perreux_sur_marne_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-27082405_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25224007_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/172563253219717135147262417284755816824044985_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/baadcf11-c68e-4774-bbaf-c7dad90b4e13_DURAND_FABIEN_facture_2025-04-25_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25489070_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/52bf793f-cea7-4827-a719-ac4fae130280_facture_osteo14.01_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/0308b7e0-8da0-4bfe-a578-57eb88e0511a_recu-fac-002296_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26765337_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25245480_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27668729_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1148278_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture psychologie-GED N-R1-948960_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture psychologie-GED K-M33-235142_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27608383_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ee05efb9-c283-46d5-a7e7-222392db9309_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1112613_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724397121048facture_kine_15-04-24_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/attestationVitale_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27703140_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8dcf02a7-b647-4605-9d95-d3fda3685599_p20250212_14102586_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27238995_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/6ba7415c-4d85-465b-bc52-d60959b9457f_Facture_NCBL_Cataracte_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/fixIBULL_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a593830c-dcbb-4553-860f-b0925a4c30ef_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27781874_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/nom contact_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/15702a02-c595-4c4e-bb3f-9b31e542c13b_FACTURE_POTARD_-_DE_SANTS_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/28a6084a-24a5-4922-b79d-f96dd51c5666_Factures_et_ordonnaces_optique_ABDOUL_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26722802_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/707771f6-bb3b-4e5e-8d7d-acd584a23009_IMG_20240726_142929_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27753021_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/rib-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f40d1b67-7690-4d39-8578-eca04cfd2b3c_Factures_Ethiopathe_Dimitri_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724396999460facture_lentille_garreau1_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27679600_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/c2dc54e7-025f-4d2a-a569-4548c4064cc4_Document_scanne_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/4f09f855-c993-42ea-97b1-3dd728b53e16_devis_ophtalmo_1_scale_0.8.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/586fa34d-1ecb-4c41-a953-b866443a7793_Osteopathe_001_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f7df49da-2cf8-4584-8306-0d10ea1994a3_Melot_Quentin_facture_2025-02-07_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1c9ac535-bb12-431c-b88f-b3401b30925e_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1062996_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724226151866livretDeFamille_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25059182_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/48e19752-3534-4539-8905-e09bdeb9fddd_CamScanner_11-02-2025_21.51_1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27757098_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26957793_3_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/bad0f823-e7d4-41be-87a2-1634254db924_IMG_20250207_130207_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724425079184Facture_Osteopathe_Brousseau_sader_17avr24_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26189648_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658298486BENTO06042024_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/95c188de-0800-4cdc-8f02-4c6fdadf3d66_Facture_Osteo_Annick_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27579295_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/e6c39a83-a53c-48f5-bffe-6bdb57337b33_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27601381_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/eb5561dd-937b-4c0b-b6c6-56da8b528c94_facture_vision_claire_ophtalmo_1_001_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/7bad16be-dff9-4b92-8041-4a9c38638e29_facturation_osteo-1_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25330401_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2af3fe93-a285-4ced-898b-90b4106bef8c_osteo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27646193_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27691255_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27576127_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/a9f88b8f-a751-478e-9338-2d31fb1062e7_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27717154_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27784971_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Quittance de Loyer 11.24 Mr NGUYEN-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26691031_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27653858_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25279751_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/0cae671e-6b7f-41aa-a0ab-d74b8e15e424_DIMART_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1196314_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27554784_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658376437factosteo_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25919222_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26729570_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724226151715Facture_Julie_Boissel_2_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1d3b5d22-87f2-4c89-90e5-8b0350bca84e_facture__Surre_Chloe_03_fevrier_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/04fde30d-7891-439d-85e7-285a0d8ffee1_IMG_1550_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25273058_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/2b3ed78c-1a3c-40b3-b997-0e74f6ba497f_FENOLLAR_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724156469373facture_psy_DOMI_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26107527_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/d317e79c-0485-42f8-b24d-413d94e7a779_Livret_de_famille-1_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture médecine douce-27710953_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1106092_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/834a074c-811f-4d27-9c19-134a4b9ab2ea_FACTURE-25-02-208-GEORGES_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/c7bbe834-632d-4fb6-8e24-c9c5caf488bc_IMG_4966_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/DDE prestation Facture des lentilles de contact-26723200_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f8c6fe47-9608-4f9e-938b-117bfa4dcd30_ostheopatie_2025-02-12_Grenot-JLuc_Mme-Tabary_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f0395d11-18fb-4b9f-bee1-5ca75d656d14_image_1_scale_0.6.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture des lentilles de contact-27664783_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26592477_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/abd25cab-e2d5-456c-ac6c-d209b698daf2_Le_Monnier_Fauche_Nolan_facture_2025-01-31_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-1105977_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture-quittance toutes spécialités-27474258_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/8d5e5dfe-71a8-4a05-a376-8727cd264ffd_osteopathe_do_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25187936_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724658126141JACOB_Francois_2024-111_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-26368529_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25263730_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/Facture ostéopathe-25330401_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/ab26e47b-d267-439c-9b12-8699c17d5d47_facture_Aurelie_Claude_naturopathe_2_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/47a3ed6d-aade-4da2-8006-1ec798c5e915_Stiegler_Gary_1_scale_1.5.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/f30627ed-f84d-4e7e-aad5-fd4e06475247_livret-de-famille-1-2_1_scale_1.0.jpg
/home/nguyendc/model-factory/Finetuning-Automation/etc/data/media/docai_mgp_facture_v2_0/1724156469377Facture_DAURISFlorian_20240815CGEI_1_scale_1.5.jpg

View File

@@ -0,0 +1,2 @@
nohup: ignoring input
python: can't open file '/home/nguyendc/sonnh/embedding-clustering/filter/gmm_extensive.py': [Errno 2] No such file or directory

View File

@@ -0,0 +1,111 @@
#!/usr/bin/env python3
"""
Script để random pick 50% samples từ label_data.json với 3 seeds khác nhau
và lưu thành 3 files riêng biệt.
"""
import json
import random
import os
from typing import List, Dict, Any
def load_json_data(file_path: str) -> List[Dict[str, Any]]:
"""Load dữ liệu từ file JSON"""
try:
with open(file_path, 'r', encoding='utf-8') as f:
data = json.load(f)
print(f"✅ Đã load {len(data)} samples từ {file_path}")
return data
except FileNotFoundError:
print(f"❌ Không tìm thấy file: {file_path}")
return []
except json.JSONDecodeError as e:
print(f"❌ Lỗi decode JSON: {e}")
return []
def random_sample_data(data: List[Dict[str, Any]], seed: int, sample_ratio: float = 0.5, sample_size = None) -> List[Dict[str, Any]]:
"""Random pick samples từ data với seed và tỷ lệ sampling cụ thể"""
random.seed(seed)
if sample_size is None:
sample_size = int(len(data) * sample_ratio)
sampled_data = random.sample(data, sample_size)
print(f"🎲 Seed {seed}: Đã sample {len(sampled_data)}/{len(data)} samples ({sample_ratio*100:.1f}%)")
return sampled_data
def save_json_data(data: List[Dict[str, Any]], file_path: str) -> bool:
"""Lưu dữ liệu vào file JSON"""
try:
with open(file_path, 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=2)
print(f"💾 Đã lưu {len(data)} samples vào {file_path}")
return True
except Exception as e:
print(f"❌ Lỗi khi lưu file {file_path}: {e}")
return False
def main():
"""Hàm chính"""
# Đường dẫn file input
input_file = "label_data.json"
# Các seeds cần sử dụng
seeds = [1997, 42, 2025]
# seeds = [42]
# Tỷ lệ sampling (50%)
# 8, 9, 10
sample_ratio = 0.5
# 11,12,13
sample_ratio = 0.3
# 16
# sample_ratio = 0.01
# 15, 17, 18
sample_size = 200
print("🔄 Bắt đầu quá trình random sampling...")
print("=" * 50)
# Load dữ liệu gốc
original_data = load_json_data(input_file)
if not original_data:
print("❌ Không thể load dữ liệu. Thoát chương trình.")
return
print(f"📊 Tổng số samples trong file gốc: {len(original_data)}")
print(f"🎯 Sẽ sample {sample_ratio*100:.1f}% = {int(len(original_data) * sample_ratio)} samples")
print("=" * 50)
# Thực hiện sampling với từng seed
for seed in seeds:
print(f"\n🌱 Xử lý với seed: {seed}")
# Random sample data
sampled_data = random_sample_data(original_data, seed, sample_ratio, sample_size = sample_size)
# Tạo tên file output
output_file = f"label_data_sample_seed_{seed}.json"
# Lưu file
success = save_json_data(sampled_data, output_file)
if success:
print(f"✅ Hoàn thành sampling với seed {seed}")
else:
print(f"❌ Lỗi khi xử lý seed {seed}")
print("\n" + "=" * 50)
print("🎉 Hoàn thành toàn bộ quá trình!")
print("\n📁 Các file đã được tạo:")
for seed in seeds:
output_file = f"016_no_fine_tune_label_data_sample_seed_{seed}.json"
if os.path.exists(output_file):
print(f"{output_file}")
else:
print(f"{output_file} (không tồn tại)")
if __name__ == "__main__":
main()

138
filter/run_filter.sh Normal file
View File

@@ -0,0 +1,138 @@
#!/bin/bash
# Example script to run DBSCAN filtering
# Make sure to update the paths according to your data
# EMBEDDINGS_PATH="/home/nguyendc/sonnh/embedding-clustering/extract/embeddings_factures_osteopathie_1k_qwen.json"
# CLUSTERING_RESULTS_PATH="/home/nguyendc/sonnh/embedding-clustering/cluster/dbscan_results.json"
# OUTPUT_PATH="dbscan_filtered_results.json" #0.5 of data, center 0.5, 0.5 border
# OUTPUT_PATH="dbscan_filtered_results_v2.json" #0.5 of data, 0.25 center, 0.75 border
# OUTPUT_PATH="dbscan_filtered_results_v3.json" #0.75 of data, center 0.25 border 0.75
# echo "Running DBSCAN filtering..."
# echo "Embeddings: $EMBEDDINGS_PATH"
# echo "Clustering results: $CLUSTERING_RESULTS_PATH"
# echo "Output: $OUTPUT_PATH"
# python dbscan.py \
# --embeddings_path "$EMBEDDINGS_PATH" \
# --clustering_results_path "$CLUSTERING_RESULTS_PATH" \
# --output_path "$OUTPUT_PATH" \
# --create_filepath_list
# echo "Filtering completed!"
# EMBEDDINGS_PATH="/home/nguyendc/sonnh/embedding-clustering/extract/embeddings_factures_osteopathie_1k_qwen.json"
# CLUSTERING_RESULTS_PATH="/home/nguyendc/sonnh/embedding-clustering/cluster/gmm_final_results_bic_20250805_150636.json"
# OUTPUT_PATH="gmm_best_by_BIC_filtered_results.json" #0.75 of data, center 0.25 border 0.75
# echo "Running DBSCAN filtering..."
# echo "Embeddings: $EMBEDDINGS_PATH"
# echo "Clustering results: $CLUSTERING_RESULTS_PATH"
# echo "Output: $OUTPUT_PATH"
# python dbscan.py \
# --embeddings_path "$EMBEDDINGS_PATH" \
# --clustering_results_path "$CLUSTERING_RESULTS_PATH" \
# --output_path "$OUTPUT_PATH" \
# --create_filepath_list
# echo "Filtering completed!"
# EMBEDDINGS_PATH="/home/nguyendc/sonnh/embedding-clustering/extract/embeddings_factures_osteopathie_1k_qwen.json"
# CLUSTERING_RESULTS_PATH="/home/nguyendc/sonnh/embedding-clustering/cluster/dbscan_results.json"
# OUTPUT_PATH="014_re_run_dbscan_filtered_results_temp.json" #0.75 of data, center 0.25 border 0.75
# python dbscan_v2.py \
# --embeddings_path "$EMBEDDINGS_PATH" \
# --clustering_results_path "$CLUSTERING_RESULTS_PATH" \
# --output_path "$OUTPUT_PATH" \
# --create_filepath_list
# EMBEDDINGS_PATH="/home/nguyendc/sonnh/embedding-clustering/extract/embeddings_factures_osteopathie_1k_qwen.json"
# CLUSTERING_RESULTS_PATH="/home/nguyendc/sonnh/embedding-clustering/cluster/gmm_final_results_bic_20250805_150636.json"
# OUTPUT_PATH="015_gmm_best_by_BIC_filtered_results_temp.json" #0.75 of data, center 0.25 border 0.75
# python dbscan_v2.py \
# --embeddings_path "$EMBEDDINGS_PATH" \
# --clustering_results_path "$CLUSTERING_RESULTS_PATH" \
# --output_path "$OUTPUT_PATH" \
# --create_filepath_list
# EMBEDDINGS_PATH="/home/nguyendc/sonnh/embedding-clustering/extract/embeddings_factures_osteopathie_1k_qwen.json"
# CLUSTERING_RESULTS_PATH="/home/nguyendc/sonnh/embedding-clustering/cluster/dbscan_results.json"
# OUTPUT_DIR="dbscan_v3_out_clusters"
# # python dbscan_v3_only_one_cluster.py \
# # --embeddings_path "$EMBEDDINGS_PATH" \
# # --clustering_results_path "$CLUSTERING_RESULTS_PATH" \
# # --output_dir "$OUTPUT_DIR" \
# python dbscan_only_one_cluster.py \
# --embeddings_path "$EMBEDDINGS_PATH" \
# --clustering_results_path "$CLUSTERING_RESULTS_PATH" \
# --save_full_clusters \
# --clusters_output_dir per_clusters
# EMBEDDINGS_PATH="/home/nguyendc/sonnh/embedding-clustering/extract/embeddings_factures_osteopathie_1k_qwen.json"
# CLUSTERING_RESULTS_PATH="/home/nguyendc/sonnh/embedding-clustering/cluster/dbscan_results.json"
# OUTPUT_PATH="026_dbscan_v3_filtered_results_temp.json"
# python dbscan_v3.py \
# --embeddings_path "$EMBEDDINGS_PATH" \
# --clustering_results_path "$CLUSTERING_RESULTS_PATH" \
# --output_path "$OUTPUT_PATH" \
# --create_filepath_list \
# --selection_ratio 1.0 --center_ratio 0.5 --border_ratio 0.5
# EMBEDDINGS_PATH="/home/nguyendc/sonnh/embedding-clustering/extract/embeddings_factures_osteopathie_1k_qwen.json"
# CLUSTERING_RESULTS_PATH="/home/nguyendc/sonnh/embedding-clustering/cluster/dbscan_results.json"
# OUTPUT_PATH="027_dbscan_v3_filtered_results_temp.json"
# python dbscan_v3.py \
# --embeddings_path "$EMBEDDINGS_PATH" \
# --clustering_results_path "$CLUSTERING_RESULTS_PATH" \
# --output_path "$OUTPUT_PATH" \
# --create_filepath_list \
# --selection_ratio 1.0 --center_ratio 0.25 --border_ratio 0.75
# EMBEDDINGS_PATH="/home/nguyendc/sonnh/embedding-clustering/extract/embeddings_factures_osteopathie_1k_qwen.json"
# CLUSTERING_RESULTS_PATH="/home/nguyendc/sonnh/embedding-clustering/cluster/dbscan_results.json"
# OUTPUT_PATH="019_dbscan_v3_filtered_results_temp.json"
# python dbscan_v3.py \
# --embeddings_path "$EMBEDDINGS_PATH" \
# --clustering_results_path "$CLUSTERING_RESULTS_PATH" \
# --output_path "$OUTPUT_PATH" \
# --create_filepath_list \
# --selection_ratio 0.12 --center_ratio 0.25 --border_ratio 0.75
# EMBEDDINGS_PATH="/home/nguyendc/sonnh/embedding-clustering/extract/embeddings_factures_osteopathie_1k_qwen.json"
# CLUSTERING_RESULTS_PATH="/home/nguyendc/sonnh/embedding-clustering/cluster/gmm_final_results_bic_20250805_150636.json"
# OUTPUT_PATH="028_gmm_best_by_BIC_filtered_results.json" #0.75 of data, center 0.25 border 0.75
# python dbscan_v3.py \
# --embeddings_path "$EMBEDDINGS_PATH" \
# --clustering_results_path "$CLUSTERING_RESULTS_PATH" \
# --output_path "$OUTPUT_PATH" \
# --create_filepath_list \
# --selection_ratio 1.0 --center_ratio 0.25 --border_ratio 0.75
EMBEDDINGS_PATH="/home/nguyendc/sonnh/embedding-clustering/extract/embeddings_factures_osteopathie_1k_qwen.json"
CLUSTERING_RESULTS_PATH="/home/nguyendc/sonnh/embedding-clustering/cluster/dbscan_results.json"
OUTPUT_PATH="029_dbscan_v3_filtered_results_temp_30.json" #0.75 of data, center 0.25 border 0.75
python dbscan_v3.py \
--embeddings_path "$EMBEDDINGS_PATH" \
--clustering_results_path "$CLUSTERING_RESULTS_PATH" \
--output_path "$OUTPUT_PATH" \
--create_filepath_list \
--selection_ratio 0.6 --center_ratio 0.5 --border_ratio 0.5

12
filter/shuffle.py Normal file
View File

@@ -0,0 +1,12 @@
import random
import json
with open('/home/nguyendc/sonnh/embedding-clustering/filter/008_label_data_sample_seed_1997.json', 'r') as f:
data = json.load(f)
random.seed(8272025)
random.shuffle(data)
with open('/home/nguyendc/sonnh/embedding-clustering/filter/032_shuffle_008.json', 'w') as f:
json.dump(data, f)