lm-deluge 0.0.66__tar.gz → 0.0.67__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.
Potentially problematic release.
This version of lm-deluge might be problematic. Click here for more details.
- {lm_deluge-0.0.66/src/lm_deluge.egg-info → lm_deluge-0.0.67}/PKG-INFO +1 -1
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/pyproject.toml +1 -1
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/api_requests/openai.py +120 -107
- {lm_deluge-0.0.66 → lm_deluge-0.0.67/src/lm_deluge.egg-info}/PKG-INFO +1 -1
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/LICENSE +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/README.md +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/setup.cfg +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/__init__.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/api_requests/__init__.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/api_requests/anthropic.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/api_requests/base.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/api_requests/bedrock.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/api_requests/common.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/api_requests/deprecated/bedrock.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/api_requests/deprecated/cohere.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/api_requests/deprecated/deepseek.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/api_requests/deprecated/mistral.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/api_requests/deprecated/vertex.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/api_requests/gemini.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/api_requests/mistral.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/api_requests/response.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/batches.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/built_in_tools/anthropic/__init__.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/built_in_tools/anthropic/bash.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/built_in_tools/anthropic/computer_use.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/built_in_tools/anthropic/editor.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/built_in_tools/base.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/built_in_tools/openai.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/cache.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/cli.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/client.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/config.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/embed.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/errors.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/file.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/image.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/llm_tools/__init__.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/llm_tools/classify.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/llm_tools/extract.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/llm_tools/locate.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/llm_tools/ocr.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/llm_tools/score.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/llm_tools/translate.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/models/__init__.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/models/anthropic.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/models/bedrock.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/models/cerebras.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/models/cohere.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/models/deepseek.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/models/fireworks.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/models/google.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/models/grok.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/models/groq.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/models/meta.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/models/mistral.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/models/openai.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/models/openrouter.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/models/together.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/presets/cerebras.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/presets/meta.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/prompt.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/request_context.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/rerank.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/tool.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/tracker.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/usage.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/util/harmony.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/util/json.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/util/logprobs.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/util/spatial.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/util/validation.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/util/xml.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/warnings.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge.egg-info/SOURCES.txt +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge.egg-info/dependency_links.txt +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge.egg-info/requires.txt +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge.egg-info/top_level.txt +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/tests/test_builtin_tools.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/tests/test_file_upload.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/tests/test_native_mcp_server.py +0 -0
- {lm_deluge-0.0.66 → lm_deluge-0.0.67}/tests/test_openrouter_generic.py +0 -0
|
@@ -350,7 +350,8 @@ class OpenAIResponsesRequest(APIRequestBase):
|
|
|
350
350
|
assert self.context.status_tracker
|
|
351
351
|
|
|
352
352
|
if status_code == 500:
|
|
353
|
-
|
|
353
|
+
res_text = await http_response.text()
|
|
354
|
+
print("Internal Server Error: ", res_text)
|
|
354
355
|
|
|
355
356
|
if status_code >= 200 and status_code < 300:
|
|
356
357
|
try:
|
|
@@ -362,126 +363,138 @@ class OpenAIResponsesRequest(APIRequestBase):
|
|
|
362
363
|
)
|
|
363
364
|
if not is_error:
|
|
364
365
|
assert data is not None, "data is None"
|
|
365
|
-
try:
|
|
366
|
-
# Parse Responses API format
|
|
367
|
-
parts = []
|
|
368
366
|
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
367
|
+
# Check if response is incomplete
|
|
368
|
+
if data.get("status") == "incomplete":
|
|
369
|
+
is_error = True
|
|
370
|
+
incomplete_reason = data.get("incomplete_details", {}).get(
|
|
371
|
+
"reason", "unknown"
|
|
372
|
+
)
|
|
373
|
+
error_message = f"Response incomplete: {incomplete_reason}"
|
|
374
|
+
|
|
375
|
+
if not is_error:
|
|
376
|
+
try:
|
|
377
|
+
# Parse Responses API format
|
|
378
|
+
parts = []
|
|
379
|
+
|
|
380
|
+
# Get the output array from the response
|
|
381
|
+
output = data.get("output", [])
|
|
382
|
+
if not output:
|
|
383
|
+
is_error = True
|
|
384
|
+
error_message = "No output in response"
|
|
385
|
+
else:
|
|
386
|
+
# Process each output item
|
|
387
|
+
for item in output:
|
|
388
|
+
if item.get("type") == "message":
|
|
389
|
+
message_content = item.get("content", [])
|
|
390
|
+
for content_item in message_content:
|
|
391
|
+
if content_item.get("type") == "output_text":
|
|
392
|
+
parts.append(Text(content_item["text"]))
|
|
393
|
+
elif content_item.get("type") == "refusal":
|
|
394
|
+
parts.append(Text(content_item["refusal"]))
|
|
395
|
+
elif item.get("type") == "reasoning":
|
|
396
|
+
summary = item["summary"]
|
|
397
|
+
if not summary:
|
|
398
|
+
continue
|
|
399
|
+
if isinstance(summary, list) and len(summary) > 0:
|
|
400
|
+
summary = summary[0]
|
|
401
|
+
assert isinstance(
|
|
402
|
+
summary, dict
|
|
403
|
+
), "summary isn't a dict"
|
|
404
|
+
parts.append(Thinking(summary["text"]))
|
|
405
|
+
elif item.get("type") == "function_call":
|
|
406
|
+
parts.append(
|
|
407
|
+
ToolCall(
|
|
408
|
+
id=item["call_id"],
|
|
409
|
+
name=item["name"],
|
|
410
|
+
arguments=json.loads(item["arguments"]),
|
|
411
|
+
)
|
|
398
412
|
)
|
|
399
|
-
)
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
+
elif item.get("type") == "mcp_call":
|
|
414
|
+
parts.append(
|
|
415
|
+
ToolCall(
|
|
416
|
+
id=item["id"],
|
|
417
|
+
name=item["name"],
|
|
418
|
+
arguments=json.loads(item["arguments"]),
|
|
419
|
+
built_in=True,
|
|
420
|
+
built_in_type="mcp_call",
|
|
421
|
+
extra_body={
|
|
422
|
+
"server_label": item["server_label"],
|
|
423
|
+
"error": item.get("error"),
|
|
424
|
+
"output": item.get("output"),
|
|
425
|
+
},
|
|
426
|
+
)
|
|
413
427
|
)
|
|
414
|
-
)
|
|
415
428
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
429
|
+
elif item.get("type") == "computer_call":
|
|
430
|
+
parts.append(
|
|
431
|
+
ToolCall(
|
|
432
|
+
id=item["call_id"],
|
|
433
|
+
name="computer_call",
|
|
434
|
+
arguments=item.get("action"),
|
|
435
|
+
built_in=True,
|
|
436
|
+
built_in_type="computer_call",
|
|
437
|
+
)
|
|
424
438
|
)
|
|
425
|
-
)
|
|
426
439
|
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
440
|
+
elif item.get("type") == "web_search_call":
|
|
441
|
+
parts.append(
|
|
442
|
+
ToolCall(
|
|
443
|
+
id=item["id"],
|
|
444
|
+
name="web_search_call",
|
|
445
|
+
arguments={},
|
|
446
|
+
built_in=True,
|
|
447
|
+
built_in_type="web_search_call",
|
|
448
|
+
extra_body={"status": item["status"]},
|
|
449
|
+
)
|
|
436
450
|
)
|
|
437
|
-
)
|
|
438
451
|
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
452
|
+
elif item.get("type") == "file_search_call":
|
|
453
|
+
parts.append(
|
|
454
|
+
ToolCall(
|
|
455
|
+
id=item["id"],
|
|
456
|
+
name="file_search_call",
|
|
457
|
+
arguments={"queries": item["queries"]},
|
|
458
|
+
built_in=True,
|
|
459
|
+
built_in_type="file_search_call",
|
|
460
|
+
extra_body={
|
|
461
|
+
"status": item["status"],
|
|
462
|
+
"results": item["results"],
|
|
463
|
+
},
|
|
464
|
+
)
|
|
451
465
|
)
|
|
452
|
-
)
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
466
|
+
elif item.get("type") == "image_generation_call":
|
|
467
|
+
parts.append(
|
|
468
|
+
ToolCall(
|
|
469
|
+
id=item["id"],
|
|
470
|
+
name="image_generation_call",
|
|
471
|
+
arguments={},
|
|
472
|
+
built_in=True,
|
|
473
|
+
built_in_type="image_generation_call",
|
|
474
|
+
extra_body={
|
|
475
|
+
"status": item["status"],
|
|
476
|
+
"result": item["result"],
|
|
477
|
+
},
|
|
478
|
+
)
|
|
465
479
|
)
|
|
466
|
-
)
|
|
467
480
|
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
481
|
+
# Handle reasoning if present
|
|
482
|
+
if "reasoning" in data and data["reasoning"].get("summary"):
|
|
483
|
+
thinking = data["reasoning"]["summary"]
|
|
484
|
+
parts.append(Thinking(thinking))
|
|
472
485
|
|
|
473
|
-
|
|
486
|
+
content = Message("assistant", parts)
|
|
474
487
|
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
488
|
+
# Extract usage information
|
|
489
|
+
if "usage" in data and data["usage"] is not None:
|
|
490
|
+
usage = Usage.from_openai_usage(data["usage"])
|
|
478
491
|
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
492
|
+
except Exception as e:
|
|
493
|
+
is_error = True
|
|
494
|
+
error_message = f"Error parsing {self.model.name} responses API response: {str(e)}"
|
|
495
|
+
print("got data:", data)
|
|
496
|
+
traceback = tb.format_exc()
|
|
497
|
+
print(f"Error details:\n{traceback}")
|
|
485
498
|
|
|
486
499
|
elif mimetype and "json" in mimetype.lower():
|
|
487
500
|
print("is_error True, json response")
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lm_deluge-0.0.66 → lm_deluge-0.0.67}/src/lm_deluge/built_in_tools/anthropic/computer_use.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
|
|
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
|
|
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
|
|
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
|