Skip to content

Commit c5c21ea

Browse files
committed
fixes
1 parent a30f2a1 commit c5c21ea

File tree

2 files changed

+24
-21
lines changed

2 files changed

+24
-21
lines changed

examples/retrieve.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,19 @@
1111
client = BrowserUse()
1212

1313
# Regular Task
14-
task = client.tasks.create(
14+
regular_task = client.tasks.create(
1515
task="""
1616
Find top 10 Hacker News articles and return the title and url.
1717
"""
1818
)
1919

20-
print(f"Task ID: {task.id}")
20+
print(f"Task ID: {regular_task.id}")
2121

2222
while True:
23-
regular = client.tasks.retrieve(task.id)
24-
print(regular.status)
25-
if regular.status == "finished":
26-
print(regular.done_output)
23+
regular_status = client.tasks.retrieve(regular_task.id)
24+
print(regular_status.status)
25+
if regular_status.status == "finished":
26+
print(regular_status.done_output)
2727
break
2828

2929
time.sleep(1)
@@ -39,24 +39,24 @@ class SearchResult(BaseModel):
3939
posts: List[HackerNewsPost]
4040

4141

42-
structured = client.tasks.create(
42+
structured_task = client.tasks.create(
4343
task="""
4444
Find top 10 Hacker News articles and return the title and url.
4545
""",
4646
structured_output_json=SearchResult,
4747
)
4848

49-
print(f"Task ID: {structured.id}")
49+
print(f"Task ID: {structured_task.id}")
5050

5151
while True:
52-
structured = client.tasks.retrieve(task_id=structured.id, structured_output_json=SearchResult)
53-
print(structured.status)
52+
structured_status = client.tasks.retrieve(task_id=structured_task.id, structured_output_json=SearchResult)
53+
print(structured_status.status)
5454

55-
if structured.status == "finished":
56-
if structured.parsed_output is None:
55+
if structured_status.status == "finished":
56+
if structured_status.parsed_output is None:
5757
print("No output")
5858
else:
59-
for post in structured.parsed_output.posts:
59+
for post in structured_status.parsed_output.posts:
6060
print(f" - {post.title} - {post.url}")
6161

6262
break

src/browser_use_sdk/resources/tasks.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,9 @@ def run(
113113
extra_body: Body | None = None,
114114
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
115115
) -> Union[TaskView, TaskViewWithOutput[BaseModel]]:
116+
"""
117+
Run a new task and return the task view.
118+
"""
116119
if structured_output_json is not None and isinstance(structured_output_json, type):
117120
create_task_res = self.create(
118121
task=task,
@@ -128,9 +131,9 @@ def run(
128131
timeout=timeout,
129132
)
130133

131-
for msg in self.stream(create_task_res.id, structured_output_json=structured_output_json):
132-
if msg.status == "finished":
133-
return msg
134+
for structured_msg in self.stream(create_task_res.id, structured_output_json=structured_output_json):
135+
if structured_msg.status == "finished":
136+
return structured_msg
134137

135138
raise ValueError("Task did not finish")
136139

@@ -341,7 +344,7 @@ def retrieve(
341344
extra_query: Query | None = None,
342345
extra_body: Body | None = None,
343346
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
344-
) -> TaskView:
347+
) -> Union[TaskView, TaskViewWithOutput[BaseModel]]:
345348
"""
346349
Get detailed information about a specific AI agent task.
347350
@@ -390,14 +393,14 @@ def retrieve(
390393
)
391394

392395
if res.done_output is None:
393-
return TaskViewWithOutput[structured_output_json](
396+
return TaskViewWithOutput[BaseModel](
394397
**res.model_dump(),
395398
parsed_output=None,
396399
)
397400

398401
parsed_output = structured_output_json.model_validate_json(res.done_output)
399402

400-
return TaskViewWithOutput[structured_output_json](
403+
return TaskViewWithOutput[BaseModel](
401404
**res.model_dump(),
402405
parsed_output=parsed_output,
403406
)
@@ -462,14 +465,14 @@ def stream(
462465
):
463466
if structured_output_json is not None and isinstance(structured_output_json, type):
464467
if res.done_output is None:
465-
yield TaskViewWithOutput[structured_output_json](
468+
yield TaskViewWithOutput[BaseModel](
466469
**res.model_dump(),
467470
parsed_output=None,
468471
)
469472
else:
470473
parsed_output = structured_output_json.model_validate_json(res.done_output)
471474

472-
yield TaskViewWithOutput[structured_output_json](
475+
yield TaskViewWithOutput[BaseModel](
473476
**res.model_dump(),
474477
parsed_output=parsed_output,
475478
)

0 commit comments

Comments
 (0)