ultralytics-actions 0.0.97__tar.gz → 0.0.98__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.
- {ultralytics_actions-0.0.97/ultralytics_actions.egg-info → ultralytics_actions-0.0.98}/PKG-INFO +1 -1
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/actions/__init__.py +1 -1
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/actions/utils/openai_utils.py +8 -14
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/tests/test_openai_utils.py +3 -3
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98/ultralytics_actions.egg-info}/PKG-INFO +1 -1
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/LICENSE +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/README.md +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/actions/dispatch_actions.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/actions/first_interaction.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/actions/summarize_pr.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/actions/summarize_release.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/actions/update_file_headers.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/actions/update_markdown_code_blocks.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/actions/utils/__init__.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/actions/utils/common_utils.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/actions/utils/github_utils.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/actions/utils/version_utils.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/pyproject.toml +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/setup.cfg +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/tests/test_cli_commands.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/tests/test_common_utils.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/tests/test_dispatch_actions.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/tests/test_file_headers.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/tests/test_first_interaction.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/tests/test_github_utils.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/tests/test_init.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/tests/test_summarize_pr.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/tests/test_summarize_release.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/tests/test_update_markdown_codeblocks.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/tests/test_urls.py +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/ultralytics_actions.egg-info/SOURCES.txt +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/ultralytics_actions.egg-info/dependency_links.txt +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/ultralytics_actions.egg-info/entry_points.txt +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/ultralytics_actions.egg-info/requires.txt +0 -0
- {ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/ultralytics_actions.egg-info/top_level.txt +0 -0
{ultralytics_actions-0.0.97/ultralytics_actions.egg-info → ultralytics_actions-0.0.98}/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ultralytics-actions
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.98
|
4
4
|
Summary: Ultralytics Actions for GitHub automation and PR management.
|
5
5
|
Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>
|
6
6
|
Maintainer-email: Ultralytics <hello@ultralytics.com>
|
@@ -3,14 +3,13 @@
|
|
3
3
|
from __future__ import annotations
|
4
4
|
|
5
5
|
import os
|
6
|
-
import time
|
7
6
|
|
8
7
|
import requests
|
9
8
|
|
10
9
|
from actions.utils.common_utils import check_links_in_string
|
11
10
|
|
12
11
|
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
|
13
|
-
OPENAI_MODEL = os.getenv("OPENAI_MODEL", "gpt-5-
|
12
|
+
OPENAI_MODEL = os.getenv("OPENAI_MODEL", "gpt-5-codex")
|
14
13
|
SYSTEM_PROMPT_ADDITION = """Guidance:
|
15
14
|
- Ultralytics Branding: Use YOLO11, YOLO26, etc., not YOLOv11, YOLOv26 (only older versions like YOLOv10 have a v). Always capitalize "HUB" in "Ultralytics HUB"; use "Ultralytics HUB", not "The Ultralytics HUB".
|
16
15
|
- Avoid Equations: Do not include equations or mathematical notations.
|
@@ -41,9 +40,9 @@ def get_completion(
|
|
41
40
|
temperature: float = 1.0, # note GPT-5 requires temperature=1.0
|
42
41
|
reasoning_effort: str = None, # reasoning effort for GPT-5 models: minimal, low, medium, high
|
43
42
|
) -> str:
|
44
|
-
"""Generates a completion using OpenAI's API based on input messages."""
|
43
|
+
"""Generates a completion using OpenAI's Responses API based on input messages."""
|
45
44
|
assert OPENAI_API_KEY, "OpenAI API key is required."
|
46
|
-
url = "https://api.openai.com/v1/
|
45
|
+
url = "https://api.openai.com/v1/responses"
|
47
46
|
headers = {"Authorization": f"Bearer {OPENAI_API_KEY}", "Content-Type": "application/json"}
|
48
47
|
if messages and messages[0].get("role") == "system":
|
49
48
|
messages[0]["content"] += "\n\n" + SYSTEM_PROMPT_ADDITION
|
@@ -51,20 +50,15 @@ def get_completion(
|
|
51
50
|
content = ""
|
52
51
|
max_retries = 2
|
53
52
|
for attempt in range(max_retries + 2): # attempt = [0, 1, 2, 3], 2 random retries before asking for no links
|
54
|
-
data = {
|
55
|
-
|
56
|
-
|
57
|
-
"seed": int(time.time() * 1000),
|
58
|
-
"temperature": temperature,
|
59
|
-
}
|
60
|
-
|
61
|
-
# Add reasoning_effort for GPT-5 models
|
53
|
+
data = {"model": OPENAI_MODEL, "input": messages, "store": False, "temperature": temperature}
|
54
|
+
|
55
|
+
# Add reasoning for GPT-5 models
|
62
56
|
if "gpt-5" in OPENAI_MODEL:
|
63
|
-
data["
|
57
|
+
data["reasoning"] = {"effort": reasoning_effort or "low"} # Default to low for GPT-5
|
64
58
|
|
65
59
|
r = requests.post(url, json=data, headers=headers)
|
66
60
|
r.raise_for_status()
|
67
|
-
content = r.json()["
|
61
|
+
content = r.json()["output_text"].strip()
|
68
62
|
content = remove_outer_codeblocks(content)
|
69
63
|
for x in remove:
|
70
64
|
content = content.replace(x, "")
|
@@ -24,11 +24,11 @@ def test_remove_outer_codeblocks():
|
|
24
24
|
|
25
25
|
@patch("requests.post")
|
26
26
|
def test_get_completion(mock_post):
|
27
|
-
"""Test OpenAI API completion function with mocked response."""
|
27
|
+
"""Test OpenAI Responses API completion function with mocked response."""
|
28
28
|
# Setup mock response
|
29
29
|
mock_response = MagicMock()
|
30
30
|
mock_response.status_code = 200
|
31
|
-
mock_response.json.return_value = {"
|
31
|
+
mock_response.json.return_value = {"output_text": "Test response from OpenAI"}
|
32
32
|
mock_post.return_value = mock_response
|
33
33
|
|
34
34
|
# Test with basic messages
|
@@ -50,7 +50,7 @@ def test_get_completion_with_link_check(mock_check_links, mock_post):
|
|
50
50
|
# Setup mocks
|
51
51
|
mock_response = MagicMock()
|
52
52
|
mock_response.status_code = 200
|
53
|
-
mock_response.json.return_value = {"
|
53
|
+
mock_response.json.return_value = {"output_text": "Response with https://example.com link"}
|
54
54
|
mock_post.return_value = mock_response
|
55
55
|
mock_check_links.return_value = True
|
56
56
|
|
{ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98/ultralytics_actions.egg-info}/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ultralytics-actions
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.98
|
4
4
|
Summary: Ultralytics Actions for GitHub automation and PR management.
|
5
5
|
Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>
|
6
6
|
Maintainer-email: Ultralytics <hello@ultralytics.com>
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/actions/update_markdown_code_blocks.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/tests/test_update_markdown_codeblocks.py
RENAMED
File without changes
|
File without changes
|
{ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/ultralytics_actions.egg-info/SOURCES.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
{ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/ultralytics_actions.egg-info/requires.txt
RENAMED
File without changes
|
{ultralytics_actions-0.0.97 → ultralytics_actions-0.0.98}/ultralytics_actions.egg-info/top_level.txt
RENAMED
File without changes
|