Home / Function/ _consume() — langchain Function Reference

_consume() — langchain Function Reference

Architecture documentation for the _consume() function in rate_limiters.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  e0964492_c52e_ec68_41ea_efa229196967["_consume()"]
  29cf4437_3b06_c93f_9779_9154d2ed9ff9["InMemoryRateLimiter"]
  e0964492_c52e_ec68_41ea_efa229196967 -->|defined in| 29cf4437_3b06_c93f_9779_9154d2ed9ff9
  7eb4873b_0a65_ee74_d6ce_9f59f9def5b3["acquire()"]
  7eb4873b_0a65_ee74_d6ce_9f59f9def5b3 -->|calls| e0964492_c52e_ec68_41ea_efa229196967
  022b3bdb_ff2e_b5b9_09ea_d248b2fd2811["aacquire()"]
  022b3bdb_ff2e_b5b9_09ea_d248b2fd2811 -->|calls| e0964492_c52e_ec68_41ea_efa229196967
  style e0964492_c52e_ec68_41ea_efa229196967 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/core/langchain_core/rate_limiters.py lines 165–195

    def _consume(self) -> bool:
        """Try to consume a token.

        Returns:
            True means that the tokens were consumed, and the caller can proceed to
            make the request. A False means that the tokens were not consumed, and
            the caller should try again later.
        """
        with self._consume_lock:
            now = time.monotonic()

            # initialize on first call to avoid a burst
            if self.last is None:
                self.last = now

            elapsed = now - self.last

            if elapsed * self.requests_per_second >= 1:
                self.available_tokens += elapsed * self.requests_per_second
                self.last = now

            # Make sure that we don't exceed the bucket size.
            # This is used to prevent bursts of requests.
            self.available_tokens = min(self.available_tokens, self.max_bucket_size)

            # As long as we have at least one token, we can proceed.
            if self.available_tokens >= 1:
                self.available_tokens -= 1
                return True

            return False

Domain

Subdomains

Frequently Asked Questions

What does _consume() do?
_consume() is a function in the langchain codebase, defined in libs/core/langchain_core/rate_limiters.py.
Where is _consume() defined?
_consume() is defined in libs/core/langchain_core/rate_limiters.py at line 165.
What calls _consume()?
_consume() is called by 2 function(s): aacquire, acquire.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free