MCPcopy Create free account
hub / github.com/OpenRaiser/PaperFlow / log_token_usage

Function log_token_usage

experiments/token_cost/token_usage_tracker.py:104–134  ·  view source on GitHub ↗

记录一次 token 使用(累加到每日总计,不实时写入文件)

(
    task_type: str,
    model: str,
    input_tokens: int,
    output_tokens: int,
    user_id: Optional[str] = None,
    date: Optional[str] = None,
    extra: Optional[Dict] = None
)

Source from the content-addressed store, hash-verified

102
103
104def log_token_usage(
105 task_type: str,
106 model: str,
107 input_tokens: int,
108 output_tokens: int,
109 user_id: Optional[str] = None,
110 date: Optional[str] = None,
111 extra: Optional[Dict] = None
112) -> None:
113 """记录一次 token 使用(累加到每日总计,不实时写入文件)"""
114 record_date = date or datetime.now().strftime("%Y-%m-%d")
115
116 if record_date not in _daily_token_totals:
117 _daily_token_totals[record_date] = {
118 "date": record_date,
119 "embedding_input": 0,
120 "embedding_output": 0,
121 "llm_input": 0,
122 "llm_output": 0,
123 "call_count": 0,
124 }
125
126 total = _daily_token_totals[record_date]
127 total["call_count"] += 1
128
129 if "embedding" in task_type.lower():
130 total["embedding_input"] += input_tokens
131 total["embedding_output"] += output_tokens
132 else:
133 total["llm_input"] += input_tokens
134 total["llm_output"] += output_tokens
135
136
137def flush_token_logs() -> None:

Callers 2

recordMethod · 0.90
benchmark_one_dayFunction · 0.85

Calls 1

nowMethod · 0.80

Tested by

no test coverage detected