donkit-llm 0.1.10__py3-none-any.whl → 0.1.12__py3-none-any.whl

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.
donkit/llm/factory.py CHANGED
@@ -27,12 +27,14 @@ class ModelFactory:
27
27
  api_key: str,
28
28
  base_url: str | None = None,
29
29
  organization: str | None = None,
30
+ default_headers: dict[str, str] | None = None,
30
31
  ) -> OpenAIModel:
31
32
  return OpenAIModel(
32
33
  model_name=model_name,
33
34
  api_key=api_key,
34
35
  base_url=base_url,
35
36
  organization=organization,
37
+ default_headers=default_headers,
36
38
  )
37
39
 
38
40
  @staticmethod
@@ -159,7 +161,7 @@ class ModelFactory:
159
161
  def create_donkit_model(
160
162
  model_name: str | None,
161
163
  api_key: str,
162
- base_url: str = "https://api.donkit.ai",
164
+ base_url: str = "https://api.dev.donkit.ai",
163
165
  provider: str = "default",
164
166
  ) -> DonkitModel:
165
167
  """Create a Donkit model that proxies through RagOps API Gateway.
@@ -2,6 +2,7 @@ from typing import Any, AsyncIterator
2
2
 
3
3
  from loguru import logger
4
4
  from openai import AsyncAzureOpenAI, AsyncOpenAI
5
+ from openai.types import Reasoning
5
6
 
6
7
  from .model_abstract import (
7
8
  ContentType,
@@ -30,6 +31,7 @@ class OpenAIModel(LLMModelAbstract):
30
31
  api_key: str,
31
32
  base_url: str | None = None,
32
33
  organization: str | None = None,
34
+ default_headers: dict[str, str] | None = None,
33
35
  ):
34
36
  """
35
37
  Initialize OpenAI model.
@@ -39,9 +41,11 @@ class OpenAIModel(LLMModelAbstract):
39
41
  api_key: OpenAI API key
40
42
  base_url: Optional custom base URL
41
43
  organization: Optional organization ID
44
+ default_headers: Optional default headers for all requests
42
45
  """
43
46
  self._model_name = model_name
44
- self._init_client(api_key, base_url, organization)
47
+ self._default_headers = default_headers
48
+ self._init_client(api_key, base_url, organization, default_headers)
45
49
  self._capabilities = self._determine_capabilities()
46
50
 
47
51
  def _clean_schema_for_openai(self, schema: dict, is_gpt5: bool = False) -> dict:
@@ -123,12 +127,14 @@ class OpenAIModel(LLMModelAbstract):
123
127
  api_key: str,
124
128
  base_url: str | None = None,
125
129
  organization: str | None = None,
130
+ default_headers: dict[str, str] | None = None,
126
131
  ) -> None:
127
132
  """Initialize the OpenAI client. Can be overridden by subclasses."""
128
133
  self.client = AsyncOpenAI(
129
134
  api_key=api_key,
130
135
  base_url=base_url,
131
136
  organization=organization,
137
+ default_headers=default_headers,
132
138
  )
133
139
 
134
140
  def _determine_capabilities(self) -> ModelCapability:
@@ -568,6 +574,7 @@ class AzureOpenAIModel(OpenAIModel):
568
574
  api_key: str | None = None,
569
575
  base_url: str | None = None,
570
576
  organization: str | None = None,
577
+ default_headers: dict[str, str] | None = None,
571
578
  ) -> None:
572
579
  """Initialize Azure OpenAI client (or Responses API client for Codex)."""
573
580
  if self._is_codex:
@@ -576,6 +583,7 @@ class AzureOpenAIModel(OpenAIModel):
576
583
  self.client = AsyncOpenAI(
577
584
  api_key=self._api_key,
578
585
  base_url=responses_base_url,
586
+ default_headers=default_headers,
579
587
  )
580
588
  else:
581
589
  self.client = AsyncAzureOpenAI(
@@ -583,6 +591,7 @@ class AzureOpenAIModel(OpenAIModel):
583
591
  azure_endpoint=self._azure_endpoint,
584
592
  api_version=self._api_version,
585
593
  azure_deployment=self._deployment_name,
594
+ default_headers=default_headers,
586
595
  )
587
596
 
588
597
  def _determine_capabilities(self) -> ModelCapability:
@@ -804,7 +813,6 @@ class AzureOpenAIModel(OpenAIModel):
804
813
  input_items.extend(converted)
805
814
  else:
806
815
  input_items.append(converted)
807
- logger.info(input_items)
808
816
 
809
817
  kwargs: dict[str, Any] = {
810
818
  "model": self._deployment_name,
@@ -821,14 +829,13 @@ class AzureOpenAIModel(OpenAIModel):
821
829
  if request.tool_choice and isinstance(request.tool_choice, str):
822
830
  if request.tool_choice in ("none", "auto", "required"):
823
831
  kwargs["tool_choice"] = request.tool_choice
824
-
832
+ kwargs["reasoning"] = Reasoning(effort="medium", summary="detailed")
825
833
  try:
826
834
  stream = await self.client.responses.create(**kwargs)
827
835
  # Buffer for accumulating function calls by output_index
828
836
  tool_call_buffers: dict[int, dict] = {}
829
837
 
830
838
  async for event in stream:
831
- logger.info(event)
832
839
  event_type = getattr(event, "type", None)
833
840
 
834
841
  if event_type == "response.output_text.delta":
@@ -933,6 +940,7 @@ class OpenAIEmbeddingModel(LLMModelAbstract):
933
940
  model_name: str = "text-embedding-3-small",
934
941
  api_key: str | None = None,
935
942
  base_url: str | None = None,
943
+ default_headers: dict[str, str] | None = None,
936
944
  ):
937
945
  """
938
946
  Initialize OpenAI embedding model.
@@ -941,11 +949,15 @@ class OpenAIEmbeddingModel(LLMModelAbstract):
941
949
  model_name: Embedding model name
942
950
  api_key: OpenAI API key
943
951
  base_url: Optional custom base URL
952
+ default_headers: Optional default headers for all requests
944
953
  """
945
954
  self._base_url = base_url
946
955
  self._api_key = api_key
947
956
  self._model_name = model_name
948
- self.client = AsyncOpenAI(api_key=api_key, base_url=base_url)
957
+ self._default_headers = default_headers
958
+ self.client = AsyncOpenAI(
959
+ api_key=api_key, base_url=base_url, default_headers=default_headers
960
+ )
949
961
  self._capabilities = self._determine_capabilities()
950
962
 
951
963
  def _determine_capabilities(self) -> ModelCapability:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: donkit-llm
3
- Version: 0.1.10
3
+ Version: 0.1.12
4
4
  Summary: Unified LLM model implementations for Donkit (OpenAI, Azure OpenAI, Claude, Vertex AI, Ollama)
5
5
  License: MIT
6
6
  Author: Donkit AI
@@ -11,7 +11,7 @@ Classifier: Programming Language :: Python :: 3
11
11
  Classifier: Programming Language :: Python :: 3.12
12
12
  Classifier: Programming Language :: Python :: 3.13
13
13
  Requires-Dist: anthropic[vertex] (>=0.42.0,<0.43.0)
14
- Requires-Dist: donkit-ragops-api-gateway-client (>=0.1.5,<0.2.0)
14
+ Requires-Dist: donkit-ragops-api-gateway-client (>=0.2.0,<0.3.0)
15
15
  Requires-Dist: google-auth (>=2.0.0,<3.0.0)
16
16
  Requires-Dist: google-genai (>=1.38.0,<2.0.0)
17
17
  Requires-Dist: openai (>=2.1.0,<3.0.0)
@@ -1,12 +1,12 @@
1
1
  donkit/llm/__init__.py,sha256=aG8AjfJtaIjNh3ZTZcOvcHZ_erAGM8VDKavzx9oXlOc,1568
2
2
  donkit/llm/claude_model.py,sha256=9UjNkACc6wHFus2gOXLKOi9yjX2FkP3cpQ9zFZEcXWU,16650
3
3
  donkit/llm/donkit_model.py,sha256=rEPxBW6k_BhIBF4XkgLzibVfwW6OJHiX89yMadcJkY4,8497
4
- donkit/llm/factory.py,sha256=P4qjy3idZ4-duNJSlUGMPxIiriN5Dr0nfxzn6r7crwU,10819
4
+ donkit/llm/factory.py,sha256=BHJwZJc-xMz8h9LDBw1a1uS9eL5BWSyfDYcpctPxBSM,10923
5
5
  donkit/llm/gemini_model.py,sha256=2uLoZr9HjUf1wxiZRGLQFcURCutsB2SV9f-1VaR6kGI,14413
6
6
  donkit/llm/llm_gate_model.py,sha256=BQc4w1oJ0HqrI_Ng3qnynfZ-vcHcMqjXJmbMwd7u34Q,6958
7
7
  donkit/llm/model_abstract.py,sha256=aOgYh3I96PsxSxnkIJ1ETx5UFeRxozCD1c44wiKoBSs,8191
8
- donkit/llm/openai_model.py,sha256=82oWJt9tuB0WIzI5FXzmRdhs52BCM03r1BNa1EPSO4w,42561
8
+ donkit/llm/openai_model.py,sha256=cDpWGOjRaV6P5i8pIGWL8jmfQsdb1gTwt_Gl2hum7Qg,43277
9
9
  donkit/llm/vertex_model.py,sha256=IwlL0H18dGHoJMZbE7GADv9uybXnHeOGV-aUngga3OY,30203
10
- donkit_llm-0.1.10.dist-info/METADATA,sha256=ckNTrJB0VgyY93ek77674DnNHK7eX4QFoQNgbtoVNPQ,743
11
- donkit_llm-0.1.10.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
12
- donkit_llm-0.1.10.dist-info/RECORD,,
10
+ donkit_llm-0.1.12.dist-info/METADATA,sha256=D9CIBHtdw1L-qgxw4bqC8hYQPa7R0pbEmVu21tX6tCo,743
11
+ donkit_llm-0.1.12.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
12
+ donkit_llm-0.1.12.dist-info/RECORD,,