返回提交历史
Modified
g4f/tools/optimize_request.py
+2
-1
Modified
g4f/tools/run_tools.py
+6
-18
XFEstudio/gpt4free
Optimize tokens
7570313e
代码差异
2 个文件
+8
-19
@@ -1444,7 +1444,8 @@ def optimize_request(messages: Messages, tools: Any) -> Tuple[int, Dict[str, str
1444
1444
# the changes.
1445
1445
tools[:] = filtered
1446
1446
saved_bytes += tool_saved
1447
logs.update(tool_logs)
1447
#logs.update(tool_logs)
1448
logs["tools"] = f"optimized tools (-{tool_saved} bytes)"
1448
1449
1449
1450
# Report overall savings as a percentage of the baseline.
1450
1451
if baseline_bytes > 0 and saved_bytes > 0:
@@ -340,9 +340,6 @@ async def async_iter_run_tools(
340
340
# This is applied for all providers and the saved tokens are tracked.
341
341
tools_ref = kwargs.get("tools")
342
342
saved_tokens, _optimize_logs = optimize_request(messages, tools_ref)
343
if saved_tokens:
344
_summary = _optimize_logs.get("summary", f"saved ~{saved_tokens} tokens")
345
# debug.log(f"Optimized request: {_summary}")
346
343
347
344
# Optional token-optimizer plugin: compress the prompt messages before
348
345
# they reach the provider. Only active when the `token_optimizer` package
@@ -352,12 +349,6 @@ async def async_iter_run_tools(
352
349
saved_tokens += to_saved
353
350
debug.log(f"Token Optimizer plugin: saved ~{to_saved} tokens")
354
351
355
# Calculate the percentage of original prompt tokens saved by optimization.
356
_original_prompt_tokens = caculate_prompt_tokens(messages) + saved_tokens
357
saved_percent = round(saved_tokens / _original_prompt_tokens * 100) if _original_prompt_tokens > 0 and saved_tokens > 0 else 0
358
if saved_tokens:
359
debug.log(f"Token savings: {saved_tokens} tokens ({saved_percent}%)")
360
361
352
tool_emulation = kwargs.pop("tool_emulation", None)
362
353
if tool_emulation is None:
363
354
tool_emulation = os.environ.get("G4F_TOOL_EMULATION", "").strip().lower() in (
@@ -470,6 +461,9 @@ async def async_iter_run_tools(
470
461
}
471
462
if saved_tokens:
472
463
usage_dict["saved_tokens"] = saved_tokens
464
old_tokens = usage_dict.get("prompt_tokens", 0) + saved_tokens
465
saved_percent = round(saved_tokens / old_tokens * 100) if old_tokens > 0 and saved_tokens > 0 else 0
466
debug.log(f"Token savings: {saved_tokens}/{old_tokens} tokens ({saved_percent}%)")
473
467
usage = usage_dict
474
468
usage_dir = Path(get_cookies_dir()) / ".usage"
475
469
usage_file = usage_dir / f"{datetime.date.today()}.jsonl"
@@ -504,9 +498,6 @@ def iter_run_tools(
504
498
# This is applied for all providers and the saved tokens are tracked.
505
499
tools_ref = kwargs.get("tools")
506
500
saved_tokens, _optimize_logs = optimize_request(messages, tools_ref)
507
if saved_tokens:
508
_summary = _optimize_logs.get("summary", f"saved ~{saved_tokens} tokens")
509
# debug.log(f"Optimized request: {_summary}")
510
501
511
502
# Optional token-optimizer plugin: compress the prompt messages before
512
503
# they reach the provider. Only active when the `token_optimizer` package
@@ -516,12 +507,6 @@ def iter_run_tools(
516
507
saved_tokens += to_saved
517
508
debug.log(f"Token Optimizer plugin: saved ~{to_saved} tokens")
518
509
519
# Calculate the percentage of original prompt tokens saved by optimization.
520
_original_prompt_tokens = caculate_prompt_tokens(messages) + saved_tokens
521
saved_percent = round(saved_tokens / _original_prompt_tokens * 100) if _original_prompt_tokens > 0 and saved_tokens > 0 else 0
522
if saved_tokens:
523
debug.log(f"Token savings: {saved_tokens} tokens ({saved_percent}%)")
524
525
510
tool_emulation = kwargs.pop("tool_emulation", None)
526
511
if tool_emulation is None:
527
512
tool_emulation = os.environ.get("G4F_TOOL_EMULATION", "").strip().lower() in (
@@ -693,6 +678,9 @@ def iter_run_tools(
693
678
}
694
679
if saved_tokens:
695
680
usage_dict["saved_tokens"] = saved_tokens
681
old_tokens = usage_dict.get("prompt_tokens", 0) + saved_tokens
682
saved_percent = round(saved_tokens / old_tokens * 100) if old_tokens > 0 and saved_tokens > 0 else 0
683
debug.log(f"Token savings: {saved_tokens}/{old_tokens} tokens ({saved_percent}%)")
696
684
usage = usage_dict
697
685
usage_dir = Path(get_cookies_dir()) / ".usage"
698
686
usage_file = usage_dir / f"{datetime.date.today()}.jsonl"