generic-llm-api-client 0.4.2__tar.gz → 0.4.4__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 (39) hide show
  1. {generic_llm_api_client-0.4.2/generic_llm_api_client.egg-info → generic_llm_api_client-0.4.4}/PKG-INFO +2 -2
  2. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/README.md +1 -1
  3. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/ai_client/__init__.py +1 -1
  4. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/ai_client/base_client.py +7 -2
  5. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/ai_client/mistral_client.py +1 -1
  6. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4/generic_llm_api_client.egg-info}/PKG-INFO +2 -2
  7. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/pyproject.toml +1 -1
  8. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/tests/test_base_client.py +1 -1
  9. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/LICENSE +0 -0
  10. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/ai_client/alibaba_client.py +0 -0
  11. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/ai_client/claude_client.py +0 -0
  12. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/ai_client/cohere_client.py +0 -0
  13. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/ai_client/content_order.py +0 -0
  14. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/ai_client/deepseek_client.py +0 -0
  15. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/ai_client/gemini_client.py +0 -0
  16. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/ai_client/openai_client.py +0 -0
  17. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/ai_client/pricing.json +0 -0
  18. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/ai_client/pricing.py +0 -0
  19. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/ai_client/response.py +0 -0
  20. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/ai_client/tools/default_tools.json +0 -0
  21. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/ai_client/utils.py +0 -0
  22. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/ai_client/xai_client.py +0 -0
  23. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/generic_llm_api_client.egg-info/SOURCES.txt +0 -0
  24. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/generic_llm_api_client.egg-info/dependency_links.txt +0 -0
  25. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/generic_llm_api_client.egg-info/requires.txt +0 -0
  26. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/generic_llm_api_client.egg-info/top_level.txt +0 -0
  27. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/setup.cfg +0 -0
  28. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/tests/test_async.py +0 -0
  29. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/tests/test_caching.py +0 -0
  30. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/tests/test_claude_client.py +0 -0
  31. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/tests/test_files_and_resize.py +0 -0
  32. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/tests/test_integration_basic.py +0 -0
  33. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/tests/test_integration_files.py +0 -0
  34. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/tests/test_integration_multimodal.py +0 -0
  35. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/tests/test_integration_structured.py +0 -0
  36. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/tests/test_openai_client.py +0 -0
  37. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/tests/test_other_clients.py +0 -0
  38. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/tests/test_response.py +0 -0
  39. {generic_llm_api_client-0.4.2 → generic_llm_api_client-0.4.4}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: generic-llm-api-client
3
- Version: 0.4.2
3
+ Version: 0.4.4
4
4
  Summary: A unified, provider-agnostic Python client for multiple LLM APIs
5
5
  Author-email: Sorin Marti <sorin.marti@gmail.com>
6
6
  Maintainer-email: Sorin Marti <sorin.marti@gmail.com>
@@ -355,7 +355,7 @@ response, _ = client.prompt('anthropic/claude-3-opus', 'Hello!')
355
355
  client = create_ai_client(
356
356
  'scicore',
357
357
  api_key='your-key',
358
- base_url='https://llm-api-h200.ceda.unibas.ch/litellm/v1'
358
+ base_url='https://llm-api-h200.ceda.unibas.ch/v1'
359
359
  )
360
360
 
361
361
  response, _ = client.prompt('deepseek/deepseek-chat', 'Hello!')
@@ -303,7 +303,7 @@ response, _ = client.prompt('anthropic/claude-3-opus', 'Hello!')
303
303
  client = create_ai_client(
304
304
  'scicore',
305
305
  api_key='your-key',
306
- base_url='https://llm-api-h200.ceda.unibas.ch/litellm/v1'
306
+ base_url='https://llm-api-h200.ceda.unibas.ch/v1'
307
307
  )
308
308
 
309
309
  response, _ = client.prompt('deepseek/deepseek-chat', 'Hello!')
@@ -47,7 +47,7 @@ from .utils import (
47
47
  APIError,
48
48
  )
49
49
 
50
- __version__ = "0.4.2"
50
+ __version__ = "0.4.4"
51
51
 
52
52
  __all__ = [
53
53
  # Core classes
@@ -770,10 +770,10 @@ def create_ai_client(
770
770
  if provider == "openrouter" and base_url is None:
771
771
  base_url = "https://openrouter.ai/api/v1"
772
772
  elif provider == "scicore" and base_url is None:
773
- base_url = "https://llm-api-h200.ceda.unibas.ch/litellm"
773
+ base_url = "https://llm-api-h200.ceda.unibas.ch/v1"
774
774
 
775
775
  client_class = provider_map[provider]
776
- return client_class(
776
+ client = client_class(
777
777
  api_key,
778
778
  system_prompt,
779
779
  base_url,
@@ -783,3 +783,8 @@ def create_ai_client(
783
783
  content_order,
784
784
  **settings,
785
785
  )
786
+
787
+ if provider in ("openrouter", "scicore"):
788
+ client.PROVIDER_ID = provider
789
+
790
+ return client
@@ -145,7 +145,7 @@ class MistralClient(BaseAIClient):
145
145
  schema_prompt = (
146
146
  f"\n\nReturn a JSON response matching this exact schema: {json.dumps(schema)}"
147
147
  )
148
- messages[-1]["content"] = prompt + schema_prompt
148
+ content.append({"type": "text", "text": schema_prompt})
149
149
  params["response_format"] = {"type": "json_object"}
150
150
 
151
151
  # Send the request
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: generic-llm-api-client
3
- Version: 0.4.2
3
+ Version: 0.4.4
4
4
  Summary: A unified, provider-agnostic Python client for multiple LLM APIs
5
5
  Author-email: Sorin Marti <sorin.marti@gmail.com>
6
6
  Maintainer-email: Sorin Marti <sorin.marti@gmail.com>
@@ -355,7 +355,7 @@ response, _ = client.prompt('anthropic/claude-3-opus', 'Hello!')
355
355
  client = create_ai_client(
356
356
  'scicore',
357
357
  api_key='your-key',
358
- base_url='https://llm-api-h200.ceda.unibas.ch/litellm/v1'
358
+ base_url='https://llm-api-h200.ceda.unibas.ch/v1'
359
359
  )
360
360
 
361
361
  response, _ = client.prompt('deepseek/deepseek-chat', 'Hello!')
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "generic-llm-api-client"
7
- version = "0.4.2"
7
+ version = "0.4.4"
8
8
  description = "A unified, provider-agnostic Python client for multiple LLM APIs"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -75,7 +75,7 @@ class TestCreateAIClient:
75
75
  client = create_ai_client(
76
76
  "scicore",
77
77
  api_key="test-key",
78
- base_url="https://llm-api-h200.ceda.unibas.ch/litellm/v1",
78
+ base_url="https://llm-api-h200.ceda.unibas.ch/v1",
79
79
  )
80
80
  assert isinstance(client, OpenAIClient)
81
81