casedev 0.1.0__py3-none-any.whl → 0.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.
- casedev/_base_client.py +140 -11
- casedev/_client.py +290 -119
- casedev/_models.py +16 -1
- casedev/_types.py +12 -2
- casedev/_version.py +1 -1
- casedev/resources/__init__.py +0 -70
- casedev/resources/compute/v1/__init__.py +0 -42
- casedev/resources/compute/v1/environments.py +16 -19
- casedev/resources/compute/v1/secrets.py +35 -41
- casedev/resources/compute/v1/v1.py +14 -276
- casedev/resources/format/v1/templates.py +11 -13
- casedev/resources/llm/llm.py +6 -7
- casedev/resources/llm/v1/v1.py +11 -13
- casedev/resources/ocr/v1.py +10 -13
- casedev/resources/search/v1.py +6 -7
- casedev/resources/vault/graphrag.py +11 -13
- casedev/resources/vault/objects.py +20 -25
- casedev/resources/vault/vault.py +64 -28
- casedev/resources/voice/streaming.py +6 -7
- casedev/resources/voice/transcription.py +82 -23
- casedev/resources/voice/v1/speak.py +1 -195
- casedev/resources/voice/v1/v1.py +6 -7
- casedev/types/__init__.py +2 -0
- casedev/types/compute/__init__.py +1 -2
- casedev/types/compute/v1/__init__.py +7 -5
- casedev/types/compute/v1/environment_list_response.py +40 -0
- casedev/types/compute/v1/environment_retrieve_response.py +36 -0
- casedev/types/compute/v1/environment_set_default_response.py +36 -0
- casedev/types/{convert/v1_webhook_response.py → compute/v1/secret_delete_group_response.py} +3 -3
- casedev/types/compute/v1/secret_list_response.py +31 -0
- casedev/types/compute/v1/secret_retrieve_group_response.py +38 -0
- casedev/types/compute/v1/secret_update_group_response.py +22 -0
- casedev/types/compute/v1_get_usage_response.py +51 -0
- casedev/types/format/v1/__init__.py +2 -0
- casedev/types/format/v1/template_list_response.py +40 -0
- casedev/types/format/v1/template_retrieve_response.py +33 -0
- casedev/types/llm/__init__.py +2 -0
- casedev/types/llm/v1_create_embedding_response.py +31 -0
- casedev/types/llm/v1_list_models_response.py +41 -0
- casedev/types/llm_get_config_response.py +33 -0
- casedev/types/ocr/__init__.py +2 -0
- casedev/types/ocr/v1_download_response.py +7 -0
- casedev/types/ocr/v1_process_params.py +2 -0
- casedev/types/ocr/v1_retrieve_response.py +32 -0
- casedev/types/search/__init__.py +1 -0
- casedev/types/search/v1_retrieve_research_response.py +74 -0
- casedev/types/vault/__init__.py +6 -0
- casedev/types/vault/graphrag_get_stats_response.py +31 -0
- casedev/types/{workflows/v1_delete_response.py → vault/graphrag_init_response.py} +6 -2
- casedev/types/vault/object_download_response.py +7 -0
- casedev/types/vault/object_get_text_response.py +35 -0
- casedev/types/vault/object_list_response.py +64 -0
- casedev/types/vault/object_retrieve_response.py +57 -0
- casedev/types/vault_create_params.py +16 -1
- casedev/types/vault_create_response.py +5 -2
- casedev/types/vault_ingest_response.py +15 -5
- casedev/types/vault_retrieve_response.py +76 -0
- casedev/types/vault_search_params.py +19 -5
- casedev/types/vault_search_response.py +25 -1
- casedev/types/vault_upload_params.py +7 -0
- casedev/types/vault_upload_response.py +6 -0
- casedev/types/voice/__init__.py +3 -0
- casedev/types/voice/streaming_get_url_response.py +44 -0
- casedev/types/voice/transcription_create_params.py +23 -3
- casedev/types/voice/transcription_create_response.py +22 -0
- casedev/types/voice/transcription_retrieve_response.py +19 -17
- casedev/types/voice/v1/__init__.py +0 -1
- casedev/types/voice/v1/speak_create_params.py +2 -0
- casedev/types/voice/v1_list_voices_response.py +40 -0
- casedev/types/webhooks/__init__.py +0 -3
- {casedev-0.1.0.dist-info → casedev-0.2.0.dist-info}/METADATA +10 -13
- casedev-0.2.0.dist-info/RECORD +149 -0
- {casedev-0.1.0.dist-info → casedev-0.2.0.dist-info}/licenses/LICENSE +1 -1
- casedev/resources/actions/__init__.py +0 -33
- casedev/resources/actions/actions.py +0 -102
- casedev/resources/actions/v1.py +0 -640
- casedev/resources/compute/v1/functions.py +0 -278
- casedev/resources/compute/v1/invoke.py +0 -216
- casedev/resources/compute/v1/runs.py +0 -290
- casedev/resources/convert/__init__.py +0 -33
- casedev/resources/convert/convert.py +0 -102
- casedev/resources/convert/v1/__init__.py +0 -33
- casedev/resources/convert/v1/jobs.py +0 -254
- casedev/resources/convert/v1/v1.py +0 -450
- casedev/resources/templates/__init__.py +0 -33
- casedev/resources/templates/templates.py +0 -102
- casedev/resources/templates/v1.py +0 -633
- casedev/resources/webhooks/__init__.py +0 -33
- casedev/resources/webhooks/v1.py +0 -447
- casedev/resources/webhooks/webhooks.py +0 -102
- casedev/resources/workflows/__init__.py +0 -33
- casedev/resources/workflows/v1.py +0 -1053
- casedev/resources/workflows/workflows.py +0 -102
- casedev/types/actions/__init__.py +0 -8
- casedev/types/actions/v1_create_params.py +0 -22
- casedev/types/actions/v1_create_response.py +0 -33
- casedev/types/actions/v1_execute_params.py +0 -16
- casedev/types/actions/v1_execute_response.py +0 -31
- casedev/types/compute/v1/function_get_logs_params.py +0 -12
- casedev/types/compute/v1/function_list_params.py +0 -12
- casedev/types/compute/v1/invoke_run_params.py +0 -21
- casedev/types/compute/v1/invoke_run_response.py +0 -39
- casedev/types/compute/v1/run_list_params.py +0 -18
- casedev/types/compute/v1_deploy_params.py +0 -114
- casedev/types/compute/v1_deploy_response.py +0 -30
- casedev/types/convert/__init__.py +0 -8
- casedev/types/convert/v1/__init__.py +0 -3
- casedev/types/convert/v1_process_params.py +0 -15
- casedev/types/convert/v1_process_response.py +0 -19
- casedev/types/convert/v1_webhook_params.py +0 -32
- casedev/types/templates/__init__.py +0 -8
- casedev/types/templates/v1_execute_params.py +0 -22
- casedev/types/templates/v1_execute_response.py +0 -31
- casedev/types/templates/v1_list_params.py +0 -32
- casedev/types/templates/v1_search_params.py +0 -18
- casedev/types/voice/v1/speak_stream_params.py +0 -58
- casedev/types/webhooks/v1_create_params.py +0 -20
- casedev/types/webhooks/v1_create_response.py +0 -33
- casedev/types/workflows/__init__.py +0 -19
- casedev/types/workflows/v1_create_params.py +0 -32
- casedev/types/workflows/v1_create_response.py +0 -29
- casedev/types/workflows/v1_deploy_response.py +0 -20
- casedev/types/workflows/v1_execute_params.py +0 -12
- casedev/types/workflows/v1_execute_response.py +0 -22
- casedev/types/workflows/v1_list_executions_params.py +0 -13
- casedev/types/workflows/v1_list_executions_response.py +0 -27
- casedev/types/workflows/v1_list_params.py +0 -18
- casedev/types/workflows/v1_list_response.py +0 -37
- casedev/types/workflows/v1_retrieve_execution_response.py +0 -31
- casedev/types/workflows/v1_retrieve_response.py +0 -35
- casedev/types/workflows/v1_undeploy_response.py +0 -13
- casedev/types/workflows/v1_update_params.py +0 -26
- casedev/types/workflows/v1_update_response.py +0 -17
- casedev-0.1.0.dist-info/RECORD +0 -185
- {casedev-0.1.0.dist-info → casedev-0.2.0.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
from pydantic import Field as FieldInfo
|
|
7
|
+
|
|
8
|
+
from .._models import BaseModel
|
|
9
|
+
|
|
10
|
+
__all__ = ["VaultRetrieveResponse", "ChunkStrategy"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ChunkStrategy(BaseModel):
|
|
14
|
+
"""Document chunking strategy configuration"""
|
|
15
|
+
|
|
16
|
+
chunk_size: Optional[int] = FieldInfo(alias="chunkSize", default=None)
|
|
17
|
+
"""Target size for each chunk in tokens"""
|
|
18
|
+
|
|
19
|
+
method: Optional[str] = None
|
|
20
|
+
"""Chunking method (e.g., 'semantic', 'fixed')"""
|
|
21
|
+
|
|
22
|
+
min_chunk_size: Optional[int] = FieldInfo(alias="minChunkSize", default=None)
|
|
23
|
+
"""Minimum chunk size in tokens"""
|
|
24
|
+
|
|
25
|
+
overlap: Optional[int] = None
|
|
26
|
+
"""Number of overlapping tokens between chunks"""
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class VaultRetrieveResponse(BaseModel):
|
|
30
|
+
id: Optional[str] = None
|
|
31
|
+
"""Vault identifier"""
|
|
32
|
+
|
|
33
|
+
chunk_strategy: Optional[ChunkStrategy] = FieldInfo(alias="chunkStrategy", default=None)
|
|
34
|
+
"""Document chunking strategy configuration"""
|
|
35
|
+
|
|
36
|
+
created_at: Optional[datetime] = FieldInfo(alias="createdAt", default=None)
|
|
37
|
+
"""Vault creation timestamp"""
|
|
38
|
+
|
|
39
|
+
description: Optional[str] = None
|
|
40
|
+
"""Vault description"""
|
|
41
|
+
|
|
42
|
+
enable_graph: Optional[bool] = FieldInfo(alias="enableGraph", default=None)
|
|
43
|
+
"""Whether GraphRAG is enabled"""
|
|
44
|
+
|
|
45
|
+
files_bucket: Optional[str] = FieldInfo(alias="filesBucket", default=None)
|
|
46
|
+
"""S3 bucket for document storage"""
|
|
47
|
+
|
|
48
|
+
index_name: Optional[str] = FieldInfo(alias="indexName", default=None)
|
|
49
|
+
"""Search index name"""
|
|
50
|
+
|
|
51
|
+
kms_key_id: Optional[str] = FieldInfo(alias="kmsKeyId", default=None)
|
|
52
|
+
"""KMS key for encryption"""
|
|
53
|
+
|
|
54
|
+
metadata: Optional[object] = None
|
|
55
|
+
"""Additional vault metadata"""
|
|
56
|
+
|
|
57
|
+
name: Optional[str] = None
|
|
58
|
+
"""Vault name"""
|
|
59
|
+
|
|
60
|
+
region: Optional[str] = None
|
|
61
|
+
"""AWS region"""
|
|
62
|
+
|
|
63
|
+
total_bytes: Optional[int] = FieldInfo(alias="totalBytes", default=None)
|
|
64
|
+
"""Total storage size in bytes"""
|
|
65
|
+
|
|
66
|
+
total_objects: Optional[int] = FieldInfo(alias="totalObjects", default=None)
|
|
67
|
+
"""Number of stored documents"""
|
|
68
|
+
|
|
69
|
+
total_vectors: Optional[int] = FieldInfo(alias="totalVectors", default=None)
|
|
70
|
+
"""Number of vector embeddings"""
|
|
71
|
+
|
|
72
|
+
updated_at: Optional[datetime] = FieldInfo(alias="updatedAt", default=None)
|
|
73
|
+
"""Last update timestamp"""
|
|
74
|
+
|
|
75
|
+
vector_bucket: Optional[str] = FieldInfo(alias="vectorBucket", default=None)
|
|
76
|
+
"""S3 bucket for vector embeddings"""
|
|
@@ -2,20 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import Dict
|
|
6
|
-
from typing_extensions import Literal, Required, Annotated, TypedDict
|
|
5
|
+
from typing import Dict, Union
|
|
6
|
+
from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict
|
|
7
7
|
|
|
8
|
+
from .._types import SequenceNotStr
|
|
8
9
|
from .._utils import PropertyInfo
|
|
9
10
|
|
|
10
|
-
__all__ = ["VaultSearchParams"]
|
|
11
|
+
__all__ = ["VaultSearchParams", "Filters"]
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
class VaultSearchParams(TypedDict, total=False):
|
|
14
15
|
query: Required[str]
|
|
15
16
|
"""Search query or question to find relevant documents"""
|
|
16
17
|
|
|
17
|
-
filters:
|
|
18
|
-
"""
|
|
18
|
+
filters: Filters
|
|
19
|
+
"""Filters to narrow search results to specific documents"""
|
|
19
20
|
|
|
20
21
|
method: Literal["vector", "graph", "hybrid", "global", "local", "fast", "entity"]
|
|
21
22
|
"""
|
|
@@ -25,3 +26,16 @@ class VaultSearchParams(TypedDict, total=False):
|
|
|
25
26
|
|
|
26
27
|
top_k: Annotated[int, PropertyInfo(alias="topK")]
|
|
27
28
|
"""Maximum number of results to return"""
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class FiltersTyped(TypedDict, total=False):
|
|
32
|
+
"""Filters to narrow search results to specific documents"""
|
|
33
|
+
|
|
34
|
+
object_id: Union[str, SequenceNotStr[str]]
|
|
35
|
+
"""Filter to specific document(s) by object ID.
|
|
36
|
+
|
|
37
|
+
Accepts a single ID or array of IDs.
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
Filters: TypeAlias = Union[FiltersTyped, Dict[str, object]]
|
|
@@ -11,11 +11,35 @@ __all__ = ["VaultSearchResponse", "Chunk", "Source"]
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class Chunk(BaseModel):
|
|
14
|
+
chunk_index: Optional[int] = None
|
|
15
|
+
"""Index of the chunk within the document (0-based)"""
|
|
16
|
+
|
|
17
|
+
distance: Optional[float] = None
|
|
18
|
+
"""Vector similarity distance (lower is more similar)"""
|
|
19
|
+
|
|
20
|
+
object_id: Optional[str] = None
|
|
21
|
+
"""ID of the source document"""
|
|
22
|
+
|
|
23
|
+
page_end: Optional[int] = None
|
|
24
|
+
"""PDF page number where the chunk ends (1-indexed).
|
|
25
|
+
|
|
26
|
+
Null for non-PDF documents or documents ingested before page tracking was added.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
page_start: Optional[int] = None
|
|
30
|
+
"""PDF page number where the chunk begins (1-indexed).
|
|
31
|
+
|
|
32
|
+
Null for non-PDF documents or documents ingested before page tracking was added.
|
|
33
|
+
"""
|
|
34
|
+
|
|
14
35
|
score: Optional[float] = None
|
|
36
|
+
"""Relevance score (deprecated, use distance or hybridScore)"""
|
|
15
37
|
|
|
16
38
|
source: Optional[str] = None
|
|
39
|
+
"""Source identifier (deprecated, use object_id)"""
|
|
17
40
|
|
|
18
41
|
text: Optional[str] = None
|
|
42
|
+
"""Preview of the chunk text (up to 500 characters)"""
|
|
19
43
|
|
|
20
44
|
|
|
21
45
|
class Source(BaseModel):
|
|
@@ -36,7 +60,7 @@ class Source(BaseModel):
|
|
|
36
60
|
|
|
37
61
|
class VaultSearchResponse(BaseModel):
|
|
38
62
|
chunks: Optional[List[Chunk]] = None
|
|
39
|
-
"""Relevant text chunks with similarity scores"""
|
|
63
|
+
"""Relevant text chunks with similarity scores and page locations"""
|
|
40
64
|
|
|
41
65
|
method: Optional[str] = None
|
|
42
66
|
"""Search method used"""
|
|
@@ -22,5 +22,12 @@ class VaultUploadParams(TypedDict, total=False):
|
|
|
22
22
|
metadata: object
|
|
23
23
|
"""Additional metadata to associate with the file"""
|
|
24
24
|
|
|
25
|
+
path: str
|
|
26
|
+
"""Optional folder path for hierarchy preservation.
|
|
27
|
+
|
|
28
|
+
Allows integrations to maintain source folder structure from systems like
|
|
29
|
+
NetDocs, Clio, or Smokeball. Example: '/Discovery/Depositions/2024'
|
|
30
|
+
"""
|
|
31
|
+
|
|
25
32
|
size_bytes: Annotated[float, PropertyInfo(alias="sizeBytes")]
|
|
26
33
|
"""Estimated file size in bytes for cost calculation"""
|
|
@@ -21,6 +21,9 @@ class VaultUploadResponse(BaseModel):
|
|
|
21
21
|
auto_index: Optional[bool] = None
|
|
22
22
|
"""Whether the file will be automatically indexed"""
|
|
23
23
|
|
|
24
|
+
enable_indexing: Optional[bool] = FieldInfo(alias="enableIndexing", default=None)
|
|
25
|
+
"""Whether the vault supports indexing. False for storage-only vaults."""
|
|
26
|
+
|
|
24
27
|
expires_in: Optional[float] = FieldInfo(alias="expiresIn", default=None)
|
|
25
28
|
"""URL expiration time in seconds"""
|
|
26
29
|
|
|
@@ -32,6 +35,9 @@ class VaultUploadResponse(BaseModel):
|
|
|
32
35
|
object_id: Optional[str] = FieldInfo(alias="objectId", default=None)
|
|
33
36
|
"""Unique identifier for the uploaded object"""
|
|
34
37
|
|
|
38
|
+
path: Optional[str] = None
|
|
39
|
+
"""Folder path for hierarchy if provided"""
|
|
40
|
+
|
|
35
41
|
s3_key: Optional[str] = FieldInfo(alias="s3Key", default=None)
|
|
36
42
|
"""S3 object key for the file"""
|
|
37
43
|
|
casedev/types/voice/__init__.py
CHANGED
|
@@ -3,5 +3,8 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
from .v1_list_voices_params import V1ListVoicesParams as V1ListVoicesParams
|
|
6
|
+
from .v1_list_voices_response import V1ListVoicesResponse as V1ListVoicesResponse
|
|
7
|
+
from .streaming_get_url_response import StreamingGetURLResponse as StreamingGetURLResponse
|
|
6
8
|
from .transcription_create_params import TranscriptionCreateParams as TranscriptionCreateParams
|
|
9
|
+
from .transcription_create_response import TranscriptionCreateResponse as TranscriptionCreateResponse
|
|
7
10
|
from .transcription_retrieve_response import TranscriptionRetrieveResponse as TranscriptionRetrieveResponse
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from ..._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["StreamingGetURLResponse", "AudioFormat", "Pricing"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class AudioFormat(BaseModel):
|
|
11
|
+
channels: Optional[int] = None
|
|
12
|
+
"""Number of audio channels"""
|
|
13
|
+
|
|
14
|
+
encoding: Optional[str] = None
|
|
15
|
+
"""Required audio encoding format"""
|
|
16
|
+
|
|
17
|
+
sample_rate: Optional[int] = None
|
|
18
|
+
"""Required audio sample rate in Hz"""
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class Pricing(BaseModel):
|
|
22
|
+
currency: Optional[str] = None
|
|
23
|
+
"""Currency for pricing"""
|
|
24
|
+
|
|
25
|
+
per_hour: Optional[float] = None
|
|
26
|
+
"""Cost per hour of transcription"""
|
|
27
|
+
|
|
28
|
+
per_minute: Optional[float] = None
|
|
29
|
+
"""Cost per minute of transcription"""
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class StreamingGetURLResponse(BaseModel):
|
|
33
|
+
audio_format: Optional[AudioFormat] = None
|
|
34
|
+
|
|
35
|
+
connect_url: Optional[str] = None
|
|
36
|
+
"""Complete WebSocket URL with authentication token"""
|
|
37
|
+
|
|
38
|
+
pricing: Optional[Pricing] = None
|
|
39
|
+
|
|
40
|
+
protocol: Optional[str] = None
|
|
41
|
+
"""Connection protocol"""
|
|
42
|
+
|
|
43
|
+
url: Optional[str] = None
|
|
44
|
+
"""Base WebSocket URL for streaming transcription"""
|
|
@@ -2,21 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing_extensions import
|
|
5
|
+
from typing_extensions import Literal, TypedDict
|
|
6
|
+
|
|
7
|
+
from ..._types import SequenceNotStr
|
|
6
8
|
|
|
7
9
|
__all__ = ["TranscriptionCreateParams"]
|
|
8
10
|
|
|
9
11
|
|
|
10
12
|
class TranscriptionCreateParams(TypedDict, total=False):
|
|
11
|
-
audio_url:
|
|
12
|
-
"""URL of the audio file to transcribe"""
|
|
13
|
+
audio_url: str
|
|
14
|
+
"""URL of the audio file to transcribe (legacy mode, no auto-storage)"""
|
|
13
15
|
|
|
14
16
|
auto_highlights: bool
|
|
15
17
|
"""Automatically extract key phrases and topics"""
|
|
16
18
|
|
|
19
|
+
boost_param: Literal["low", "default", "high"]
|
|
20
|
+
"""How much to boost custom vocabulary"""
|
|
21
|
+
|
|
17
22
|
content_safety_labels: bool
|
|
18
23
|
"""Enable content moderation and safety labeling"""
|
|
19
24
|
|
|
25
|
+
format: Literal["json", "text"]
|
|
26
|
+
"""Output format for the transcript when using vault mode"""
|
|
27
|
+
|
|
20
28
|
format_text: bool
|
|
21
29
|
"""Format text with proper capitalization"""
|
|
22
30
|
|
|
@@ -29,8 +37,20 @@ class TranscriptionCreateParams(TypedDict, total=False):
|
|
|
29
37
|
language_detection: bool
|
|
30
38
|
"""Enable automatic language detection"""
|
|
31
39
|
|
|
40
|
+
object_id: str
|
|
41
|
+
"""Object ID of the audio file in the vault (use with vault_id)"""
|
|
42
|
+
|
|
32
43
|
punctuate: bool
|
|
33
44
|
"""Add punctuation to the transcript"""
|
|
34
45
|
|
|
35
46
|
speaker_labels: bool
|
|
36
47
|
"""Enable speaker identification and labeling"""
|
|
48
|
+
|
|
49
|
+
speakers_expected: int
|
|
50
|
+
"""Expected number of speakers (improves accuracy when known)"""
|
|
51
|
+
|
|
52
|
+
vault_id: str
|
|
53
|
+
"""Vault ID containing the audio file (use with object_id)"""
|
|
54
|
+
|
|
55
|
+
word_boost: SequenceNotStr[str]
|
|
56
|
+
"""Custom vocabulary words to boost (e.g., legal terms)"""
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
from ..._models import BaseModel
|
|
7
|
+
|
|
8
|
+
__all__ = ["TranscriptionCreateResponse"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class TranscriptionCreateResponse(BaseModel):
|
|
12
|
+
id: Optional[str] = None
|
|
13
|
+
"""Unique transcription job ID"""
|
|
14
|
+
|
|
15
|
+
source_object_id: Optional[str] = None
|
|
16
|
+
"""Source audio object ID (only for vault-based transcription)"""
|
|
17
|
+
|
|
18
|
+
status: Optional[Literal["queued", "processing", "completed", "error"]] = None
|
|
19
|
+
"""Current status of the transcription job"""
|
|
20
|
+
|
|
21
|
+
vault_id: Optional[str] = None
|
|
22
|
+
"""Vault ID (only for vault-based transcription)"""
|
|
@@ -5,37 +5,39 @@ from typing_extensions import Literal
|
|
|
5
5
|
|
|
6
6
|
from ..._models import BaseModel
|
|
7
7
|
|
|
8
|
-
__all__ = ["TranscriptionRetrieveResponse"
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
class Word(BaseModel):
|
|
12
|
-
confidence: Optional[float] = None
|
|
13
|
-
|
|
14
|
-
end: Optional[float] = None
|
|
15
|
-
|
|
16
|
-
start: Optional[float] = None
|
|
17
|
-
|
|
18
|
-
text: Optional[str] = None
|
|
8
|
+
__all__ = ["TranscriptionRetrieveResponse"]
|
|
19
9
|
|
|
20
10
|
|
|
21
11
|
class TranscriptionRetrieveResponse(BaseModel):
|
|
22
12
|
id: str
|
|
23
13
|
"""Unique transcription job ID"""
|
|
24
14
|
|
|
25
|
-
status: Literal["queued", "processing", "completed", "
|
|
15
|
+
status: Literal["queued", "processing", "completed", "failed"]
|
|
26
16
|
"""Current status of the transcription job"""
|
|
27
17
|
|
|
28
18
|
audio_duration: Optional[float] = None
|
|
29
19
|
"""Duration of the audio file in seconds"""
|
|
30
20
|
|
|
31
21
|
confidence: Optional[float] = None
|
|
32
|
-
"""Overall confidence score
|
|
22
|
+
"""Overall confidence score (0-100)"""
|
|
33
23
|
|
|
34
24
|
error: Optional[str] = None
|
|
35
|
-
"""Error message (only present when status is
|
|
25
|
+
"""Error message (only present when status is failed)"""
|
|
26
|
+
|
|
27
|
+
result_object_id: Optional[str] = None
|
|
28
|
+
"""Result transcript object ID (vault-based jobs, when completed)"""
|
|
29
|
+
|
|
30
|
+
source_object_id: Optional[str] = None
|
|
31
|
+
"""Source audio object ID (vault-based jobs only)"""
|
|
36
32
|
|
|
37
33
|
text: Optional[str] = None
|
|
38
|
-
"""Full transcription text (
|
|
34
|
+
"""Full transcription text (legacy direct URL jobs only)"""
|
|
35
|
+
|
|
36
|
+
vault_id: Optional[str] = None
|
|
37
|
+
"""Vault ID (vault-based jobs only)"""
|
|
38
|
+
|
|
39
|
+
word_count: Optional[int] = None
|
|
40
|
+
"""Number of words in the transcript"""
|
|
39
41
|
|
|
40
|
-
words: Optional[List[
|
|
41
|
-
"""Word-level timestamps
|
|
42
|
+
words: Optional[List[object]] = None
|
|
43
|
+
"""Word-level timestamps (legacy direct URL jobs only)"""
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
|
|
5
|
+
from ..._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["V1ListVoicesResponse", "Voice"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Voice(BaseModel):
|
|
11
|
+
available_for_tiers: Optional[List[str]] = None
|
|
12
|
+
"""Available subscription tiers"""
|
|
13
|
+
|
|
14
|
+
category: Optional[str] = None
|
|
15
|
+
"""Voice category"""
|
|
16
|
+
|
|
17
|
+
description: Optional[str] = None
|
|
18
|
+
"""Voice description"""
|
|
19
|
+
|
|
20
|
+
labels: Optional[object] = None
|
|
21
|
+
"""Voice characteristics and metadata"""
|
|
22
|
+
|
|
23
|
+
name: Optional[str] = None
|
|
24
|
+
"""Voice name"""
|
|
25
|
+
|
|
26
|
+
preview_url: Optional[str] = None
|
|
27
|
+
"""URL to preview audio sample"""
|
|
28
|
+
|
|
29
|
+
voice_id: Optional[str] = None
|
|
30
|
+
"""Unique voice identifier"""
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class V1ListVoicesResponse(BaseModel):
|
|
34
|
+
next_page_token: Optional[str] = None
|
|
35
|
+
"""Token for next page of results"""
|
|
36
|
+
|
|
37
|
+
total_count: Optional[int] = None
|
|
38
|
+
"""Total number of voices (if requested)"""
|
|
39
|
+
|
|
40
|
+
voices: Optional[List[Voice]] = None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: casedev
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: The official Python library for the casedev API
|
|
5
5
|
Project-URL: Homepage, https://github.com/CaseMark/casedev-python
|
|
6
6
|
Project-URL: Repository, https://github.com/CaseMark/casedev-python
|
|
@@ -51,13 +51,10 @@ The REST API documentation can be found on [docs.case.dev](https://docs.case.dev
|
|
|
51
51
|
## Installation
|
|
52
52
|
|
|
53
53
|
```sh
|
|
54
|
-
# install from
|
|
55
|
-
pip install
|
|
54
|
+
# install from PyPI
|
|
55
|
+
pip install casedev
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
-
> [!NOTE]
|
|
59
|
-
> Once this package is [published to PyPI](https://www.stainless.com/docs/guides/publish), this will become: `pip install casedev`
|
|
60
|
-
|
|
61
58
|
## Usage
|
|
62
59
|
|
|
63
60
|
The full API of this library can be found in [api.md](https://github.com/CaseMark/casedev-python/tree/main/api.md).
|
|
@@ -128,8 +125,8 @@ By default, the async client uses `httpx` for HTTP requests. However, for improv
|
|
|
128
125
|
You can enable this by installing `aiohttp`:
|
|
129
126
|
|
|
130
127
|
```sh
|
|
131
|
-
# install from
|
|
132
|
-
pip install
|
|
128
|
+
# install from PyPI
|
|
129
|
+
pip install casedev[aiohttp]
|
|
133
130
|
```
|
|
134
131
|
|
|
135
132
|
Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
|
|
@@ -178,12 +175,12 @@ from casedev import Casedev
|
|
|
178
175
|
|
|
179
176
|
client = Casedev()
|
|
180
177
|
|
|
181
|
-
response = client.
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
178
|
+
response = client.format.v1.create_document(
|
|
179
|
+
content="content",
|
|
180
|
+
output_format="pdf",
|
|
181
|
+
options={},
|
|
185
182
|
)
|
|
186
|
-
print(response.
|
|
183
|
+
print(response.options)
|
|
187
184
|
```
|
|
188
185
|
|
|
189
186
|
## Handling errors
|