hello welcome to the site.
has the coolant level been checked ?
the iac control this but relies on temp readings from the engine coolant.
please check to see if its low or empty.
also is the check engine light on ?
ok i would double check just to be sure.
if the level is ok then a faulty idle air control valve will need to be tested to confirm its failing or failed.
also i would check the pcv valve and also spray some carb cleaner around the intake manifold to see if you have a vacuum leak.
here is a idle reset procedure to try before you start replacing parts.but first check for any vacuum leaks
CIRCUIT DESCRIPTION The Vehicle Control Module (VCM) controls idle RPM with the Idle Air Control (IAC) valve. To increase idle RPM, the VCM retracts the IAC pintle from the seat, allowing more air to bypass the throttle plate. To decrease RPM, it extends the IAC pintle valve in towards the seat, reducing air flow through the IAC valve port in the throttle body. A scan tool will read the VCM commands to the IAC valve in counts. The higher the counts, the more air allowed (higher idle). The lower the counts, the less air allowed (lower idle).IAC Valve Reset Procedure Without Scan Tool