speedy-utils 1.1.8__tar.gz → 1.1.10__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/PKG-INFO +1 -1
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/pyproject.toml +1 -1
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/lm/async_lm/async_llm_task.py +11 -3
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/lm/async_lm/async_lm.py +16 -2
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/lm/async_lm/async_lm_base.py +0 -1
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/__init__.py +1 -3
- speedy_utils-1.1.10/src/speedy_utils/common/utils_cache.py +648 -0
- speedy_utils-1.1.8/src/speedy_utils/common/utils_cache.py +0 -494
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/README.md +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/__init__.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/chat_format/__init__.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/chat_format/display.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/chat_format/transform.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/chat_format/utils.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/group_messages.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/lm/__init__.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/lm/async_lm/__init__.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/lm/async_lm/_utils.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/lm/async_lm/lm_specific.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/lm/utils.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/scripts/README.md +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/scripts/vllm_load_balancer.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/scripts/vllm_serve.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/all.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/common/__init__.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/common/clock.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/common/function_decorator.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/common/logger.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/common/notebook_utils.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/common/report_manager.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/common/utils_io.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/common/utils_misc.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/common/utils_print.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/multi_worker/__init__.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/multi_worker/process.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/multi_worker/thread.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/scripts/__init__.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/scripts/mpython.py +0 -0
- {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/scripts/openapi_client_codegen.py +0 -0
|
@@ -7,6 +7,7 @@ import pathlib
|
|
|
7
7
|
from abc import ABC
|
|
8
8
|
from dataclasses import dataclass
|
|
9
9
|
from typing import Any, Dict, Generic, List, Literal, Optional, TypeVar, Union, cast
|
|
10
|
+
from venv import logger
|
|
10
11
|
|
|
11
12
|
from openai.types.chat import ChatCompletionMessageParam
|
|
12
13
|
from pydantic import BaseModel
|
|
@@ -388,7 +389,7 @@ class AsyncLLMTask(ABC, Generic[InputModelType, OutputModelType]):
|
|
|
388
389
|
input_data: InputModelType,
|
|
389
390
|
expected_response: Optional[OutputModelType] = None,
|
|
390
391
|
label: Optional[str] = None,
|
|
391
|
-
cache_dir: pathlib.Path =
|
|
392
|
+
cache_dir: Optional[pathlib.Path] = None,
|
|
392
393
|
) -> OutputModelType:
|
|
393
394
|
"""
|
|
394
395
|
Generate training data for both thinking and non-thinking modes.
|
|
@@ -414,6 +415,10 @@ class AsyncLLMTask(ABC, Generic[InputModelType, OutputModelType]):
|
|
|
414
415
|
# Create non-thinking mode equivalent
|
|
415
416
|
no_think_messages = self._create_no_think_messages(think_messages)
|
|
416
417
|
|
|
418
|
+
# Use default cache directory if none provided
|
|
419
|
+
if cache_dir is None:
|
|
420
|
+
cache_dir = self.DEFAULT_CACHE_DIR or pathlib.Path("./cache")
|
|
421
|
+
|
|
417
422
|
# Save training data
|
|
418
423
|
self._save_training_data(
|
|
419
424
|
input_data=input_data,
|
|
@@ -512,5 +517,8 @@ class AsyncLLMTask(ABC, Generic[InputModelType, OutputModelType]):
|
|
|
512
517
|
return self
|
|
513
518
|
|
|
514
519
|
async def __aexit__(self, exc_type, exc_val, exc_tb):
|
|
515
|
-
if
|
|
516
|
-
|
|
520
|
+
if hasattr(self._lm, "_last_client"):
|
|
521
|
+
last_client = self._lm._last_client # type: ignore
|
|
522
|
+
await last_client._client.aclose()
|
|
523
|
+
else:
|
|
524
|
+
logger.warning("No last client to close")
|
|
@@ -96,12 +96,16 @@ class AsyncLM(AsyncLMBase):
|
|
|
96
96
|
|
|
97
97
|
async def _unified_client_call(
|
|
98
98
|
self,
|
|
99
|
-
messages:
|
|
99
|
+
messages: RawMsgs,
|
|
100
100
|
extra_body: Optional[dict] = None,
|
|
101
101
|
cache_suffix: str = "",
|
|
102
102
|
) -> dict:
|
|
103
103
|
"""Unified method for all client interactions with caching and error handling."""
|
|
104
|
-
converted_messages =
|
|
104
|
+
converted_messages: Messages = (
|
|
105
|
+
self._convert_messages(cast(LegacyMsgs, messages))
|
|
106
|
+
if messages and isinstance(messages[0], dict)
|
|
107
|
+
else cast(Messages, messages)
|
|
108
|
+
)
|
|
105
109
|
cache_key = None
|
|
106
110
|
completion = None
|
|
107
111
|
|
|
@@ -385,3 +389,13 @@ class AsyncLM(AsyncLMBase):
|
|
|
385
389
|
raise ValueError(
|
|
386
390
|
f"Failed to validate against response model {response_model.__name__}: {exc}\nRaw content: {content}"
|
|
387
391
|
) from exc
|
|
392
|
+
|
|
393
|
+
async def __aenter__(self):
|
|
394
|
+
return self
|
|
395
|
+
|
|
396
|
+
async def __aexit__(self, exc_type, exc_val, exc_tb):
|
|
397
|
+
if hasattr(self, "_last_client"):
|
|
398
|
+
last_client = self._last_client # type: ignore
|
|
399
|
+
await last_client._client.aclose()
|
|
400
|
+
else:
|
|
401
|
+
logger.warning("No last client to close")
|
|
@@ -108,7 +108,7 @@ from .common.notebook_utils import (
|
|
|
108
108
|
)
|
|
109
109
|
|
|
110
110
|
# Cache utilities
|
|
111
|
-
from .common.utils_cache import
|
|
111
|
+
from .common.utils_cache import identify, identify_uuid, memoize
|
|
112
112
|
|
|
113
113
|
# IO utilities
|
|
114
114
|
from .common.utils_io import (
|
|
@@ -197,7 +197,6 @@ __all__ = [
|
|
|
197
197
|
# Function decorators
|
|
198
198
|
"retry_runtime",
|
|
199
199
|
# Cache utilities
|
|
200
|
-
"amemoize",
|
|
201
200
|
"memoize",
|
|
202
201
|
"identify",
|
|
203
202
|
"identify_uuid",
|
|
@@ -227,5 +226,4 @@ __all__ = [
|
|
|
227
226
|
"multi_thread",
|
|
228
227
|
# Notebook utilities
|
|
229
228
|
"change_dir",
|
|
230
|
-
"amemoize",
|
|
231
229
|
]
|