Molecular data were acquired from PubChem by querying random compound identifiers and fetching properties through the PubChem PUG-REST API. A dataset was constructed by binning TPSA values in intervals of 5 units, with 20 molecules per bin to ensure even distribution across TPSA values and provide a robust dataset for prompt tuning. Since PubChem defines TPSA as "a simple method -only N and O are considered," [ accessed on Nov 12, 2024.] only molecules with C, N, O, and H were included and if the N and O functional groups could not be mapped to one of the specified functional groups ], they were excluded. Bins were populated by randomly sampling molecules from PubChem until each TPSA interval had 20 molecules. RDKit was used to parse SMARTS patterns, generating a list of functional groups. SMARTS patterns were loaded and iteratively applied to each SMILES string, with RDKit identifying the presence of targeted functional groups in each molecule. These functional group assignments were then linked to TPSA contributions using lookup data containing TPSA values associated with each group.