LLM-Bridge 2.2.1__tar.gz → 2.2.2__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.
Files changed (103) hide show
  1. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/PKG-INFO +1 -1
  2. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/claude/non_stream_claude_client.py +1 -0
  3. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/claude/stream_claude_client.py +1 -0
  4. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/model_client/claude_client.py +3 -0
  5. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/chat_generate/model_client_factory/claude_client_factory.py +7 -1
  6. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/resources/model_prices.json +2 -2
  7. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/pyproject.toml +1 -1
  8. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/uv.lock +1 -1
  9. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/.gitattributes +0 -0
  10. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/.github/workflows/pypi-publish.yaml +0 -0
  11. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/.github/workflows/python-test.yaml +0 -0
  12. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/.gitignore +0 -0
  13. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/.run/batch.run.xml +0 -0
  14. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/.run/pytest.run.xml +0 -0
  15. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/.run/single.run.xml +0 -0
  16. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/LICENSE +0 -0
  17. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/README.md +0 -0
  18. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/__init__.py +0 -0
  19. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/__init__.py +0 -0
  20. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/chat_client.py +0 -0
  21. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/__init__.py +0 -0
  22. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/claude/__init__.py +0 -0
  23. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/claude/claude_response_handler.py +0 -0
  24. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/claude/claude_token_counter.py +0 -0
  25. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/gemini/__init__.py +0 -0
  26. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/gemini/gemini_response_handler.py +0 -0
  27. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/gemini/gemini_token_counter.py +0 -0
  28. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/gemini/non_stream_gemini_client.py +0 -0
  29. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/gemini/stream_gemini_client.py +0 -0
  30. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/http_error.py +0 -0
  31. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/openai_completion/__init__.py +0 -0
  32. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/openai_completion/non_stream_openai_completion_client.py +0 -0
  33. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/openai_completion/stream_openai_completion_client.py +0 -0
  34. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/openai_responses/__init__.py +0 -0
  35. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/openai_responses/non_stream_openai_responses_client.py +0 -0
  36. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/openai_responses/openai_responses_response_handler.py +0 -0
  37. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/openai_responses/stream_openai_responses_client.py +0 -0
  38. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/xai/__init__.py +0 -0
  39. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/xai/non_stream_xai_client.py +0 -0
  40. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/implementations/xai/stream_xai_client.py +0 -0
  41. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/model_client/__init__.py +0 -0
  42. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/model_client/gemini_client.py +0 -0
  43. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/model_client/openai_completion_client.py +0 -0
  44. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/model_client/openai_responses_client.py +0 -0
  45. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/client/model_client/xai_client.py +0 -0
  46. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/__init__.py +0 -0
  47. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/chat_generate/__init__.py +0 -0
  48. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/chat_generate/chat_client_factory.py +0 -0
  49. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/chat_generate/chat_message_converter.py +0 -0
  50. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/chat_generate/media_processor.py +0 -0
  51. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/chat_generate/model_client_factory/__init__.py +0 -0
  52. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/chat_generate/model_client_factory/gemini_client_factory.py +0 -0
  53. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/chat_generate/model_client_factory/openai_completion_client_factory.py +0 -0
  54. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/chat_generate/model_client_factory/openai_responses_client_factory.py +0 -0
  55. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/chat_generate/model_client_factory/xai_client_factory.py +0 -0
  56. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/chat_generate/model_message_converter/__init__.py +0 -0
  57. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/chat_generate/model_message_converter/claude_message_converter.py +0 -0
  58. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/chat_generate/model_message_converter/gemini_message_converter.py +0 -0
  59. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/chat_generate/model_message_converter/openai_completion_message_converter.py +0 -0
  60. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/chat_generate/model_message_converter/openai_responses_message_converter.py +0 -0
  61. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/chat_generate/model_message_converter/xai_message_converter.py +0 -0
  62. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/file_fetch.py +0 -0
  63. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/message_process/__init__.py +0 -0
  64. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/message_process/code_file_extensions.py +0 -0
  65. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/message_process/document_processor.py +0 -0
  66. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/message_process/file_type_checker.py +0 -0
  67. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/message_process/message_processor.py +0 -0
  68. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/logic/model_prices.py +0 -0
  69. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/resources/__init__.py +0 -0
  70. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/type/__init__.py +0 -0
  71. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/type/chat_response.py +0 -0
  72. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/type/message.py +0 -0
  73. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/type/model_message/__init__.py +0 -0
  74. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/type/model_message/claude_message.py +0 -0
  75. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/type/model_message/gemini_message.py +0 -0
  76. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/type/model_message/openai_completion_message.py +0 -0
  77. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/type/model_message/openai_responses_message.py +0 -0
  78. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/type/model_message/xai_message.py +0 -0
  79. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/llm_bridge/type/serializer.py +0 -0
  80. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/tests/__init__.py +0 -0
  81. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/tests/logic/__init__.py +0 -0
  82. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/tests/logic/chat_generate/__init__.py +0 -0
  83. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/tests/logic/chat_generate/model_message_converter/__init__.py +0 -0
  84. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/tests/logic/chat_generate/model_message_converter/claude_message_converter_test.py +0 -0
  85. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/tests/logic/chat_generate/model_message_converter/gemini_message_converter_test.py +0 -0
  86. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/tests/logic/chat_generate/model_message_converter/message_factory.py +0 -0
  87. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/tests/logic/chat_generate/model_message_converter/openai_completion_message_converter_test.py +0 -0
  88. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/tests/logic/chat_generate/model_message_converter/openai_responses_message_converter_test.py +0 -0
  89. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/tests/logic/chat_generate/model_message_converter/xai_message_converter_test.py +0 -0
  90. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/tests/logic/message_process/__init__.py +0 -0
  91. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/tests/logic/message_process/file_type_checker_test.py +0 -0
  92. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/tests/logic/model_prices_test.py +0 -0
  93. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/usage/.env.example +0 -0
  94. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/usage/__init__.py +0 -0
  95. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/usage/batch/__init__.py +0 -0
  96. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/usage/batch/batch.py +0 -0
  97. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/usage/batch/config.py +0 -0
  98. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/usage/keys.py +0 -0
  99. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/usage/messages.py +0 -0
  100. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/usage/single/__init__.py +0 -0
  101. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/usage/single/config.py +0 -0
  102. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/usage/single/single.py +0 -0
  103. {llm_bridge-2.2.1 → llm_bridge-2.2.2}/usage/workflow.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: LLM-Bridge
3
- Version: 2.2.1
3
+ Version: 2.2.2
4
4
  Summary: A library that wraps multiple LLM providers into a consistent API while using each provider's native SDK internally, supporting multimodal I/O, file processing, and stream output.
5
5
  Author-email: windsnow1025 <windsnow1025@gmail.com>
6
6
  License-Expression: MIT
@@ -21,6 +21,7 @@ class NonStreamClaudeClient(ClaudeClient):
21
21
  tools=self.tools,
22
22
  cache_control=self.cache_control,
23
23
  thinking=self.thinking,
24
+ speed=self.speed,
24
25
  output_config=self.output_config,
25
26
  )
26
27
 
@@ -41,6 +41,7 @@ class StreamClaudeClient(ClaudeClient):
41
41
  tools=self.tools,
42
42
  cache_control=self.cache_control,
43
43
  thinking=self.thinking,
44
+ speed=self.speed,
44
45
  output_config=self.output_config,
45
46
  stream=True,
46
47
  )
@@ -1,4 +1,5 @@
1
1
  from collections.abc import AsyncGenerator
2
+ from typing import Literal
2
3
 
3
4
  import anthropic
4
5
  from anthropic import Omit
@@ -23,6 +24,7 @@ class ClaudeClient(ChatClient):
23
24
  tools: list[BetaToolUnionParam],
24
25
  cache_control: BetaCacheControlEphemeralParam,
25
26
  thinking: BetaThinkingConfigParam | Omit,
27
+ speed: Literal["standard", "fast"] | Omit,
26
28
  output_config: BetaOutputConfigParam | Omit,
27
29
  ):
28
30
  self.model = model
@@ -34,6 +36,7 @@ class ClaudeClient(ChatClient):
34
36
  self.tools = tools
35
37
  self.cache_control = cache_control
36
38
  self.thinking = thinking
39
+ self.speed = speed
37
40
  self.output_config = output_config
38
41
 
39
42
  async def generate_non_stream_response(self) -> ChatResponse:
@@ -1,4 +1,4 @@
1
- from typing import Any
1
+ from typing import Any, Literal
2
2
 
3
3
  import anthropic
4
4
  from anthropic import Omit, transform_schema
@@ -62,6 +62,10 @@ async def create_claude_client(
62
62
  thinking = BetaThinkingConfigAdaptiveParam(type="adaptive", display="summarized")
63
63
 
64
64
  betas: list[AnthropicBetaParam] | Omit = omit
65
+ speed: Literal["standard", "fast"] | Omit = omit
66
+ if model in ["claude-opus-5-5"]:
67
+ betas = ["fast-mode-2026-02-01"]
68
+ speed = "fast"
65
69
 
66
70
  tools: list[BetaToolUnionParam] = []
67
71
  if web_search:
@@ -103,6 +107,7 @@ async def create_claude_client(
103
107
  tools=tools,
104
108
  cache_control=cache_control,
105
109
  thinking=thinking,
110
+ speed=speed,
106
111
  output_config=output_config,
107
112
  )
108
113
  else:
@@ -116,5 +121,6 @@ async def create_claude_client(
116
121
  tools=tools,
117
122
  cache_control=cache_control,
118
123
  thinking=thinking,
124
+ speed=speed,
119
125
  output_config=output_config,
120
126
  )
@@ -122,8 +122,8 @@
122
122
  {
123
123
  "apiType": "Claude",
124
124
  "model": "claude-opus-5-5",
125
- "input": 4,
126
- "output": 20
125
+ "input": 8,
126
+ "output": 40
127
127
  },
128
128
  {
129
129
  "apiType": "Claude",
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "LLM-Bridge"
7
- version = "2.2.1"
7
+ version = "2.2.2"
8
8
  dependencies = [
9
9
  "fastapi",
10
10
  "httpx",
@@ -794,7 +794,7 @@ wheels = [
794
794
 
795
795
  [[package]]
796
796
  name = "llm-bridge"
797
- version = "2.2.1"
797
+ version = "2.2.2"
798
798
  source = { editable = "." }
799
799
  dependencies = [
800
800
  { name = "anthropic" },
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