studyfetch-sdk 0.1.0a18__py3-none-any.whl → 0.1.0a20__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.
Files changed (78) hide show
  1. studyfetch_sdk/_models.py +24 -3
  2. studyfetch_sdk/_version.py +1 -1
  3. studyfetch_sdk/resources/v1/__init__.py +0 -84
  4. studyfetch_sdk/resources/v1/assignment_grader.py +81 -1
  5. studyfetch_sdk/resources/v1/components.py +36 -4
  6. studyfetch_sdk/resources/v1/materials/materials.py +130 -2
  7. studyfetch_sdk/resources/v1/materials/upload.py +286 -0
  8. studyfetch_sdk/resources/v1/usage/analyst.py +143 -15
  9. studyfetch_sdk/resources/v1/v1.py +66 -192
  10. studyfetch_sdk/types/v1/__init__.py +2 -20
  11. studyfetch_sdk/types/v1/assignment_grader_response.py +20 -1
  12. studyfetch_sdk/types/v1/component.py +9 -1
  13. studyfetch_sdk/types/v1/component_create_params.py +81 -1
  14. studyfetch_sdk/types/v1/component_generate_embed_params.py +7 -1
  15. studyfetch_sdk/types/v1/component_list_params.py +9 -1
  16. studyfetch_sdk/types/v1/content_param.py +23 -0
  17. studyfetch_sdk/types/v1/material_create_and_process_params.py +27 -0
  18. studyfetch_sdk/types/v1/material_create_params.py +4 -17
  19. studyfetch_sdk/types/v1/materials/__init__.py +2 -0
  20. studyfetch_sdk/types/v1/materials/upload_create_presigned_url_params.py +3 -0
  21. studyfetch_sdk/types/v1/materials/upload_upload_file_and_process_params.py +29 -0
  22. studyfetch_sdk/types/v1/materials/upload_upload_file_params.py +3 -0
  23. studyfetch_sdk/types/v1/materials/upload_upload_url_and_process_params.py +26 -0
  24. studyfetch_sdk/types/v1/usage/__init__.py +3 -0
  25. studyfetch_sdk/types/v1/usage/analyst_get_test_questions_params.py +18 -0
  26. studyfetch_sdk/types/v1/usage/analyst_list_chat_messages_params.py +18 -0
  27. studyfetch_sdk/types/v1/usage/analyst_list_chat_messages_response.py +35 -0
  28. studyfetch_sdk/types/v1/usage/analyst_list_events_params.py +7 -0
  29. {studyfetch_sdk-0.1.0a18.dist-info → studyfetch_sdk-0.1.0a20.dist-info}/METADATA +1 -1
  30. {studyfetch_sdk-0.1.0a18.dist-info → studyfetch_sdk-0.1.0a20.dist-info}/RECORD +32 -71
  31. studyfetch_sdk/resources/v1/audio_recaps/__init__.py +0 -33
  32. studyfetch_sdk/resources/v1/audio_recaps/audio_recaps.py +0 -328
  33. studyfetch_sdk/resources/v1/audio_recaps/sections.py +0 -250
  34. studyfetch_sdk/resources/v1/chat/__init__.py +0 -47
  35. studyfetch_sdk/resources/v1/chat/chat.py +0 -574
  36. studyfetch_sdk/resources/v1/chat/sessions.py +0 -222
  37. studyfetch_sdk/resources/v1/chat/test.py +0 -190
  38. studyfetch_sdk/resources/v1/explainers.py +0 -441
  39. studyfetch_sdk/resources/v1/flashcards.py +0 -783
  40. studyfetch_sdk/resources/v1/scenarios/__init__.py +0 -61
  41. studyfetch_sdk/resources/v1/scenarios/component.py +0 -426
  42. studyfetch_sdk/resources/v1/scenarios/scenarios.py +0 -936
  43. studyfetch_sdk/resources/v1/scenarios/sessions.py +0 -236
  44. studyfetch_sdk/resources/v1/scenarios/submissions/__init__.py +0 -33
  45. studyfetch_sdk/resources/v1/scenarios/submissions/submissions.py +0 -102
  46. studyfetch_sdk/resources/v1/scenarios/submissions/user.py +0 -210
  47. studyfetch_sdk/resources/v1/tests/__init__.py +0 -33
  48. studyfetch_sdk/resources/v1/tests/component.py +0 -160
  49. studyfetch_sdk/resources/v1/tests/tests.py +0 -682
  50. studyfetch_sdk/types/v1/audio_recaps/__init__.py +0 -3
  51. studyfetch_sdk/types/v1/chat/__init__.py +0 -5
  52. studyfetch_sdk/types/v1/chat/session_retrieve_params.py +0 -11
  53. studyfetch_sdk/types/v1/chat_get_session_params.py +0 -13
  54. studyfetch_sdk/types/v1/chat_send_message_params.py +0 -54
  55. studyfetch_sdk/types/v1/chat_stream_params.py +0 -28
  56. studyfetch_sdk/types/v1/explainer_create_params.py +0 -45
  57. studyfetch_sdk/types/v1/explainer_handle_webhook_params.py +0 -53
  58. studyfetch_sdk/types/v1/flashcard_batch_process_params.py +0 -36
  59. studyfetch_sdk/types/v1/flashcard_batch_process_response.py +0 -39
  60. studyfetch_sdk/types/v1/flashcard_get_algorithm_response.py +0 -37
  61. studyfetch_sdk/types/v1/flashcard_get_all_params.py +0 -23
  62. studyfetch_sdk/types/v1/flashcard_get_due_params.py +0 -19
  63. studyfetch_sdk/types/v1/flashcard_get_stats_params.py +0 -17
  64. studyfetch_sdk/types/v1/flashcard_get_types_response.py +0 -14
  65. studyfetch_sdk/types/v1/flashcard_rate_params.py +0 -23
  66. studyfetch_sdk/types/v1/scenario_create_params.py +0 -48
  67. studyfetch_sdk/types/v1/scenario_submit_answer_params.py +0 -18
  68. studyfetch_sdk/types/v1/scenario_update_params.py +0 -45
  69. studyfetch_sdk/types/v1/scenarios/__init__.py +0 -5
  70. studyfetch_sdk/types/v1/scenarios/component_update_params.py +0 -45
  71. studyfetch_sdk/types/v1/scenarios/submissions/__init__.py +0 -3
  72. studyfetch_sdk/types/v1/test_create_params.py +0 -20
  73. studyfetch_sdk/types/v1/test_retake_params.py +0 -14
  74. studyfetch_sdk/types/v1/test_submit_answer_params.py +0 -20
  75. studyfetch_sdk/types/v1/test_submit_params.py +0 -14
  76. studyfetch_sdk/types/v1/tests/__init__.py +0 -3
  77. {studyfetch_sdk-0.1.0a18.dist-info → studyfetch_sdk-0.1.0a20.dist-info}/WHEEL +0 -0
  78. {studyfetch_sdk-0.1.0a18.dist-info → studyfetch_sdk-0.1.0a20.dist-info}/licenses/LICENSE +0 -0
@@ -4,52 +4,34 @@ from __future__ import annotations
4
4
 
5
5
  from .material import Material as Material
6
6
  from .component import Component as Component
7
- from .chat_stream_params import ChatStreamParams as ChatStreamParams
7
+ from .content_param import ContentParam as ContentParam
8
8
  from .folder_list_params import FolderListParams as FolderListParams
9
- from .test_create_params import TestCreateParams as TestCreateParams
10
- from .test_retake_params import TestRetakeParams as TestRetakeParams
11
- from .test_submit_params import TestSubmitParams as TestSubmitParams
12
9
  from .embed_verify_params import EmbedVerifyParams as EmbedVerifyParams
13
10
  from .folder_create_params import FolderCreateParams as FolderCreateParams
14
11
  from .folder_update_params import FolderUpdateParams as FolderUpdateParams
15
12
  from .material_list_params import MaterialListParams as MaterialListParams
16
13
  from .material_move_params import MaterialMoveParams as MaterialMoveParams
17
14
  from .component_list_params import ComponentListParams as ComponentListParams
18
- from .flashcard_rate_params import FlashcardRateParams as FlashcardRateParams
19
15
  from .embed_get_theme_params import EmbedGetThemeParams as EmbedGetThemeParams
20
16
  from .material_create_params import MaterialCreateParams as MaterialCreateParams
21
17
  from .material_list_response import MaterialListResponse as MaterialListResponse
22
18
  from .material_rename_params import MaterialRenameParams as MaterialRenameParams
23
19
  from .material_search_params import MaterialSearchParams as MaterialSearchParams
24
- from .scenario_create_params import ScenarioCreateParams as ScenarioCreateParams
25
- from .scenario_update_params import ScenarioUpdateParams as ScenarioUpdateParams
26
20
  from .usage_get_stats_params import UsageGetStatsParams as UsageGetStatsParams
27
- from .chat_get_session_params import ChatGetSessionParams as ChatGetSessionParams
28
21
  from .component_create_params import ComponentCreateParams as ComponentCreateParams
29
22
  from .component_list_response import ComponentListResponse as ComponentListResponse
30
23
  from .component_update_params import ComponentUpdateParams as ComponentUpdateParams
31
- from .explainer_create_params import ExplainerCreateParams as ExplainerCreateParams
32
24
  from .material_debug_response import MaterialDebugResponse as MaterialDebugResponse
33
- from .chat_send_message_params import ChatSendMessageParams as ChatSendMessageParams
34
- from .flashcard_get_all_params import FlashcardGetAllParams as FlashcardGetAllParams
35
- from .flashcard_get_due_params import FlashcardGetDueParams as FlashcardGetDueParams
36
25
  from .material_search_response import MaterialSearchResponse as MaterialSearchResponse
37
26
  from .usage_get_summary_params import UsageGetSummaryParams as UsageGetSummaryParams
38
27
  from .usage_list_events_params import UsageListEventsParams as UsageListEventsParams
39
- from .test_submit_answer_params import TestSubmitAnswerParams as TestSubmitAnswerParams
40
28
  from .assignment_grader_response import AssignmentGraderResponse as AssignmentGraderResponse
41
- from .flashcard_get_stats_params import FlashcardGetStatsParams as FlashcardGetStatsParams
42
- from .flashcard_get_types_response import FlashcardGetTypesResponse as FlashcardGetTypesResponse
43
29
  from .material_batch_create_params import MaterialBatchCreateParams as MaterialBatchCreateParams
44
- from .scenario_submit_answer_params import ScenarioSubmitAnswerParams as ScenarioSubmitAnswerParams
45
- from .flashcard_batch_process_params import FlashcardBatchProcessParams as FlashcardBatchProcessParams
46
30
  from .material_batch_create_response import MaterialBatchCreateResponse as MaterialBatchCreateResponse
47
31
  from .assignment_grader_create_params import AssignmentGraderCreateParams as AssignmentGraderCreateParams
48
32
  from .component_generate_embed_params import ComponentGenerateEmbedParams as ComponentGenerateEmbedParams
49
- from .explainer_handle_webhook_params import ExplainerHandleWebhookParams as ExplainerHandleWebhookParams
50
- from .flashcard_batch_process_response import FlashcardBatchProcessResponse as FlashcardBatchProcessResponse
51
- from .flashcard_get_algorithm_response import FlashcardGetAlgorithmResponse as FlashcardGetAlgorithmResponse
52
33
  from .material_get_download_url_params import MaterialGetDownloadURLParams as MaterialGetDownloadURLParams
53
34
  from .component_generate_embed_response import ComponentGenerateEmbedResponse as ComponentGenerateEmbedResponse
54
35
  from .assignment_grader_get_all_response import AssignmentGraderGetAllResponse as AssignmentGraderGetAllResponse
36
+ from .material_create_and_process_params import MaterialCreateAndProcessParams as MaterialCreateAndProcessParams
55
37
  from .material_get_download_url_response import MaterialGetDownloadURLResponse as MaterialGetDownloadURLResponse
@@ -1,5 +1,6 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
+ from typing import Optional
3
4
  from datetime import datetime
4
5
 
5
6
  from pydantic import Field as FieldInfo
@@ -10,7 +11,10 @@ __all__ = ["AssignmentGraderResponse"]
10
11
 
11
12
 
12
13
  class AssignmentGraderResponse(BaseModel):
13
- id: str
14
+ api_v: float = FieldInfo(alias="__v")
15
+ """Version key"""
16
+
17
+ api_id: str = FieldInfo(alias="_id")
14
18
  """Assignment grader ID"""
15
19
 
16
20
  created_at: datetime = FieldInfo(alias="createdAt")
@@ -19,8 +23,23 @@ class AssignmentGraderResponse(BaseModel):
19
23
  grade: float
20
24
  """Overall grade percentage"""
21
25
 
26
+ organization_id: str = FieldInfo(alias="organizationId")
27
+ """Organization ID"""
28
+
22
29
  rubric: object
23
30
  """Grading results"""
24
31
 
25
32
  title: str
26
33
  """Assignment title"""
34
+
35
+ updated_at: datetime = FieldInfo(alias="updatedAt")
36
+ """Update timestamp"""
37
+
38
+ material_id: Optional[str] = FieldInfo(alias="materialId", default=None)
39
+ """Material ID"""
40
+
41
+ text_to_grade: Optional[str] = FieldInfo(alias="textToGrade", default=None)
42
+ """Text that was graded"""
43
+
44
+ user_id: Optional[str] = FieldInfo(alias="userId", default=None)
45
+ """User ID"""
@@ -34,7 +34,15 @@ class Component(BaseModel):
34
34
  """Component status"""
35
35
 
36
36
  type: Literal[
37
- "chat", "flashcards", "scenarios", "practice_test", "audio_recap", "tutor_me", "explainers", "uploads"
37
+ "chat",
38
+ "data_analyst",
39
+ "flashcards",
40
+ "scenarios",
41
+ "practice_test",
42
+ "audio_recap",
43
+ "tutor_me",
44
+ "explainers",
45
+ "uploads",
38
46
  ]
39
47
  """Component type"""
40
48
 
@@ -11,6 +11,8 @@ __all__ = [
11
11
  "ComponentCreateParams",
12
12
  "Config",
13
13
  "ConfigChatConfigDto",
14
+ "ConfigChatConfigDtoGuardrailRule",
15
+ "ConfigDataAnalystConfigDto",
14
16
  "ConfigFlashcardsConfigDto",
15
17
  "ConfigScenariosConfigDto",
16
18
  "ConfigScenariosConfigDtoCharacter",
@@ -32,7 +34,17 @@ class ComponentCreateParams(TypedDict, total=False):
32
34
  """Name of the component"""
33
35
 
34
36
  type: Required[
35
- Literal["chat", "flashcards", "scenarios", "practice_test", "audio_recap", "tutor_me", "explainers", "uploads"]
37
+ Literal[
38
+ "chat",
39
+ "data_analyst",
40
+ "flashcards",
41
+ "scenarios",
42
+ "practice_test",
43
+ "audio_recap",
44
+ "tutor_me",
45
+ "explainers",
46
+ "uploads",
47
+ ]
36
48
  ]
37
49
  """Type of component to create"""
38
50
 
@@ -43,6 +55,23 @@ class ComponentCreateParams(TypedDict, total=False):
43
55
  """Additional metadata"""
44
56
 
45
57
 
58
+ class ConfigChatConfigDtoGuardrailRule(TypedDict, total=False):
59
+ id: Required[str]
60
+ """Unique identifier for the rule"""
61
+
62
+ action: Required[Literal["block", "warn", "modify"]]
63
+ """Action to take when rule is triggered"""
64
+
65
+ condition: Required[str]
66
+ """Condition to check"""
67
+
68
+ description: Required[str]
69
+ """Description of the rule"""
70
+
71
+ message: str
72
+ """Message to show when rule is triggered"""
73
+
74
+
46
75
  class ConfigChatConfigDto(TypedDict, total=False):
47
76
  model: Required[str]
48
77
  """AI model to use"""
@@ -53,6 +82,9 @@ class ConfigChatConfigDto(TypedDict, total=False):
53
82
  enable_follow_ups: Annotated[bool, PropertyInfo(alias="enableFollowUps")]
54
83
  """Enable follow-up questions"""
55
84
 
85
+ enable_guardrails: Annotated[bool, PropertyInfo(alias="enableGuardrails")]
86
+ """Enable guardrails for content moderation"""
87
+
56
88
  enable_history: Annotated[bool, PropertyInfo(alias="enableHistory")]
57
89
  """Enable conversation history"""
58
90
 
@@ -68,6 +100,9 @@ class ConfigChatConfigDto(TypedDict, total=False):
68
100
  folders: List[str]
69
101
  """Folder IDs"""
70
102
 
103
+ guardrail_rules: Annotated[Iterable[ConfigChatConfigDtoGuardrailRule], PropertyInfo(alias="guardrailRules")]
104
+ """Guardrail rules for content moderation"""
105
+
71
106
  materials: List[str]
72
107
  """Material IDs"""
73
108
 
@@ -84,6 +119,50 @@ class ConfigChatConfigDto(TypedDict, total=False):
84
119
  """Temperature for response generation"""
85
120
 
86
121
 
122
+ class ConfigDataAnalystConfigDto(TypedDict, total=False):
123
+ model: Required[str]
124
+ """AI model to use"""
125
+
126
+ enable_component_creation: Annotated[bool, PropertyInfo(alias="enableComponentCreation")]
127
+ """Enable component creation"""
128
+
129
+ enable_follow_ups: Annotated[bool, PropertyInfo(alias="enableFollowUps")]
130
+ """Enable follow-up questions"""
131
+
132
+ enable_history: Annotated[bool, PropertyInfo(alias="enableHistory")]
133
+ """Enable conversation history"""
134
+
135
+ enable_rag_search: Annotated[bool, PropertyInfo(alias="enableRAGSearch")]
136
+ """Enable RAG search"""
137
+
138
+ enable_voice: Annotated[bool, PropertyInfo(alias="enableVoice")]
139
+ """Enable voice interactions"""
140
+
141
+ enable_web_search: Annotated[bool, PropertyInfo(alias="enableWebSearch")]
142
+ """Enable web search"""
143
+
144
+ folders: List[str]
145
+ """Folder IDs"""
146
+
147
+ group_ids: Annotated[List[str], PropertyInfo(alias="groupIds")]
148
+ """Group IDs to filter data"""
149
+
150
+ materials: List[str]
151
+ """Material IDs"""
152
+
153
+ max_steps: Annotated[float, PropertyInfo(alias="maxSteps")]
154
+ """Maximum steps for multi-step tool calls"""
155
+
156
+ max_tokens: Annotated[float, PropertyInfo(alias="maxTokens")]
157
+ """Maximum tokens for response"""
158
+
159
+ system_prompt: Annotated[str, PropertyInfo(alias="systemPrompt")]
160
+ """System prompt for the data analyst"""
161
+
162
+ temperature: float
163
+ """Temperature for response generation"""
164
+
165
+
87
166
  class ConfigFlashcardsConfigDto(TypedDict, total=False):
88
167
  card_types: Annotated[List[str], PropertyInfo(alias="cardTypes")]
89
168
  """Types of flashcards"""
@@ -359,6 +438,7 @@ class ConfigTutorMeConfigDto(TypedDict, total=False):
359
438
 
360
439
  Config: TypeAlias = Union[
361
440
  ConfigChatConfigDto,
441
+ ConfigDataAnalystConfigDto,
362
442
  ConfigFlashcardsConfigDto,
363
443
  ConfigScenariosConfigDto,
364
444
  ConfigPracticeTestConfigDto,
@@ -3,7 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from typing import List
6
- from typing_extensions import Annotated, TypedDict
6
+ from typing_extensions import Required, Annotated, TypedDict
7
7
 
8
8
  from ..._utils import PropertyInfo
9
9
 
@@ -37,12 +37,18 @@ class ComponentGenerateEmbedParams(TypedDict, total=False):
37
37
 
38
38
 
39
39
  class Features(TypedDict, total=False):
40
+ enable_bad_words_filter: Required[Annotated[bool, PropertyInfo(alias="enableBadWordsFilter")]]
41
+ """Enable bad words filter"""
42
+
40
43
  enable_component_creation: Annotated[bool, PropertyInfo(alias="enableComponentCreation")]
41
44
  """Enable component creation"""
42
45
 
43
46
  enable_follow_ups: Annotated[bool, PropertyInfo(alias="enableFollowUps")]
44
47
  """Enable follow-up questions"""
45
48
 
49
+ enable_guardrails: Annotated[bool, PropertyInfo(alias="enableGuardrails")]
50
+ """Enable guardrails"""
51
+
46
52
  enable_history: Annotated[bool, PropertyInfo(alias="enableHistory")]
47
53
  """Enable history"""
48
54
 
@@ -9,6 +9,14 @@ __all__ = ["ComponentListParams"]
9
9
 
10
10
  class ComponentListParams(TypedDict, total=False):
11
11
  type: Literal[
12
- "chat", "flashcards", "scenarios", "practice_test", "audio_recap", "tutor_me", "explainers", "uploads"
12
+ "chat",
13
+ "data_analyst",
14
+ "flashcards",
15
+ "scenarios",
16
+ "practice_test",
17
+ "audio_recap",
18
+ "tutor_me",
19
+ "explainers",
20
+ "uploads",
13
21
  ]
14
22
  """Filter by component type"""
@@ -0,0 +1,23 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Literal, Required, Annotated, TypedDict
6
+
7
+ from ..._utils import PropertyInfo
8
+
9
+ __all__ = ["ContentParam"]
10
+
11
+
12
+ class ContentParam(TypedDict, total=False):
13
+ type: Required[Literal["text", "pdf", "video", "audio", "url"]]
14
+ """Type of content"""
15
+
16
+ source_url: Annotated[str, PropertyInfo(alias="sourceUrl")]
17
+ """URL to fetch content from"""
18
+
19
+ text: str
20
+ """Text content (for text type)"""
21
+
22
+ url: str
23
+ """URL to the content (for url type)"""
@@ -0,0 +1,27 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, Annotated, TypedDict
6
+
7
+ from ..._utils import PropertyInfo
8
+ from .content_param import ContentParam
9
+
10
+ __all__ = ["MaterialCreateAndProcessParams"]
11
+
12
+
13
+ class MaterialCreateAndProcessParams(TypedDict, total=False):
14
+ content: Required[ContentParam]
15
+ """Content details"""
16
+
17
+ name: Required[str]
18
+ """Name of the material"""
19
+
20
+ folder_id: Annotated[str, PropertyInfo(alias="folderId")]
21
+ """Folder ID to place the material in"""
22
+
23
+ poll_interval_ms: Annotated[float, PropertyInfo(alias="pollIntervalMs")]
24
+ """Polling interval in milliseconds (default: 2 seconds)"""
25
+
26
+ timeout_ms: Annotated[float, PropertyInfo(alias="timeoutMs")]
27
+ """Maximum time to wait for processing in milliseconds (default: 5 minutes)"""
@@ -2,15 +2,16 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing_extensions import Literal, Required, Annotated, TypedDict
5
+ from typing_extensions import Required, Annotated, TypedDict
6
6
 
7
7
  from ..._utils import PropertyInfo
8
+ from .content_param import ContentParam
8
9
 
9
- __all__ = ["MaterialCreateParams", "Content"]
10
+ __all__ = ["MaterialCreateParams"]
10
11
 
11
12
 
12
13
  class MaterialCreateParams(TypedDict, total=False):
13
- content: Required[Content]
14
+ content: Required[ContentParam]
14
15
  """Content details"""
15
16
 
16
17
  name: Required[str]
@@ -18,17 +19,3 @@ class MaterialCreateParams(TypedDict, total=False):
18
19
 
19
20
  folder_id: Annotated[str, PropertyInfo(alias="folderId")]
20
21
  """Folder ID to place the material in"""
21
-
22
-
23
- class Content(TypedDict, total=False):
24
- type: Required[Literal["text", "pdf", "video", "audio", "url"]]
25
- """Type of content"""
26
-
27
- source_url: Annotated[str, PropertyInfo(alias="sourceUrl")]
28
- """URL to fetch content from"""
29
-
30
- text: str
31
- """Text content (for text type)"""
32
-
33
- url: str
34
- """URL to the content (for url type)"""
@@ -13,3 +13,5 @@ from .upload_complete_upload_params import UploadCompleteUploadParams as UploadC
13
13
  from .upload_upload_from_url_params import UploadUploadFromURLParams as UploadUploadFromURLParams
14
14
  from .upload_create_presigned_url_params import UploadCreatePresignedURLParams as UploadCreatePresignedURLParams
15
15
  from .upload_create_presigned_url_response import UploadCreatePresignedURLResponse as UploadCreatePresignedURLResponse
16
+ from .upload_upload_url_and_process_params import UploadUploadURLAndProcessParams as UploadUploadURLAndProcessParams
17
+ from .upload_upload_file_and_process_params import UploadUploadFileAndProcessParams as UploadUploadFileAndProcessParams
@@ -19,5 +19,8 @@ class UploadCreatePresignedURLParams(TypedDict, total=False):
19
19
  name: Required[str]
20
20
  """Display name for the material"""
21
21
 
22
+ extract_images: Annotated[bool, PropertyInfo(alias="extractImages")]
23
+ """Whether to extract images from files"""
24
+
22
25
  folder_id: Annotated[str, PropertyInfo(alias="folderId")]
23
26
  """Folder ID to place the material in"""
@@ -0,0 +1,29 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, Annotated, TypedDict
6
+
7
+ from ...._types import FileTypes
8
+ from ...._utils import PropertyInfo
9
+
10
+ __all__ = ["UploadUploadFileAndProcessParams"]
11
+
12
+
13
+ class UploadUploadFileAndProcessParams(TypedDict, total=False):
14
+ file: Required[FileTypes]
15
+
16
+ name: Required[str]
17
+ """Material name"""
18
+
19
+ extract_images: Annotated[str, PropertyInfo(alias="extractImages")]
20
+ """Whether to extract images from files (true/false, default: true)"""
21
+
22
+ folder_id: Annotated[str, PropertyInfo(alias="folderId")]
23
+ """Folder ID (optional)"""
24
+
25
+ poll_interval_ms: Annotated[float, PropertyInfo(alias="pollIntervalMs")]
26
+ """Polling interval in milliseconds (default: 2000)"""
27
+
28
+ timeout_ms: Annotated[float, PropertyInfo(alias="timeoutMs")]
29
+ """Processing timeout in milliseconds (default: 300000)"""
@@ -16,5 +16,8 @@ class UploadUploadFileParams(TypedDict, total=False):
16
16
  name: Required[str]
17
17
  """Material name"""
18
18
 
19
+ extract_images: Annotated[str, PropertyInfo(alias="extractImages")]
20
+ """Whether to extract images from files (true/false, default: true)"""
21
+
19
22
  folder_id: Annotated[str, PropertyInfo(alias="folderId")]
20
23
  """Folder ID (optional)"""
@@ -0,0 +1,26 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, Annotated, TypedDict
6
+
7
+ from ...._utils import PropertyInfo
8
+
9
+ __all__ = ["UploadUploadURLAndProcessParams"]
10
+
11
+
12
+ class UploadUploadURLAndProcessParams(TypedDict, total=False):
13
+ name: Required[str]
14
+ """Material name"""
15
+
16
+ url: Required[str]
17
+ """URL to fetch content from"""
18
+
19
+ folder_id: Annotated[str, PropertyInfo(alias="folderId")]
20
+ """Folder ID (optional)"""
21
+
22
+ poll_interval_ms: Annotated[float, PropertyInfo(alias="pollIntervalMs")]
23
+ """Polling interval in milliseconds (default: 2 seconds)"""
24
+
25
+ timeout_ms: Annotated[float, PropertyInfo(alias="timeoutMs")]
26
+ """Maximum time to wait for processing in milliseconds (default: 5 minutes)"""
@@ -3,3 +3,6 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from .analyst_list_events_params import AnalystListEventsParams as AnalystListEventsParams
6
+ from .analyst_get_test_questions_params import AnalystGetTestQuestionsParams as AnalystGetTestQuestionsParams
7
+ from .analyst_list_chat_messages_params import AnalystListChatMessagesParams as AnalystListChatMessagesParams
8
+ from .analyst_list_chat_messages_response import AnalystListChatMessagesResponse as AnalystListChatMessagesResponse
@@ -0,0 +1,18 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import List
6
+ from typing_extensions import Annotated, TypedDict
7
+
8
+ from ...._utils import PropertyInfo
9
+
10
+ __all__ = ["AnalystGetTestQuestionsParams"]
11
+
12
+
13
+ class AnalystGetTestQuestionsParams(TypedDict, total=False):
14
+ group_ids: Annotated[List[str], PropertyInfo(alias="groupIds")]
15
+ """Array of group IDs to filter"""
16
+
17
+ user_id: Annotated[str, PropertyInfo(alias="userId")]
18
+ """User ID to get test results for"""
@@ -0,0 +1,18 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import List
6
+ from typing_extensions import Annotated, TypedDict
7
+
8
+ from ...._utils import PropertyInfo
9
+
10
+ __all__ = ["AnalystListChatMessagesParams"]
11
+
12
+
13
+ class AnalystListChatMessagesParams(TypedDict, total=False):
14
+ group_ids: Annotated[List[str], PropertyInfo(alias="groupIds")]
15
+ """Array of group IDs to filter"""
16
+
17
+ user_id: Annotated[str, PropertyInfo(alias="userId")]
18
+ """User ID to get chat messages for"""
@@ -0,0 +1,35 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from pydantic import Field as FieldInfo
8
+
9
+ from ...._models import BaseModel
10
+
11
+ __all__ = ["AnalystListChatMessagesResponse", "Message"]
12
+
13
+
14
+ class Message(BaseModel):
15
+ component_id: Optional[str] = FieldInfo(alias="componentId", default=None)
16
+
17
+ content: Optional[str] = None
18
+
19
+ created_at: Optional[datetime] = FieldInfo(alias="createdAt", default=None)
20
+
21
+ metadata: Optional[object] = None
22
+
23
+ role: Optional[Literal["user", "assistant", "system"]] = None
24
+
25
+ session_id: Optional[str] = FieldInfo(alias="sessionId", default=None)
26
+
27
+ user_id: Optional[str] = FieldInfo(alias="userId", default=None)
28
+
29
+
30
+ class AnalystListChatMessagesResponse(BaseModel):
31
+ messages: Optional[List[Message]] = None
32
+
33
+ session_count: Optional[float] = FieldInfo(alias="sessionCount", default=None)
34
+
35
+ total: Optional[float] = None
@@ -2,6 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ from typing import List
5
6
  from typing_extensions import Literal, Required, Annotated, TypedDict
6
7
 
7
8
  from ...._utils import PropertyInfo
@@ -47,3 +48,9 @@ class AnalystListEventsParams(TypedDict, total=False):
47
48
 
48
49
  start_date: Required[Annotated[str, PropertyInfo(alias="startDate")]]
49
50
  """Start date for filtering (ISO 8601)"""
51
+
52
+ group_ids: Annotated[List[str], PropertyInfo(alias="groupIds")]
53
+ """Array of group IDs to filter"""
54
+
55
+ user_ids: Annotated[List[str], PropertyInfo(alias="userIds")]
56
+ """Array of user IDs to filter"""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: studyfetch_sdk
3
- Version: 0.1.0a18
3
+ Version: 0.1.0a20
4
4
  Summary: The official Python library for the studyfetch-sdk API
5
5
  Project-URL: Homepage, https://github.com/GoStudyFetchGo/studyfetch-sdk-python
6
6
  Project-URL: Repository, https://github.com/GoStudyFetchGo/studyfetch-sdk-python