arize-phoenix 10.1.0__py3-none-any.whl → 10.2.0__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.

Potentially problematic release.


This version of arize-phoenix might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arize-phoenix
3
- Version: 10.1.0
3
+ Version: 10.2.0
4
4
  Summary: AI Observability and Evaluation
5
5
  Project-URL: Documentation, https://docs.arize.com/phoenix/
6
6
  Project-URL: Issues, https://github.com/Arize-ai/phoenix/issues
@@ -22,7 +22,7 @@ Requires-Dist: aiosqlite
22
22
  Requires-Dist: alembic<2,>=1.3.0
23
23
  Requires-Dist: arize-phoenix-client
24
24
  Requires-Dist: arize-phoenix-evals>=0.20.6
25
- Requires-Dist: arize-phoenix-otel>=0.9.2
25
+ Requires-Dist: arize-phoenix-otel>=0.10.1
26
26
  Requires-Dist: authlib
27
27
  Requires-Dist: cachetools
28
28
  Requires-Dist: email-validator
@@ -6,7 +6,7 @@ phoenix/exceptions.py,sha256=n2L2KKuecrdflB9MsCdAYCiSEvGJptIsfRkXMoJle7A,169
6
6
  phoenix/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
7
7
  phoenix/services.py,sha256=ngkyKGVatX3cO2WJdo2hKdaVKP-xJCMvqthvga6kJss,5196
8
8
  phoenix/settings.py,sha256=x87BX7hWGQQZbrW_vrYqFR_izCGfO9gFc--JXUG4Tdk,754
9
- phoenix/version.py,sha256=OL-z73Pbatjb7iB0kk-omeb_qR2_5zFbHqhV-TRrbvM,23
9
+ phoenix/version.py,sha256=Bq4gqfjuPW5XkFzJldN6MIeNfoEAHd_kjBi_JPG-_hA,23
10
10
  phoenix/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  phoenix/core/embedding_dimension.py,sha256=zKGbcvwOXgLf-yrJBpQyKtd-LEOPRKHnUToyAU8Owis,87
12
12
  phoenix/core/model.py,sha256=qBFraOtmwCCnWJltKNP18DDG0mULXigytlFsa6YOz6k,4837
@@ -26,7 +26,7 @@ phoenix/db/models.py,sha256=UELkdw132bsF9d3g2Jh-lM2UCX2sA6A8osMRTo7wZAg,51939
26
26
  phoenix/db/pg_config.py,sha256=h6mB7qF7t4Zk6VGvAiyefHGVu74o-yJynaWzeE39k9Y,6001
27
27
  phoenix/db/insertion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  phoenix/db/insertion/constants.py,sha256=8wifm7X-1XvroZ__R2Gc96NsgLhTDn0zXl4lehlXtcA,70
29
- phoenix/db/insertion/dataset.py,sha256=I9OC1ouVx7m6BH_c8hvcxW1dWGRAtpvXee29yBTuFkg,7136
29
+ phoenix/db/insertion/dataset.py,sha256=KeUtfSnznmkDDlGs6KM5URduZtIo8I951tybamwoLsc,7216
30
30
  phoenix/db/insertion/document_annotation.py,sha256=46IHWgILlIIoCkzgEtZIubqfpgF9KVA8ETWeblcpff0,6544
31
31
  phoenix/db/insertion/evaluation.py,sha256=XIlDQMx9FFu_hO1TEao8_ScgKETw61AoeGezsmngXrY,6876
32
32
  phoenix/db/insertion/helpers.py,sha256=PAYKxm21OKe_cLsIo08KGJCqT9avjabWLmvD1CpteRs,3499
@@ -53,7 +53,7 @@ phoenix/db/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
53
53
  phoenix/db/types/annotation_configs.py,sha256=keiQ9mzLZWE8Eqsu1xFxQBXvBiym0s-yPzoL8qIR4PY,2904
54
54
  phoenix/db/types/db_models.py,sha256=nMSd9gWHwObnVO3_slztlHqoeh04czS-Jxu-omS6M6E,1135
55
55
  phoenix/db/types/identifier.py,sha256=Opr3_1di6e5ncrBDn30WfBSr-jN_VGBnkkA4BMuSoyc,244
56
- phoenix/db/types/model_provider.py,sha256=96UMeqiy5X9PmYMOWA6dZAmI_BSV3yVxt9HEVYGe5Ns,157
56
+ phoenix/db/types/model_provider.py,sha256=M5SKYtK176SxYhZ-c5gQSiTTuDk8VeAxqM8jrGyfGTo,183
57
57
  phoenix/db/types/trace_retention.py,sha256=UoLVX4efhv-mcF32zHpMX_hXWe8474cmhEyPmYqeMfI,9573
58
58
  phoenix/experiments/__init__.py,sha256=6JGwgUd7xCbGpuHqYZlsmErmYvVgv7N_j43bn3dUqsk,123
59
59
  phoenix/experiments/functions.py,sha256=6cSS_5O5V1EZ_5CIQ6lGOUwFyNNsADP7Uu__GmuOz4A,37983
@@ -158,11 +158,11 @@ phoenix/server/api/helpers/__init__.py,sha256=m2-xaSPqUiSs91k62JaRDjFNfl-1byxBfY
158
158
  phoenix/server/api/helpers/annotations.py,sha256=9gMXKpMTfWEChoSCnvdWYuyB0hlSnNOp-qUdar9Vono,262
159
159
  phoenix/server/api/helpers/dataset_helpers.py,sha256=DoMBTg-qXTnC_K4Evx1WKpCCYgRbITpVqyY-8efJRf0,8984
160
160
  phoenix/server/api/helpers/experiment_run_filters.py,sha256=DOnVwrmn39eAkk2mwuZP8kIcAnR5jrOgllEwWSjsw94,29893
161
- phoenix/server/api/helpers/playground_clients.py,sha256=-9lbPHTiYgRa1KdzdM1pRJvISvRRgEfhn0jdfoWUWHU,42014
161
+ phoenix/server/api/helpers/playground_clients.py,sha256=rZN7uBw6fnX8u22fA1qJWmC4Ka-s5EX_epfAK3L3mwM,43168
162
162
  phoenix/server/api/helpers/playground_registry.py,sha256=CPLMziFB2wmr-dfbx7VbzO2f8YIG_k5RftzvGXYGQ1w,2570
163
163
  phoenix/server/api/helpers/playground_spans.py,sha256=ObAhvV_yNwEQDkjzgU5G73wfIisc8q4cpB0OFH5cd24,16974
164
164
  phoenix/server/api/helpers/prompts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
- phoenix/server/api/helpers/prompts/models.py,sha256=6AAYRqmuDMNrqelK9v-bh1qkfKLB3iHmISj7W6Awzqw,18585
165
+ phoenix/server/api/helpers/prompts/models.py,sha256=vMLaeYvn54DNISbJgSu_LjcBvH0S9XMA13ZnWsbMHZ0,19331
166
166
  phoenix/server/api/helpers/prompts/conversions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
167
  phoenix/server/api/helpers/prompts/conversions/anthropic.py,sha256=ZT--UqBwoGf7QMusajB6aeB7zyWGttaZigb113kgiY8,3571
168
168
  phoenix/server/api/helpers/prompts/conversions/openai.py,sha256=a43WAftFn_me6ePHDufqvlg-4Z2C31owUSsqYC0YUP8,2589
@@ -232,7 +232,7 @@ phoenix/server/api/routers/utils.py,sha256=M41BoH-fl37izhRuN2aX7lWm7jOC20A_3uClv
232
232
  phoenix/server/api/routers/v1/__init__.py,sha256=0oOcsKJkQtBXAjZAo3AMtfjyW3OGCU4MI4TGW5nV6lo,2614
233
233
  phoenix/server/api/routers/v1/annotation_configs.py,sha256=rZ3yJm7m75BVegSjSHqsdqf7n26roGg7vYYiiKfWA3A,15898
234
234
  phoenix/server/api/routers/v1/annotations.py,sha256=oeafR2tCLu-uIwM9J72gN3MX5WDhrOMU3Jqd1uIiFqg,5921
235
- phoenix/server/api/routers/v1/datasets.py,sha256=Wqiy6ZKqn4BZSFyn93gzuhWx3mGn7kOkNncHzCWuBq8,37325
235
+ phoenix/server/api/routers/v1/datasets.py,sha256=Xh-M8bnCmjflmPcgv8dAG8Cek88sApuqQlvNBuSnrYc,37534
236
236
  phoenix/server/api/routers/v1/evaluations.py,sha256=GFTo42aIEX0Htn0EjjoE1JZDYlvryeZ_CK9kowhwzGw,12830
237
237
  phoenix/server/api/routers/v1/experiment_evaluations.py,sha256=xSs004jNYsOl3eg-6Zjo2tt9TefTd7WR3twWYrsNQNk,4828
238
238
  phoenix/server/api/routers/v1/experiment_runs.py,sha256=FreGzzprPpJ_DBHUkdUckca6EGCrnvgVpqk3CLT7wRc,7000
@@ -283,7 +283,7 @@ phoenix/server/api/types/ExperimentRunAnnotation.py,sha256=YGw5zIbjRXUK3zH475DnE
283
283
  phoenix/server/api/types/ExportedFile.py,sha256=e3GTn7B5LgsTbqiwjhMCQH7VsiqXitrBO4aCMS1lHsg,163
284
284
  phoenix/server/api/types/Functionality.py,sha256=zDDl2bANIqjwfooSOHg-VQk6-wQy05mREwjV_-VbSIg,262
285
285
  phoenix/server/api/types/GenerativeModel.py,sha256=P7eBUMXbeqaLwSSGBKdZy3a5gOLd9I0fuP8o1st6H08,193
286
- phoenix/server/api/types/GenerativeProvider.py,sha256=v5wXUbAJaQA4GL8xOgTjNOWV-x39p20zMC9MOvS8ruM,3941
286
+ phoenix/server/api/types/GenerativeProvider.py,sha256=IK6OTnjRPGmz5AgHcMjcbYnmyohvoqFr42lhE9kQbc0,4260
287
287
  phoenix/server/api/types/Identifier.py,sha256=n3rxpoKNCwEvZu7QY8yr7g3AW2mU-U62BxFXYaiHLKk,306
288
288
  phoenix/server/api/types/Inferences.py,sha256=wv88PjcK-KwnzmTdukiAX9EV2KX4GqsKXVAUm1JtnDA,3383
289
289
  phoenix/server/api/types/InferencesRole.py,sha256=mLfeHpyhGUVX1-tWzT9IwC_cD18BZrD3RA4YsHYuSpA,595
@@ -347,10 +347,10 @@ phoenix/server/static/apple-touch-icon-76x76.png,sha256=CT_xT12I0u2i0WU8JzBZBuOQ
347
347
  phoenix/server/static/apple-touch-icon.png,sha256=fOfpjqGpWYbJ0eAurKsyoZP1EAs6ZVooBJ_SGk2ZkDs,3801
348
348
  phoenix/server/static/favicon.ico,sha256=bY0vvCKRftemZfPShwZtE93DiiQdaYaozkPGwNFr6H8,34494
349
349
  phoenix/server/static/modernizr.js,sha256=mvK-XtkNqjOral-QvzoqsyOMECXIMu5BQwSVN_wcU9c,2564
350
- phoenix/server/static/.vite/manifest.json,sha256=uZhT5WYds65YqNtUyHWehErQIV4tFNEoiyZahFTFA4Y,2165
351
- phoenix/server/static/assets/components-BHJEWQsc.js,sha256=ekj4iMOzo2et9hLV5-gp70qytp--8V7mXpFWbQ-Ov1k,544202
352
- phoenix/server/static/assets/index-CAt4FOOX.js,sha256=R9LYPWBofyISq2QdzxT80OiIbsv99gncJ1XdqhrYrr8,60432
353
- phoenix/server/static/assets/pages-kpw8RDmo.js,sha256=NU__puRtkOse1X6iDEVq2_v-lWMOlTMcR6c8fkTZFes,1033323
350
+ phoenix/server/static/.vite/manifest.json,sha256=nusT1ZL6d9VYlA98soTaFzNOLUQcCwHV7LFJSD1itG4,2165
351
+ phoenix/server/static/assets/components-ClD3sHta.js,sha256=bpA1H7yxmHnfPpXom80A_7ZRTHI8dYRF1EmK5CIymIM,546485
352
+ phoenix/server/static/assets/index-CXawXHw0.js,sha256=ShQnyX324rK1NMlHg-XAEfRU42wpleJ4yApCdbvswI8,60432
353
+ phoenix/server/static/assets/pages-BFtNRfTL.js,sha256=-7Yl5uH2NZms_-g5unnOlOCgnFsIdDs-RprWj1lueSY,1033529
354
354
  phoenix/server/static/assets/vendor-DOUbLVp5.js,sha256=AN12odor8w2dKOG4LokzFITR1h52TP1qnBDQl1u67Dc,2744392
355
355
  phoenix/server/static/assets/vendor-WIZid84E.css,sha256=spZD2r7XL5GfLO13ln-IuXfnjAref8l6g_n_AvxxOlI,5517
356
356
  phoenix/server/static/assets/vendor-arizeai-DHqMQzfV.js,sha256=zaVJbapZYf9-reZp549G232mEi7MY7yZR2cBbchRISs,193248
@@ -363,7 +363,7 @@ phoenix/server/templates/index.html,sha256=NpJ83DULqcStXFbShNamX4_NPDtnnucuBxppv
363
363
  phoenix/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
364
364
  phoenix/session/client.py,sha256=uw5WlCuFcN_eEj7Ko2bhJVcaihEIp7Evy50KnL6Sq-k,35602
365
365
  phoenix/session/data_extractor.py,sha256=Y0RzYFaNy9fQj8PEIeQ76TBZ90_E1FW7bXu3K5x0EZY,2782
366
- phoenix/session/evaluation.py,sha256=Q3fOMNELvqkk-b6a6PKc8pDJdsNQ0ZbTpseUSA2NKqs,5300
366
+ phoenix/session/evaluation.py,sha256=tMElekWeLKOPHdLm1Pu_sXYWYaSU5rHAc7y8qi3jYhE,5359
367
367
  phoenix/session/session.py,sha256=twE8tld8knShmTpZp6R80CUt2jau3RmfdfZAQCLSTKU,27621
368
368
  phoenix/trace/__init__.py,sha256=ujk_uYjM8gmm-YqnyXxF-kekfwid0bcaPMTtNNcaw6U,407
369
369
  phoenix/trace/attributes.py,sha256=hyEKYZWPCP4NRmW7VmiC2voa3TH7FYKUBR9DYiVfXlw,12627
@@ -382,7 +382,7 @@ phoenix/trace/utils.py,sha256=nlOmbF4n57s6qwZsMoeyEdfPHl6KE0fZM8V9aHaIR-I,1681
382
382
  phoenix/trace/dsl/README.md,sha256=ihmP9zGUC5V-TDbzKla76LuyDqPDQIBUH2BORwxNI68,2902
383
383
  phoenix/trace/dsl/__init__.py,sha256=WIQIjJg362XD3s50OsPJJ0xbDsGp41bSv7vDllLrPuA,144
384
384
  phoenix/trace/dsl/filter.py,sha256=FYOzH1gkwlKBYepscZzwHeeXnJdTadC_m4v0cYRs00Y,31557
385
- phoenix/trace/dsl/helpers.py,sha256=pJESAz7sDNE7HTVCFzxIx5sEsyUSh7RIN7yqmndAaF8,4171
385
+ phoenix/trace/dsl/helpers.py,sha256=Hc0HRqvYWl71waee0vKLNwmszc2Q1ba4Q8svXxeEqJI,7708
386
386
  phoenix/trace/dsl/query.py,sha256=I7iDsJk1cwxYh0EUFXLu2DDqPU5WYxVa_ntVOe5v8s0,36350
387
387
  phoenix/trace/v1/__init__.py,sha256=-IbAD0ruESMjvQLvGAg9CTfjBUATFDx1OXseDPis6-0,88
388
388
  phoenix/trace/v1/evaluation_pb2.py,sha256=8sXvv2BW_vqD30MOMbmkeE2zpmm7ncik21kl3e-HzeQ,2254
@@ -397,9 +397,9 @@ phoenix/utilities/project.py,sha256=auVpARXkDb-JgeX5f2aStyFIkeKvGwN9l7qrFeJMVxI,
397
397
  phoenix/utilities/re.py,sha256=6YyUWIkv0zc2SigsxfOWIHzdpjKA_TZo2iqKq7zJKvw,2081
398
398
  phoenix/utilities/span_store.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
399
399
  phoenix/utilities/template_formatters.py,sha256=gh9PJD6WEGw7TEYXfSst1UR4pWWwmjxMLrDVQ_CkpkQ,2779
400
- arize_phoenix-10.1.0.dist-info/METADATA,sha256=LQdP2QH9SNHA7uH0XeEJq1Mkf3l3JG0s8qcg0WRTK1Q,25591
401
- arize_phoenix-10.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
402
- arize_phoenix-10.1.0.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
403
- arize_phoenix-10.1.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
404
- arize_phoenix-10.1.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
405
- arize_phoenix-10.1.0.dist-info/RECORD,,
400
+ arize_phoenix-10.2.0.dist-info/METADATA,sha256=j6w9SCpH9vxLqxyRuz81rKJpzNOGLUmg7X4uTGCGMKw,25592
401
+ arize_phoenix-10.2.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
402
+ arize_phoenix-10.2.0.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
403
+ arize_phoenix-10.2.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
404
+ arize_phoenix-10.2.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
405
+ arize_phoenix-10.2.0.dist-info/RECORD,,
@@ -35,6 +35,7 @@ Examples: TypeAlias = Iterable[ExampleContent]
35
35
  @dataclass(frozen=True)
36
36
  class DatasetExampleAdditionEvent(DataManipulationEvent):
37
37
  dataset_id: DatasetId
38
+ dataset_version_id: DatasetVersionId
38
39
 
39
40
 
40
41
  async def insert_dataset(
@@ -205,7 +206,7 @@ async def add_dataset_examples(
205
206
  f"{dataset_example_id=}"
206
207
  )
207
208
  raise
208
- return DatasetExampleAdditionEvent(dataset_id=dataset_id)
209
+ return DatasetExampleAdditionEvent(dataset_id=dataset_id, dataset_version_id=dataset_version_id)
209
210
 
210
211
 
211
212
  @dataclass(frozen=True)
@@ -6,3 +6,4 @@ class ModelProvider(Enum):
6
6
  AZURE_OPENAI = "AZURE_OPENAI"
7
7
  ANTHROPIC = "ANTHROPIC"
8
8
  GOOGLE = "GOOGLE"
9
+ DEEPSEEK = "DEEPSEEK"
@@ -453,6 +453,35 @@ class OpenAIBaseStreamingClient(PlaygroundStreamingClient):
453
453
  yield LLM_TOKEN_COUNT_TOTAL, usage.total_tokens
454
454
 
455
455
 
456
+ @register_llm_client(
457
+ provider_key=GenerativeProviderKey.DEEPSEEK,
458
+ model_names=[
459
+ PROVIDER_DEFAULT,
460
+ "deepseek-chat",
461
+ "deepseek-reasoner",
462
+ ],
463
+ )
464
+ class DeepSeekStreamingClient(OpenAIBaseStreamingClient):
465
+ def __init__(
466
+ self,
467
+ model: GenerativeModelInput,
468
+ api_key: Optional[str] = None,
469
+ ) -> None:
470
+ from openai import AsyncOpenAI
471
+
472
+ base_url = model.base_url or getenv("DEEPSEEK_BASE_URL")
473
+ if not (api_key := api_key or getenv("DEEPSEEK_API_KEY")):
474
+ if not base_url:
475
+ raise BadRequest("An API key is required for OpenAI models")
476
+ api_key = "sk-fake-api-key"
477
+ client = AsyncOpenAI(api_key=api_key, base_url=base_url or "https://api.deepseek.com")
478
+ super().__init__(client=client, model=model, api_key=api_key)
479
+ # DeepSeek uses OpenAI-compatible API but we'll track it as a separate provider
480
+ # Adding a custom "deepseek" provider value to make it distinguishable in traces
481
+ self._attributes[LLM_PROVIDER] = "deepseek"
482
+ self._attributes[LLM_SYSTEM] = OpenInferenceLLMSystemValues.OPENAI.value
483
+
484
+
456
485
  @register_llm_client(
457
486
  provider_key=GenerativeProviderKey.OPENAI,
458
487
  model_names=[
@@ -332,11 +332,20 @@ class PromptAzureOpenAIInvocationParametersContent(PromptOpenAIInvocationParamet
332
332
  pass
333
333
 
334
334
 
335
+ class PromptDeepSeekInvocationParametersContent(PromptOpenAIInvocationParametersContent):
336
+ pass
337
+
338
+
335
339
  class PromptAzureOpenAIInvocationParameters(DBBaseModel):
336
340
  type: Literal["azure_openai"]
337
341
  azure_openai: PromptAzureOpenAIInvocationParametersContent
338
342
 
339
343
 
344
+ class PromptDeepSeekInvocationParameters(DBBaseModel):
345
+ type: Literal["deepseek"]
346
+ deepseek: PromptDeepSeekInvocationParametersContent
347
+
348
+
340
349
  class PromptAnthropicThinkingConfigDisabled(DBBaseModel):
341
350
  type: Literal["disabled"]
342
351
 
@@ -391,6 +400,7 @@ PromptInvocationParameters: TypeAlias = Annotated[
391
400
  PromptAzureOpenAIInvocationParameters,
392
401
  PromptAnthropicInvocationParameters,
393
402
  PromptGoogleInvocationParameters,
403
+ PromptDeepSeekInvocationParameters,
394
404
  ],
395
405
  Field(..., discriminator="type"),
396
406
  ]
@@ -407,6 +417,8 @@ def get_raw_invocation_parameters(
407
417
  return invocation_parameters.anthropic.model_dump()
408
418
  if isinstance(invocation_parameters, PromptGoogleInvocationParameters):
409
419
  return invocation_parameters.google.model_dump()
420
+ if isinstance(invocation_parameters, PromptDeepSeekInvocationParameters):
421
+ return invocation_parameters.deepseek.model_dump()
410
422
  assert_never(invocation_parameters)
411
423
 
412
424
 
@@ -420,6 +432,7 @@ def is_prompt_invocation_parameters(
420
432
  PromptAzureOpenAIInvocationParameters,
421
433
  PromptAnthropicInvocationParameters,
422
434
  PromptGoogleInvocationParameters,
435
+ PromptDeepSeekInvocationParameters,
423
436
  ),
424
437
  )
425
438
 
@@ -444,6 +457,13 @@ def validate_invocation_parameters(
444
457
  invocation_parameters
445
458
  ),
446
459
  )
460
+ elif model_provider is ModelProvider.DEEPSEEK:
461
+ return PromptDeepSeekInvocationParameters(
462
+ type="deepseek",
463
+ deepseek=PromptDeepSeekInvocationParametersContent.model_validate(
464
+ invocation_parameters
465
+ ),
466
+ )
447
467
  elif model_provider is ModelProvider.ANTHROPIC:
448
468
  return PromptAnthropicInvocationParameters(
449
469
  type="anthropic",
@@ -312,6 +312,7 @@ async def list_dataset_versions(
312
312
 
313
313
  class UploadDatasetData(V1RoutesBaseModel):
314
314
  dataset_id: str
315
+ version_id: str
315
316
 
316
317
 
317
318
  class UploadDatasetResponseBody(ResponseBody[UploadDatasetData]):
@@ -468,10 +469,15 @@ async def upload_dataset(
468
469
  )
469
470
  if sync:
470
471
  async with request.app.state.db() as session:
471
- dataset_id = (await operation(session)).dataset_id
472
+ event = await operation(session)
473
+ dataset_id = event.dataset_id
474
+ version_id = event.dataset_version_id
472
475
  request.state.event_queue.put(DatasetInsertEvent((dataset_id,)))
473
476
  return UploadDatasetResponseBody(
474
- data=UploadDatasetData(dataset_id=str(GlobalID(Dataset.__name__, str(dataset_id))))
477
+ data=UploadDatasetData(
478
+ dataset_id=str(GlobalID(Dataset.__name__, str(dataset_id))),
479
+ version_id=str(GlobalID(DatasetVersion.__name__, str(version_id))),
480
+ )
475
481
  )
476
482
  try:
477
483
  request.state.enqueue_operation(operation)
@@ -14,6 +14,7 @@ class GenerativeProviderKey(Enum):
14
14
  ANTHROPIC = "Anthropic"
15
15
  AZURE_OPENAI = "Azure OpenAI"
16
16
  GOOGLE = "Google AI Studio"
17
+ DEEPSEEK = "DeepSeek"
17
18
 
18
19
 
19
20
  @strawberry.type
@@ -26,6 +27,7 @@ class GenerativeProvider:
26
27
  GenerativeProviderKey.ANTHROPIC: ["claude"],
27
28
  GenerativeProviderKey.OPENAI: ["gpt", "o1"],
28
29
  GenerativeProviderKey.GOOGLE: ["gemini"],
30
+ GenerativeProviderKey.DEEPSEEK: ["deepseek"],
29
31
  }
30
32
 
31
33
  attribute_provider_to_generative_provider_map: ClassVar[dict[str, GenerativeProviderKey]] = {
@@ -33,6 +35,8 @@ class GenerativeProvider:
33
35
  OpenInferenceLLMProviderValues.ANTHROPIC.value: GenerativeProviderKey.ANTHROPIC,
34
36
  OpenInferenceLLMProviderValues.AZURE.value: GenerativeProviderKey.AZURE_OPENAI,
35
37
  OpenInferenceLLMProviderValues.GOOGLE.value: GenerativeProviderKey.GOOGLE,
38
+ # Note: DeepSeek uses OpenAI compatibility but we can't duplicate the key in the dict
39
+ # The provider will be determined through model name prefix matching instead
36
40
  }
37
41
 
38
42
  model_provider_to_api_key_env_var_map: ClassVar[dict[GenerativeProviderKey, str]] = {
@@ -40,6 +44,7 @@ class GenerativeProvider:
40
44
  GenerativeProviderKey.ANTHROPIC: "ANTHROPIC_API_KEY",
41
45
  GenerativeProviderKey.OPENAI: "OPENAI_API_KEY",
42
46
  GenerativeProviderKey.GOOGLE: "GEMINI_API_KEY",
47
+ GenerativeProviderKey.DEEPSEEK: "DEEPSEEK_API_KEY",
43
48
  }
44
49
 
45
50
  @strawberry.field
@@ -1,22 +1,22 @@
1
1
  {
2
- "_components-BHJEWQsc.js": {
3
- "file": "assets/components-BHJEWQsc.js",
2
+ "_components-ClD3sHta.js": {
3
+ "file": "assets/components-ClD3sHta.js",
4
4
  "name": "components",
5
5
  "imports": [
6
6
  "_vendor-DOUbLVp5.js",
7
- "_pages-kpw8RDmo.js",
7
+ "_pages-BFtNRfTL.js",
8
8
  "_vendor-arizeai-DHqMQzfV.js",
9
9
  "_vendor-codemirror-DWdZV1Is.js",
10
10
  "_vendor-three-C5WAXd5r.js"
11
11
  ]
12
12
  },
13
- "_pages-kpw8RDmo.js": {
14
- "file": "assets/pages-kpw8RDmo.js",
13
+ "_pages-BFtNRfTL.js": {
14
+ "file": "assets/pages-BFtNRfTL.js",
15
15
  "name": "pages",
16
16
  "imports": [
17
17
  "_vendor-DOUbLVp5.js",
18
18
  "_vendor-arizeai-DHqMQzfV.js",
19
- "_components-BHJEWQsc.js",
19
+ "_components-ClD3sHta.js",
20
20
  "_vendor-codemirror-DWdZV1Is.js",
21
21
  "_vendor-recharts-BfHdRd1Y.js"
22
22
  ]
@@ -69,15 +69,15 @@
69
69
  "name": "vendor-three"
70
70
  },
71
71
  "index.tsx": {
72
- "file": "assets/index-CAt4FOOX.js",
72
+ "file": "assets/index-CXawXHw0.js",
73
73
  "name": "index",
74
74
  "src": "index.tsx",
75
75
  "isEntry": true,
76
76
  "imports": [
77
77
  "_vendor-DOUbLVp5.js",
78
78
  "_vendor-arizeai-DHqMQzfV.js",
79
- "_pages-kpw8RDmo.js",
80
- "_components-BHJEWQsc.js",
79
+ "_pages-BFtNRfTL.js",
80
+ "_components-ClD3sHta.js",
81
81
  "_vendor-three-C5WAXd5r.js",
82
82
  "_vendor-codemirror-DWdZV1Is.js",
83
83
  "_vendor-shiki-CHu75YVL.js",