openaivec 0.14.6__tar.gz → 0.14.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.
- {openaivec-0.14.6 → openaivec-0.14.7}/PKG-INFO +1 -1
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/_schema.py +24 -2
- {openaivec-0.14.6 → openaivec-0.14.7}/.env.example +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/.github/copilot-instructions.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/.github/workflows/python-mkdocs.yml +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/.github/workflows/python-package.yml +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/.github/workflows/python-test.yml +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/.github/workflows/python-update.yml +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/.gitignore +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/CODE_OF_CONDUCT.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/LICENSE +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/README.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/SECURITY.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/SUPPORT.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/docs/api/main.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/docs/api/pandas_ext.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/docs/api/spark.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/docs/api/task.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/docs/api/tasks/customer_support/customer_sentiment.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/docs/api/tasks/customer_support/inquiry_classification.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/docs/api/tasks/customer_support/inquiry_summary.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/docs/api/tasks/customer_support/intent_analysis.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/docs/api/tasks/customer_support/response_suggestion.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/docs/api/tasks/customer_support/urgency_analysis.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/docs/api/tasks/nlp/dependency_parsing.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/docs/api/tasks/nlp/keyword_extraction.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/docs/api/tasks/nlp/morphological_analysis.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/docs/api/tasks/nlp/named_entity_recognition.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/docs/api/tasks/nlp/sentiment_analysis.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/docs/api/tasks/nlp/translation.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/docs/index.md +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/docs/robots.txt +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/mkdocs.yml +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/pyproject.toml +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/__init__.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/_di.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/_embeddings.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/_log.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/_model.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/_optimize.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/_prompt.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/_provider.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/_proxy.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/_responses.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/_serialize.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/_util.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/pandas_ext.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/spark.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/__init__.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/customer_support/__init__.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/customer_support/customer_sentiment.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/customer_support/inquiry_classification.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/customer_support/inquiry_summary.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/customer_support/intent_analysis.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/customer_support/response_suggestion.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/customer_support/urgency_analysis.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/nlp/__init__.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/nlp/dependency_parsing.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/nlp/keyword_extraction.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/nlp/morphological_analysis.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/nlp/named_entity_recognition.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/nlp/sentiment_analysis.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/nlp/translation.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/table/__init__.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/table/fillna.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/tests/__init__.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/tests/test_di.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/tests/test_embeddings.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/tests/test_optimize.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/tests/test_pandas_ext.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/tests/test_prompt.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/tests/test_provider.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/tests/test_proxy.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/tests/test_proxy_suggester.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/tests/test_responses.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/tests/test_schema.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/tests/test_serialize.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/tests/test_serialize_pydantic_v2_compliance.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/tests/test_spark.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/tests/test_task.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/tests/test_util.py +0 -0
- {openaivec-0.14.6 → openaivec-0.14.7}/uv.lock +0 -0
|
@@ -87,7 +87,12 @@ class FieldSpec(BaseModel):
|
|
|
87
87
|
name: str = Field(
|
|
88
88
|
description=(
|
|
89
89
|
"Lower snake_case identifier (regex: ^[a-z][a-z0-9_]*$). Must be unique across all fields and "
|
|
90
|
-
"express the semantic meaning succinctly (no adjectives like 'best', 'great')."
|
|
90
|
+
"express the semantic meaning succinctly (no adjectives like 'best', 'great'). For numeric (integer|float) "
|
|
91
|
+
"fields the name MUST include an explicit unit or measure suffix (e.g. _count, _total_count, "
|
|
92
|
+
"_duration_seconds, _ms, _price_usd, _ratio, _score) to eliminate ambiguity. Avoid bare numeric nouns like "
|
|
93
|
+
"'duration' or 'value' without unit/scale. Boolean field names MUST begin with 'is_' followed by a "
|
|
94
|
+
"descriptive predicate (e.g. is_active, is_delayed). Use positive forms (is_active) rather than "
|
|
95
|
+
"negated forms (is_not_active)."
|
|
91
96
|
)
|
|
92
97
|
)
|
|
93
98
|
type: Literal["string", "integer", "float", "boolean"] = Field(
|
|
@@ -101,7 +106,10 @@ class FieldSpec(BaseModel):
|
|
|
101
106
|
description: str = Field(
|
|
102
107
|
description=(
|
|
103
108
|
"Concise, objective definition plus extraction rule (what qualifies / what to ignore). Avoid subjective, "
|
|
104
|
-
"speculative, or promotional language. If ambiguity exists with another field, clarify the distinction."
|
|
109
|
+
"speculative, or promotional language. If ambiguity exists with another field, clarify the distinction. "
|
|
110
|
+
"Do NOT simply restate an original JSON/key name if the examples are already structured; only include a "
|
|
111
|
+
"raw key verbatim when it is already the minimal, irreducible analytic unit. For derived fields, clearly "
|
|
112
|
+
"state the transformation (e.g. sentiment of comment_text, normalized date, language code)."
|
|
105
113
|
)
|
|
106
114
|
)
|
|
107
115
|
enum_values: Optional[List[str]] = Field(
|
|
@@ -312,11 +320,25 @@ Rules:
|
|
|
312
320
|
* float = any decimals / ratios
|
|
313
321
|
* boolean = explicit binary
|
|
314
322
|
* else use string
|
|
323
|
+
- Numeric (integer|float) field names MUST encode an explicit unit / scale / measure suffix
|
|
324
|
+
(e.g. *_count, *_seconds, *_ms, *_usd, *_ratio, *_score). Avoid ambiguous bare numeric names.
|
|
325
|
+
- Boolean field names MUST start with 'is_' followed by a positive predicate (e.g. is_active,
|
|
326
|
+
is_delayed). Avoid negated forms.
|
|
315
327
|
- No arrays, objects, composite encodings, or merged multi-concept fields.
|
|
316
328
|
- Descriptions: concise, objective extraction rules (no marketing/emotion/speculation).
|
|
317
329
|
- enum_values only for string fields with stable closed vocab; omit otherwise.
|
|
318
330
|
- Exclude direct outcome labels (e.g. attrition_probability, will_buy, purchase_likelihood)
|
|
319
331
|
in predictive / feature engineering contexts.
|
|
332
|
+
- When examples already appear as serialized JSON / key-value records, DO NOT merely relist the
|
|
333
|
+
raw original keys unless each is already an atomic, irreducible analytic signal. Prefer high-signal
|
|
334
|
+
derived / normalized / aggregated features (e.g. sentiment, category, language_code, boolean flags,
|
|
335
|
+
normalized_date, count metrics).
|
|
336
|
+
- Superficial renames (adding trivial prefixes/suffixes like _value, _field, new_) are forbidden; a new
|
|
337
|
+
field name must reflect a semantic transformation.
|
|
338
|
+
- Keep field count focused (typically <= 12) prioritizing reusable analytical / ML features over low-signal
|
|
339
|
+
restatements.
|
|
340
|
+
- If you retain an original raw key unchanged, its description must justify why it is minimal and cannot
|
|
341
|
+
be further decomposed without losing analytical value.
|
|
320
342
|
|
|
321
343
|
Output contract:
|
|
322
344
|
Return exactly an InferredSchema object with JSON keys:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openaivec-0.14.6 → openaivec-0.14.7}/docs/api/tasks/customer_support/inquiry_classification.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openaivec-0.14.6 → openaivec-0.14.7}/docs/api/tasks/customer_support/response_suggestion.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/customer_support/customer_sentiment.py
RENAMED
|
File without changes
|
{openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/customer_support/inquiry_classification.py
RENAMED
|
File without changes
|
{openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/customer_support/inquiry_summary.py
RENAMED
|
File without changes
|
{openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/customer_support/intent_analysis.py
RENAMED
|
File without changes
|
{openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/customer_support/response_suggestion.py
RENAMED
|
File without changes
|
{openaivec-0.14.6 → openaivec-0.14.7}/src/openaivec/task/customer_support/urgency_analysis.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|