projectdavid-common 0.21.5__tar.gz → 0.21.7__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 (40) hide show
  1. {projectdavid_common-0.21.5/src/projectdavid_common.egg-info → projectdavid_common-0.21.7}/PKG-INFO +1 -1
  2. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/pyproject.toml +1 -1
  3. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/constants/ai_model_map.py +80 -38
  4. projectdavid_common-0.21.7/src/projectdavid_common/schemas/stream_schema.py +37 -0
  5. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7/src/projectdavid_common.egg-info}/PKG-INFO +1 -1
  6. projectdavid_common-0.21.5/src/projectdavid_common/schemas/stream_schema.py +0 -26
  7. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/MANIFEST.in +0 -0
  8. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/README.md +0 -0
  9. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/setup.cfg +0 -0
  10. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/__init__.py +0 -0
  11. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/constants/__init__.py +0 -0
  12. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/constants/assistant_map.py +0 -0
  13. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/constants/mime_types.py +0 -0
  14. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/constants/platform.py +0 -0
  15. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/constants/timeouts.py +0 -0
  16. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/constants/tools.py +0 -0
  17. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/schemas/__init__.py +0 -0
  18. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/schemas/actions_schema.py +0 -0
  19. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/schemas/api_key_schemas.py +0 -0
  20. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/schemas/assistants_schema.py +0 -0
  21. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/schemas/enums.py +0 -0
  22. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/schemas/files_schema.py +0 -0
  23. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/schemas/inference_schema.py +0 -0
  24. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/schemas/messages_schema.py +0 -0
  25. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/schemas/runs_schema.py +0 -0
  26. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/schemas/threads_schema.py +0 -0
  27. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/schemas/users_schema.py +0 -0
  28. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/schemas/vector_search_envelope.py +0 -0
  29. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/schemas/vectors_schema.py +0 -0
  30. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/utilities/__init__.py +0 -0
  31. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/utilities/identifier_service.py +0 -0
  32. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/utilities/logging_service.py +0 -0
  33. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/utils.py +0 -0
  34. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common/validation.py +0 -0
  35. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common.egg-info/SOURCES.txt +0 -0
  36. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common.egg-info/dependency_links.txt +0 -0
  37. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common.egg-info/entry_points.txt +0 -0
  38. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common.egg-info/requires.txt +0 -0
  39. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/src/projectdavid_common.egg-info/top_level.txt +0 -0
  40. {projectdavid_common-0.21.5 → projectdavid_common-0.21.7}/tests/test_vector_store_models.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: projectdavid_common
3
- Version: 0.21.5
3
+ Version: 0.21.7
4
4
  Summary: Common shared custom packages
5
5
  Author-email: "Francis N." <francis.neequaye@projectdavid.co.uk>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "projectdavid_common"
7
- version = "0.21.5"
7
+ version = "0.21.7"
8
8
  description = "Common shared custom packages"
9
9
  readme = "README.md"
10
10
  authors = [
@@ -18,61 +18,100 @@ DEEPSEEK_NATIVE_MODELS = {
18
18
 
19
19
 
20
20
  TOGETHER_AI_MODELS = {
21
- # --- DeepSeek ---
21
+ # --- Qwen ---
22
+ "together-ai/Qwen/QwQ-32B": "Qwen/QwQ-32B",
23
+ "together-ai/Qwen/Qwen-Image": "Qwen/Qwen-Image",
24
+ "together-ai/Qwen/Qwen2-7B": "Qwen/Qwen2-7B",
25
+ "together-ai/Qwen/Qwen2-VL-72B-Instruct": "Qwen/Qwen2-VL-72B-Instruct",
26
+ "together-ai/Qwen/Qwen2.5-1.5B": "Qwen/Qwen2.5-1.5B",
27
+ "together-ai/Qwen/Qwen2.5-72B-Instruct-Turbo": "Qwen/Qwen2.5-72B-Instruct-Turbo",
28
+ "together-ai/Qwen/Qwen2.5-7B-Instruct-Turbo": "Qwen/Qwen2.5-7B-Instruct-Turbo",
29
+ "together-ai/Qwen/Qwen2.5-Coder-32B-Instruct": "Qwen/Qwen2.5-Coder-32B-Instruct",
30
+ "together-ai/Qwen/Qwen2.5-VL-72B-Instruct": "Qwen/Qwen2.5-VL-72B-Instruct",
31
+ "together-ai/Qwen/Qwen3-14B-Base": "Qwen/Qwen3-14B-Base",
32
+ "together-ai/Qwen/Qwen3-235B-A22B-Instruct-2507-tput": "Qwen/Qwen3-235B-A22B-Instruct-2507-tput",
33
+ "together-ai/Qwen/Qwen3-235B-A22B-Thinking-2507": "Qwen/Qwen3-235B-A22B-Thinking-2507",
34
+ "together-ai/Qwen/Qwen3-235B-A22B-fp8-tput": "Qwen/Qwen3-235B-A22B-fp8-tput",
35
+ "together-ai/Qwen/Qwen3-8B": "Qwen/Qwen3-8B",
36
+ "together-ai/Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8": "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",
37
+ "together-ai/Qwen/Qwen3-Next-80B-A3B-Instruct": "Qwen/Qwen3-Next-80B-A3B-Instruct",
38
+ "together-ai/Qwen/Qwen3-Next-80B-A3B-Instruct-FP8": "Qwen/Qwen3-Next-80B-A3B-Instruct-FP8",
39
+ "together-ai/Qwen/Qwen3-Next-80B-A3B-Thinking": "Qwen/Qwen3-Next-80B-A3B-Thinking",
40
+ "together-ai/Qwen/Qwen3-VL-235B-A22B-Instruct-FP": "Qwen/Qwen3-VL-235B-A22B-Instruct-FP",
41
+ "together-ai/Qwen/Qwen3-VL-32B-Instruct": "Qwen/Qwen3-VL-32B-Instruct",
42
+ "together-ai/Qwen/Qwen3-VL-8B-Instruct": "Qwen/Qwen3-VL-8B-Instruct",
43
+ # --- Servicenow-ai ---
44
+ "together-ai/ServiceNow-AI/Apriel-1.5-15b-Thinker": "ServiceNow-AI/Apriel-1.5-15b-Thinker",
45
+ "together-ai/ServiceNow-AI/Apriel-1.6-15b-Thinker": "ServiceNow-AI/Apriel-1.6-15b-Thinker",
46
+ # --- Arcee-ai ---
47
+ "together-ai/arcee-ai/trinity-mini": "arcee-ai/trinity-mini",
48
+ # --- Arize-ai ---
49
+ "together-ai/arize-ai/qwen-2-1.5b-instruct": "arize-ai/qwen-2-1.5b-instruct",
50
+ # --- Deepcogito ---
51
+ "together-ai/deepcogito/cogito-v2-1-671b": "deepcogito/cogito-v2-1-671b",
52
+ "together-ai/deepcogito/cogito-v2-preview-llama-109B-MoE": "deepcogito/cogito-v2-preview-llama-109B-MoE",
53
+ "together-ai/deepcogito/cogito-v2-preview-llama-405B": "deepcogito/cogito-v2-preview-llama-405B",
54
+ "together-ai/deepcogito/cogito-v2-preview-llama-70B": "deepcogito/cogito-v2-preview-llama-70B",
55
+ # --- Deepseek-ai ---
22
56
  "together-ai/deepseek-ai/DeepSeek-R1": "deepseek-ai/DeepSeek-R1",
23
- "together-ai/deepseek-ai/DeepSeek-V3": "deepseek-ai/DeepSeek-V3",
57
+ "together-ai/deepseek-ai/DeepSeek-R1-0528-tput": "deepseek-ai/DeepSeek-R1-0528-tput",
58
+ "together-ai/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-free": "deepseek-ai/DeepSeek-R1-Distill-Llama-70B-free",
24
59
  "together-ai/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B": "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B",
60
+ "together-ai/deepseek-ai/DeepSeek-V3": "deepseek-ai/DeepSeek-V3",
61
+ "together-ai/deepseek-ai/DeepSeek-V3.1": "deepseek-ai/DeepSeek-V3.1",
25
62
  "together-ai/deepseek-ai/deepseek-ai/DeepSeek-R1-Distill-Qwen-14B": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B",
26
- "together-ai/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-free": "deepseek-ai/DeepSeek-R1-Distill-Llama-70B-free",
27
- # --- Meta Llama ---
28
- "together-ai/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",
29
- "together-ai/meta-llama/Llama-4-Scout-17B-16E-Instruct": "meta-llama/Llama-4-Scout-17B-16E-Instruct",
30
- "together-ai/meta-llama/Llama-3.3-70B-Instruct-Turbo": "meta-llama/Llama-3.3-70B-Instruct-Turbo",
63
+ # --- Essentialai ---
64
+ "together-ai/essentialai/rnj-1-instruct": "essentialai/rnj-1-instruct",
65
+ # --- Google ---
66
+ "together-ai/google/gemma-2-9b-it": "google/gemma-2-9b-it",
67
+ "together-ai/google/gemma-2b-it-Ishan": "google/gemma-2b-it-Ishan",
68
+ "together-ai/google/gemma-3n-E4B-it": "google/gemma-3n-E4B-it",
69
+ # --- Marin-community ---
70
+ "together-ai/marin-community/marin-8b-instruct": "marin-community/marin-8b-instruct",
71
+ # --- Meta-llama ---
31
72
  "together-ai/meta-llama/Llama-3.2-11B-Vision-Instruct-Turbo": "meta-llama/Llama-3.2-11B-Vision-Instruct-Turbo",
73
+ "together-ai/meta-llama/Llama-3.2-3B-Instruct-Turbo": "meta-llama/Llama-3.2-3B-Instruct-Turbo",
32
74
  "together-ai/meta-llama/Llama-3.2-90B-Vision-Instruct-Turbo": "meta-llama/Llama-3.2-90B-Vision-Instruct-Turbo",
75
+ "together-ai/meta-llama/Llama-3.3-70B-Instruct-Turbo": "meta-llama/Llama-3.3-70B-Instruct-Turbo",
76
+ "together-ai/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",
77
+ "together-ai/meta-llama/Llama-4-Scout-17B-16E-Instruct": "meta-llama/Llama-4-Scout-17B-16E-Instruct",
33
78
  "together-ai/meta-llama/Llama-Vision-Free": "meta-llama/Llama-Vision-Free",
34
79
  "together-ai/meta-llama/LlamaGuard-2-8b": "meta-llama/LlamaGuard-2-8b",
35
- # --- Google ---
36
- "together-ai/google/gemma-2-9b-it": "google/gemma-2-9b-it",
37
- # --- Mistral ---
80
+ "together-ai/meta-llama/Meta-Llama-3-8B-Instruct-Lite": "meta-llama/Meta-Llama-3-8B-Instruct-Lite",
81
+ "together-ai/meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo": "meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo",
82
+ "together-ai/meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo": "meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo",
83
+ "together-ai/meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo": "meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo",
84
+ # --- Mistralai ---
85
+ "together-ai/mistralai/Ministral-3-14B-Instruct-2512": "mistralai/Ministral-3-14B-Instruct-2512",
38
86
  "together-ai/mistralai/Mistral-7B-Instruct-v0.2": "mistralai/Mistral-7B-Instruct-v0.2",
39
87
  "together-ai/mistralai/Mistral-7B-Instruct-v0.3": "mistralai/Mistral-7B-Instruct-v0.3",
40
- # --- Qwen (Legacy/Existing) ---
41
- "together-ai/Qwen/QwQ-32B": "Qwen/QwQ-32B",
42
- "together-ai/Qwen/Qwen2.5-Coder-32B-Instruct": "Qwen/Qwen2.5-Coder-32B-Instruct",
43
- "together-ai/Qwen/Qwen2-VL-72B-Instruct": "Qwen/Qwen2-VL-72B-Instruct",
44
- # --- Qwen (New Additions) ---
45
- # Qwen 3 Series
46
- "together-ai/Qwen/Qwen3-Next-80B-A3B-Instruct": "Qwen/Qwen3-Next-80B-A3B-Instruct",
47
- "together-ai/Qwen/Qwen3-Next-80B-A3B-Thinking": "Qwen/Qwen3-Next-80B-A3B-Thinking",
48
- "together-ai/Qwen/Qwen3-Next-80B-A3B-Instruct-FP8": "Qwen/Qwen3-Next-80B-A3B-Instruct-FP8",
49
- "together-ai/Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8": "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",
50
- "together-ai/Qwen/Qwen3-235B-A22B-Instruct-2507-tput": "Qwen/Qwen3-235B-A22B-Instruct-2507-tput",
51
- "together-ai/Qwen/Qwen3-235B-A22B-fp8-tput": "Qwen/Qwen3-235B-A22B-fp8-tput",
52
- "together-ai/Qwen/Qwen3-235B-A22B-Thinking-2507": "Qwen/Qwen3-235B-A22B-Thinking-2507",
53
- "together-ai/Qwen/Qwen3-VL-8B-Instruct": "Qwen/Qwen3-VL-8B-Instruct",
54
- "together-ai/Qwen/Qwen3-VL-32B-Instruct": "Qwen/Qwen3-VL-32B-Instruct",
55
- "together-ai/Qwen/Qwen3-VL-235B-A22B-Instruct-FP": "Qwen/Qwen3-VL-235B-A22B-Instruct-FP",
56
- "together-ai/Qwen/Qwen3-8B": "Qwen/Qwen3-8B",
57
- "together-ai/Qwen/Qwen3-14B-Base": "Qwen/Qwen3-14B-Base",
58
- # OpenAI
88
+ "together-ai/mistralai/Mistral-Small-24B-Instruct-2501": "mistralai/Mistral-Small-24B-Instruct-2501",
89
+ "together-ai/mistralai/Mixtral-8x7B-Instruct-v0.1": "mistralai/Mixtral-8x7B-Instruct-v0.1",
90
+ # --- Moonshotai ---
91
+ "together-ai/moonshotai/Kimi-K2-Instruct-0905": "moonshotai/Kimi-K2-Instruct-0905",
92
+ "together-ai/moonshotai/Kimi-K2-Thinking": "moonshotai/Kimi-K2-Thinking",
93
+ # --- Nvidia ---
94
+ "together-ai/nvidia/NVIDIA-Nemotron-Nano-9B-v2": "nvidia/NVIDIA-Nemotron-Nano-9B-v2",
95
+ # --- Openai ---
59
96
  "together-ai/openai/gpt-oss-120b": "openai/gpt-oss-120b",
60
97
  "together-ai/openai/gpt-oss-20b": "openai/gpt-oss-20b",
61
- # Qwen 2.5 Series
62
- "together-ai/Qwen/Qwen2.5-72B-Instruct": "Qwen/Qwen2.5-72B-Instruct",
63
- "together-ai/Qwen/Qwen2.5-72B-Instruct-Turbo": "Qwen/Qwen2.5-72B-Instruct-Turbo",
64
- "together-ai/Qwen/Qwen2.5-VL-72B-Instruct": "Qwen/Qwen2.5-VL-72B-Instruct",
65
- "together-ai/Qwen/Qwen2.5-7B-Instruct-Turbo": "Qwen/Qwen2.5-7B-Instruct-Turbo",
66
- "together-ai/Qwen/Qwen2.5-1.5B": "Qwen/Qwen2.5-1.5B",
67
- # Misc
68
- "together-ai/Qwen/Qwen-Image": "Qwen/Qwen-Image",
69
- "together-ai/Qwen/Qwen2-7B": "Qwen/Qwen2-7B",
98
+ # --- Togethercomputer ---
99
+ "together-ai/togethercomputer/MoA-1": "togethercomputer/MoA-1",
100
+ "together-ai/togethercomputer/MoA-1-Turbo": "togethercomputer/MoA-1-Turbo",
101
+ "together-ai/togethercomputer/Refuel-Llm-V2": "togethercomputer/Refuel-Llm-V2",
102
+ "together-ai/togethercomputer/Refuel-Llm-V2-Small": "togethercomputer/Refuel-Llm-V2-Small",
103
+ # --- Zai-org ---
104
+ "together-ai/zai-org/GLM-4.5-Air-FP8": "zai-org/GLM-4.5-Air-FP8",
105
+ "together-ai/zai-org/GLM-4.6": "zai-org/GLM-4.6",
106
+ "together-ai/zai-org/GLM-4.7": "zai-org/GLM-4.7",
70
107
  }
71
108
 
72
109
 
73
110
  HYPERBOLIC_MODELS = {
74
111
  # DeepSeek
75
112
  "hyperbolic/deepseek-ai/DeepSeek-V3-0324": "deepseek-ai/DeepSeek-V3-0324",
113
+ # new
114
+ "hyperbolic/deepseek-ai/DeepSeek-R1-0528": "deepseek-ai/DeepSeek-R1-0528",
76
115
  "hyperbolic/deepseek-ai/DeepSeek-R1": "deepseek-ai/DeepSeek-R1",
77
116
  "hyperbolic/deepseek-ai/DeepSeek-V3": "deepseek-ai/DeepSeek-V3",
78
117
  # llama
@@ -84,6 +123,7 @@ HYPERBOLIC_MODELS = {
84
123
  "hyperbolic/meta-llama/Meta-Llama-3-70B-Instruct": "meta-llama/Meta-Llama-3-70B-Instruct",
85
124
  # Quen
86
125
  "hyperbolic/Qwen/QwQ-32B": "Qwen/QwQ-32B",
126
+ "hyperbolic/Qwen/Qwen2.5-VL-7B-Instruct": "Qwen/Qwen2.5-VL-7B-Instruct",
87
127
  "hyperbolic/Qwen/Qwen2.5-Coder-32B-Instruct": "Qwen/Qwen2.5-Coder-32B-Instruct",
88
128
  "hyperbolic/Qwen/Qwen2.5-72B-Instruct": "Qwen/Qwen2.5-72B-Instruct",
89
129
  "hyperbolic/Qwen/Qwen3-Next-80B-A3B-Thinking": "Qwen/Qwen3-Next-80B-A3B-Thinking",
@@ -93,6 +133,8 @@ HYPERBOLIC_MODELS = {
93
133
  # OpenAI
94
134
  "hyperbolic/openai/gpt-oss-120b": "openai/gpt-oss-120b",
95
135
  "hyperbolic/openai/gpt-oss-20b": "openai/gpt-oss-20b",
136
+ # New
137
+ "hyperbolic/openai/gpt-oss-120b-turbo": "openai/gpt-oss-120b-turbo",
96
138
  }
97
139
 
98
140
 
@@ -0,0 +1,37 @@
1
+ from typing import Optional
2
+
3
+ from pydantic import ( # Added ConfigDict and field_validator
4
+ BaseModel,
5
+ ConfigDict,
6
+ field_validator,
7
+ )
8
+
9
+ from projectdavid_common.constants.ai_model_map import MODEL_MAP
10
+
11
+
12
+ class StreamRequest(BaseModel):
13
+ # 1. FIX: Tell Pydantic to allow fields starting with "model_"
14
+ model_config = ConfigDict(protected_namespaces=())
15
+
16
+ provider: str
17
+ model: str
18
+ api_key: Optional[str] = None # Added default None
19
+ thread_id: str
20
+ message_id: str
21
+ run_id: str
22
+ assistant_id: str
23
+ content: Optional[str] = None
24
+
25
+ # 2. UPDATED: Using Pydantic v2 field_validator
26
+ @field_validator("model")
27
+ @classmethod
28
+ def validate_model_key(cls, v: str) -> str:
29
+ if v not in MODEL_MAP:
30
+ # Note: Ensure MODEL_MAP contains "hyperbolic/deepseek-ai/DeepSeek-V3-0324"
31
+ # as seen in your logs, or this will throw a 422 error.
32
+ raise ValueError(f"Invalid model '{v}'. Must be one of: {', '.join(MODEL_MAP.keys())}")
33
+ return v
34
+
35
+ @property
36
+ def mapped_model(self) -> str:
37
+ return MODEL_MAP[self.model]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: projectdavid_common
3
- Version: 0.21.5
3
+ Version: 0.21.7
4
4
  Summary: Common shared custom packages
5
5
  Author-email: "Francis N." <francis.neequaye@projectdavid.co.uk>
6
6
  License: MIT
@@ -1,26 +0,0 @@
1
- from typing import Optional
2
-
3
- from pydantic import BaseModel, validator
4
-
5
- from projectdavid_common.constants.ai_model_map import MODEL_MAP
6
-
7
-
8
- class StreamRequest(BaseModel):
9
- provider: str
10
- model: str
11
- api_key: Optional[str]
12
- thread_id: str
13
- message_id: str
14
- run_id: str
15
- assistant_id: str
16
- content: Optional[str] = None
17
-
18
- @validator("model")
19
- def validate_model_key(cls, v):
20
- if v not in MODEL_MAP:
21
- raise ValueError(f"Invalid model '{v}'. Must be one of: {', '.join(MODEL_MAP.keys())}")
22
- return v
23
-
24
- @property
25
- def mapped_model(self) -> str:
26
- return MODEL_MAP[self.model]