GPTRouter 0.2.1__tar.gz → 0.2.5__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: GPTRouter
3
- Version: 0.2.1
3
+ Version: 0.2.5
4
4
  Summary: A Python package for working with GPTRouter APIs
5
5
  Author-email: sirjanpreet@writesonic.com
6
6
  Classifier: Development Status :: 3 - Alpha
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: GPTRouter
3
- Version: 0.2.1
3
+ Version: 0.2.5
4
4
  Summary: A Python package for working with GPTRouter APIs
5
5
  Author-email: sirjanpreet@writesonic.com
6
6
  Classifier: Development Status :: 3 - Alpha
@@ -3,7 +3,7 @@ from pydantic import parse_obj_as
3
3
  import logging
4
4
  import json
5
5
  import httpx
6
- from typing import Generator, List, Union
6
+ from typing import Generator, List, Optional, Union
7
7
 
8
8
  from gpt_router.models import (
9
9
  ImageGenerationRequest,
@@ -206,6 +206,9 @@ class GPTRouterClient:
206
206
  *,
207
207
  ordered_generation_requests: List[ModelGenerationRequest],
208
208
  is_stream=False,
209
+ tag: Optional[str] = None,
210
+ user_id: Optional[str] = None,
211
+ history_id: Optional[str] = None,
209
212
  ) -> GenerationResponse:
210
213
  api_path = "/v1/generate"
211
214
  api_method = "POST"
@@ -215,6 +218,9 @@ class GPTRouterClient:
215
218
  request.dict(exclude_none=True, by_alias=True)
216
219
  for request in ordered_generation_requests
217
220
  ],
221
+ "tag": tag,
222
+ "createdByUserId": user_id,
223
+ "historyId": history_id,
218
224
  }
219
225
  if is_stream:
220
226
  return self.astream_events(
@@ -242,6 +248,9 @@ class GPTRouterClient:
242
248
  payload=api_payload,
243
249
  )
244
250
  generated_images = api_response.get("response", [])
251
+ if isinstance(generated_images, dict):
252
+ generated_images = generated_images.get('artifacts', [])
253
+
245
254
  return [
246
255
  parse_obj_as(ImageGenerationResponse, generated_img)
247
256
  for generated_img in generated_images
@@ -0,0 +1,162 @@
1
+ from collections import namedtuple
2
+ from enum import Enum
3
+
4
+ class ProvidersEnum(Enum):
5
+ OPENAI = "openai"
6
+ CHAT_OPENAI = "chat_openai"
7
+ ANTHROPIC = "anthropic"
8
+ CHAT_ANTHROPIC = "chat_anthropic"
9
+ AZURE_CHAT_OPENAI = "azure_chat_openai"
10
+ COHERE = "cohere"
11
+ DALLE = "dall-e"
12
+ TOGETHER_AI = "together_ai"
13
+ MISTRAL_AI = "mistral_ai"
14
+ PERPLEXITY = "perplexity"
15
+ STABLE_DIFFUSION = "stable-diffusion"
16
+ DALL_E = "dall-e"
17
+ OPENROUTER = "openrouter"
18
+
19
+ class ModelsEnum(Enum):
20
+ OPENAI_GPT_35_TURBO_16K = "gpt-3.5-turbo-16k"
21
+ AZURE_GPT_35_TURBO_16K = "gpt-35-turbo-16k"
22
+
23
+ OPENAI_GPT_35_TURBO_1106 = "gpt-3.5-turbo-1106"
24
+
25
+ OPENAI_GPT_35_TURBO_0613 = "gpt-3.5-turbo-0613"
26
+
27
+ AZURE_GPT_35_TURBO = "gpt-35-turbo"
28
+
29
+ OPENAI_GPT_4 = "gpt-4"
30
+ AZURE_GPT_4 = "gpt-4"
31
+
32
+ OPENAI_GPT_4_0613 = "gpt-4-0613"
33
+
34
+ OPENAI_GPT_4_32K = "gpt-4-32k"
35
+ AZURE_GPT_4_32K = "gpt-4-32k"
36
+
37
+ OPENAI_GPT_35_TURBO_INSTRUCT = "gpt-3.5-turbo-instruct"
38
+
39
+ CLAUDE_INSTANT_12 = "claude-instant-1.2"
40
+
41
+ DALLE_3 = "dall-e-3"
42
+
43
+ STABLE_DIFFUSION_XL = "stable-diffusion-xl-1024-v1-0"
44
+ STABLE_DIFFUSION_V6 = "stable-diffusion-v1-6"
45
+
46
+ class StreamingEventType(Enum):
47
+ UPDATE = "update"
48
+ META = "meta"
49
+ ERROR = "error"
50
+ GENERATION_SOURCE = "generation_source"
51
+ END = "end"
52
+
53
+
54
+ ModelDetails = namedtuple("ModelDetails", ["provider_name", "model_name"])
55
+
56
+
57
+ class GPTRouterEngines(Enum):
58
+ OPENAI_GPT_35_TURBO = ModelDetails(
59
+ ProvidersEnum.CHAT_OPENAI.value, "gpt-3.5-turbo"
60
+ )
61
+ OPENAI_GPT_35_TURBO_0613 = ModelDetails(
62
+ ProvidersEnum.CHAT_OPENAI.value, "gpt-3.5-turbo-0613"
63
+ )
64
+ OPENAI_GPT_35_TURBO_1106 = ModelDetails(
65
+ ProvidersEnum.CHAT_OPENAI.value, "gpt-3.5-turbo-1106"
66
+ )
67
+ OPENAI_GPT_35_TURBO_16K_0613 = ModelDetails(
68
+ ProvidersEnum.CHAT_OPENAI.value, "gpt-3.5-turbo-16k-0613"
69
+ )
70
+ OPENAI_GPT_35_TURBO_INSTRUCT = ModelDetails(
71
+ ProvidersEnum.OPENAI.value, "gpt-3.5-turbo-instruct"
72
+ )
73
+ OPENAI_GPT_35_TURBO_0125 = ModelDetails(
74
+ ProvidersEnum.CHAT_OPENAI.value, "gpt-3.5-turbo-0125"
75
+ )
76
+
77
+ OPENAI_GPT_4_0613 = ModelDetails(ProvidersEnum.CHAT_OPENAI.value, "gpt-4-0613")
78
+ OPENAI_GPT_4_TURBO = ModelDetails(
79
+ ProvidersEnum.CHAT_OPENAI.value, "gpt-4-1106-preview"
80
+ )
81
+ OPENAI_GPT_4_TURBO_2024_04_09 = ModelDetails(
82
+ ProvidersEnum.CHAT_OPENAI.value, "gpt-4-turbo-2024-04-09"
83
+ )
84
+
85
+ OPENAI_GPT_4_TURBO_0125 = ModelDetails(
86
+ ProvidersEnum.CHAT_OPENAI.value, "gpt-4-0125-preview"
87
+ )
88
+
89
+ AZURE_OPENAI_GPT_4_TURBO_0125 = ModelDetails(
90
+ ProvidersEnum.AZURE_CHAT_OPENAI.value, "gpt4-turbo-0125"
91
+ )
92
+
93
+ OPENAI_GPT_4_O = ModelDetails(ProvidersEnum.CHAT_OPENAI.value, "gpt-4o")
94
+
95
+ OPENAI_GPT_4_32K_0613 = ModelDetails(
96
+ ProvidersEnum.CHAT_OPENAI.value, "gpt-4-32k-0613"
97
+ )
98
+
99
+ AZURE_GPT_35_TURBO = ModelDetails(
100
+ ProvidersEnum.AZURE_CHAT_OPENAI.value, "gpt-35-turbo"
101
+ )
102
+ AZURE_GPT_35_TURBO_16K = ModelDetails(
103
+ ProvidersEnum.AZURE_CHAT_OPENAI.value, "gpt-35-turbo-16k"
104
+ )
105
+ AZURE_GPT_35_TURBO_1106 = ModelDetails(
106
+ ProvidersEnum.AZURE_CHAT_OPENAI.value, "gpt-35-turbo-1106"
107
+ )
108
+
109
+ AZURE_GPT_4 = ModelDetails(ProvidersEnum.AZURE_CHAT_OPENAI.value, "gpt-4")
110
+ AZURE_GPT_4_TURBO = ModelDetails(
111
+ ProvidersEnum.AZURE_CHAT_OPENAI.value, "gpt-4-turbo"
112
+ )
113
+ AZURE_GPT_4_32K = ModelDetails(
114
+ ProvidersEnum.AZURE_CHAT_OPENAI.value, "gpt-4-32k"
115
+ )
116
+
117
+ CLAUDE_INSTANT_12 = ModelDetails(
118
+ ProvidersEnum.ANTHROPIC.value, "claude-instant-1.2"
119
+ )
120
+ CLAUDE_2 = ModelDetails(ProvidersEnum.ANTHROPIC.value, "claude-2")
121
+ CLAUDE_21 = ModelDetails(ProvidersEnum.ANTHROPIC.value, "claude-2.1")
122
+ CLAUDE_3_OPUS = ModelDetails(
123
+ ProvidersEnum.ANTHROPIC.value, "claude-3-opus-20240229"
124
+ )
125
+
126
+ MISTRAL_7B = ModelDetails(
127
+ ProvidersEnum.TOGETHER_AI.value, "mistralai/Mistral-7B-Instruct-v0.2"
128
+ )
129
+ MIXTRAL_8X7B = ModelDetails(
130
+ ProvidersEnum.TOGETHER_AI.value, "mistralai/Mixtral-8x7B-Instruct-v0.1"
131
+ )
132
+ LLAMA_2_70B = ModelDetails(
133
+ ProvidersEnum.TOGETHER_AI.value, "togethercomputer/llama-2-70b-chat"
134
+ )
135
+
136
+ MISTRAL_MEDIUM = ModelDetails(ProvidersEnum.MISTRAL_AI.value, "mistral-medium")
137
+
138
+ PPTX_70B_ONLINE = ModelDetails(
139
+ ProvidersEnum.PERPLEXITY.value, "pplx-70b-online"
140
+ )
141
+ PPTX_7B_ONLINE = ModelDetails(ProvidersEnum.PERPLEXITY.value, "pplx-7b-online")
142
+
143
+ STABLE_DIFFUSION_XL = ModelDetails(
144
+ ProvidersEnum.STABLE_DIFFUSION.value, "stable-diffusion-xl-1024-v1-0"
145
+ )
146
+ DALLE_3 = ModelDetails(ProvidersEnum.DALL_E.value, "dall-e-3")
147
+
148
+ LLAMA_3_70B_NITRO = ModelDetails(
149
+ ProvidersEnum.OPENROUTER, "meta-llama/llama-3-70b-instruct:nitro"
150
+ )
151
+
152
+ CLAUDE_3_SONNET = ModelDetails(
153
+ ProvidersEnum.CHAT_ANTHROPIC.value, "claude-3-sonnet-20240229"
154
+ )
155
+
156
+ CLAUDE_3_HAIKU = ModelDetails(
157
+ ProvidersEnum.CHAT_ANTHROPIC.value, "claude-3-haiku-20240307"
158
+ )
159
+
160
+ OPENROUTER_CLAUDE_3_HAIKU = ModelDetails(
161
+ ProvidersEnum.OPENROUTER.value, "anthropic/claude-3-haiku"
162
+ )
@@ -21,6 +21,7 @@ class GenerationParams(BaseModel):
21
21
  functions: Optional[List[Any]] = None
22
22
  function_call: Optional[dict] = None
23
23
  tools: Optional[List[Any]] = None
24
+ response_format: Optional[Dict[str, Any]] = None
24
25
 
25
26
 
26
27
  class ModelGenerationRequest(BaseModel):
@@ -92,5 +93,6 @@ class ImageGenerationRequest(BaseModel):
92
93
 
93
94
 
94
95
  class ImageGenerationResponse(BaseModel):
95
- revised_prompt: str
96
- url: str
96
+ url: str = None
97
+ base64: str = None
98
+ finish_reason: Optional[str] = Field(default="SUCCESS", alias='finishReason')
@@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
5
5
 
6
6
  setup(
7
7
  name="GPTRouter",
8
- version="0.2.1",
8
+ version="0.2.5",
9
9
  description="A Python package for working with GPTRouter APIs",
10
10
  long_description=long_description,
11
11
  long_description_content_type="text/markdown",
@@ -1,40 +0,0 @@
1
- from enum import Enum
2
-
3
- class ProvidersEnum(Enum):
4
- OPENAI = "openai"
5
- CHAT_OPENAI = "chat_openai"
6
- ANTHROPIC = "anthropic"
7
- AZURE_CHAT_OPENAI = "azure_chat_openai"
8
- COHERE = "cohere"
9
- DALLE = "dall-e"
10
-
11
- class ModelsEnum(Enum):
12
- OPENAI_GPT_35_TURBO_16K = "gpt-3.5-turbo-16k"
13
- AZURE_GPT_35_TURBO_16K = "gpt-35-turbo-16k"
14
-
15
- OPENAI_GPT_35_TURBO_1106 = "gpt-3.5-turbo-1106"
16
-
17
- OPENAI_GPT_35_TURBO_0613 = "gpt-3.5-turbo-0613"
18
-
19
- AZURE_GPT_35_TURBO = "gpt-35-turbo"
20
-
21
- OPENAI_GPT_4 = "gpt-4"
22
- AZURE_GPT_4 = "gpt-4"
23
-
24
- OPENAI_GPT_4_0613 = "gpt-4-0613"
25
-
26
- OPENAI_GPT_4_32K = "gpt-4-32k"
27
- AZURE_GPT_4_32K = "gpt-4-32k"
28
-
29
- OPENAI_GPT_35_TURBO_INSTRUCT = "gpt-3.5-turbo-instruct"
30
-
31
- CLAUDE_INSTANT_12 = "claude-instant-1.2"
32
-
33
- DALLE_3 = "dall-e-3"
34
-
35
- class StreamingEventType(Enum):
36
- UPDATE = "update"
37
- META = "meta"
38
- ERROR = "error"
39
- GENERATION_SOURCE = "generation_source"
40
- END = "end"
File without changes
File without changes
File without changes
File without changes