code: def projected_cost(self, model: str, messages: list, user: str):
      text = "".join(message["content"] for message in messages)
      prompt_tokens = litellm.token_counter(model=model, text=text)
      prompt_cost, _ = litellm.cost_per_token(
          model=model, prompt_tokens=prompt_tokens, completion_tokens=0
      )
      current_cost = self.user_dict[user].get("current_cost", 0)
      projected_cost = prompt_cost + current_cost
      return projected_cost
  
imports: import os, json, time
  import litellm
  from litellm.utils import ModelResponse
  import requests, threading
  from typing import Optional, Union, Literal
label_desc: Use image node_id 5 for calling the BudgetManager obj's underlying member method code with example usage: obj.projected_cost(model, messages, user) and returns: projected_cost