fix: Update reasoning statuses in ThinkingProcessor tests

- Modified `TestThinkingProcessor` unit tests in `thinking.py` to update expected results for reasoning statuses:
  - Changed `"Finished"` status to `""` in `test_thinking_end`, `test_thinking_start_and_end`, and `test_chunk_with_text_after_think`.

feat: Add model aliases to HuggingFaceMedia provider

- Imported `model_aliases` from `.models` in `HuggingFaceMedia.py`.
- Added `model_aliases` attribute to `HuggingFaceMedia` provider class.

feat: Add timeout argument to CLI API parser

- Introduced `--timeout` argument in `get_api_parser()` in `cli.py` with default value of `600` seconds.
- Passed `timeout` argument to `run_api_args()` function.
```
This commit is contained in:
hlohaus 2025-06-19 00:48:57 +02:00
parent d824d77d65
commit f5bd41c598
3 changed files with 8 additions and 4 deletions

View file

@ -31,7 +31,7 @@ class TestThinkingProcessor(unittest.TestCase):
def test_thinking_end(self):
start_time = time.time()
chunk = "token</think> content after"
expected_result = [Reasoning("token"), Reasoning(status="Finished", is_thinking="</think>"), " content after"]
expected_result = [Reasoning("token"), Reasoning(status="", is_thinking="</think>"), " content after"]
actual_time, actual_result = ThinkingProcessor.process_thinking_chunk(chunk, start_time)
self.assertEqual(actual_time, 0)
self.assertEqualReasoning(actual_result[0], expected_result[0])
@ -41,7 +41,7 @@ class TestThinkingProcessor(unittest.TestCase):
def test_thinking_start_and_end(self):
start_time = time.time()
chunk = "<think>token</think> content after"
expected_result = [Reasoning(status="🤔 Is thinking...", is_thinking="<think>"), Reasoning("token"), Reasoning(status="Finished", is_thinking="</think>"), " content after"]
expected_result = [Reasoning(status="🤔 Is thinking...", is_thinking="<think>"), Reasoning("token"), Reasoning(status="", is_thinking="</think>"), " content after"]
actual_time, actual_result = ThinkingProcessor.process_thinking_chunk(chunk, start_time)
self.assertEqual(actual_time, 0)
self.assertEqualReasoning(actual_result[0], expected_result[0])
@ -60,7 +60,7 @@ class TestThinkingProcessor(unittest.TestCase):
def test_chunk_with_text_after_think(self):
chunk = "Start <think>Middle</think>End"
expected_time = 0
expected_result = ["Start ", Reasoning(status="🤔 Is thinking...", is_thinking="<think>"), Reasoning("Middle"), Reasoning(status="Finished", is_thinking="</think>"), "End"]
expected_result = ["Start ", Reasoning(status="🤔 Is thinking...", is_thinking="<think>"), Reasoning("Middle"), Reasoning(status="", is_thinking="</think>"), "End"]
actual_time, actual_result = ThinkingProcessor.process_thinking_chunk(chunk)
self.assertEqual(actual_time, expected_time)
for i in range(1, len(expected_result)):

View file

@ -14,6 +14,7 @@ from ....providers.response import ProviderInfo, ImageResponse, VideoResponse, R
from ....image.copy_images import save_response_media
from ....image import use_aspect_ratio
from .... import debug
from .models import model_aliases
class HuggingFaceMedia(AsyncGeneratorProvider, ProviderModelMixin):
label = "HuggingFace"
@ -22,6 +23,8 @@ class HuggingFaceMedia(AsyncGeneratorProvider, ProviderModelMixin):
working = True
needs_auth = True
model_aliases = model_aliases
tasks = ["text-to-image", "text-to-video"]
provider_mapping: dict[str, dict] = {}
task_mapping: dict[str, str] = {}

View file

@ -29,7 +29,7 @@ def get_api_parser():
default=[], help="List of browsers to access or retrieve cookies from. (incompatible with --reload and --workers)")
api_parser.add_argument("--reload", action="store_true", help="Enable reloading.")
api_parser.add_argument("--demo", action="store_true", help="Enable demo mode.")
api_parser.add_argument("--timeout", type=int, default=600, help="Default timeout for requests in seconds. (incompatible with --reload and --workers)")
api_parser.add_argument("--ssl-keyfile", type=str, default=None, help="Path to SSL key file for HTTPS.")
api_parser.add_argument("--ssl-certfile", type=str, default=None, help="Path to SSL certificate file for HTTPS.")
api_parser.add_argument("--log-config", type=str, default=None, help="Custom log config.")
@ -64,6 +64,7 @@ def run_api_args(args):
model=args.model,
gui=args.gui,
demo=args.demo,
timeout=args.timeout,
)
if args.cookie_browsers:
g4f.cookies.browsers = [g4f.cookies[browser] for browser in args.cookie_browsers]