Conversation
alpkom
left a comment
There was a problem hiding this comment.
Could you adjust the RPT mock responses in the tests/mock.py to reflect the API changes?
And maybe adjust the integration_tests as well, in order to make use of the new attributes in the API?
Current tests are failing partly because of the optional vs. required behavior of |
It's not only about fixing tests. We need to adjust the mock to reflect the backend behavior properly. |
|
In the current test environment, there is no such RPT-1.6 deployment, and we need to deploy it for the tests to work |
|
|
||
| name: str | ||
| prediction_placeholder: str = "[PREDICT]" | ||
| prediction_placeholder: Optional[Union[str, int, float]] |
There was a problem hiding this comment.
This is a mandatory field, not optional.
There was a problem hiding this comment.
"TargetColumnConfig": {
...,
"properties": {
..., "prediction_placeholder": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "null"
}
],
"description": "The prediction placeholder in any column for which to predict a value. The model will predict a value for all table cells containing this value.",
"title": "Prediction Placeholder"
}, ..., "required": [
"name",
"prediction_placeholder"
], ...According to this spec, yes, it is required. But still, it needs to be a nullable number | string union. Is it wrong to set optional here?
| import unittest | ||
|
|
||
| from integration_tests.constants import SAP_RPT_1_SMALL_TEST_MODEL | ||
| from integration_tests.constants import SAP_RPT_1_6_SMALL_TEST_MODEL |
There was a problem hiding this comment.
Let's not only test against 1.6.
The full set of tests should run against 1.6, but we should have 1 happy path test for both 1.0 and 1.5.
|
@alpkom Here is my thought process: How do we happy-test if there is only one client (which is 1.6)? For example in case of Since we only have decided to keep only one RPT client (which is fully 1.6 compliant) and want to also preserve 1.0 and 1.5 functionalities, the only way out is to automatically detect what version the current RPT deployment belongs to. Names can be customized, so I don't think pattern-matching on deployment names is a maintainable solution. Does that match to your comments? |
Context
Closes SAP/ai-sdk-python-backlog#17.
What this PR does and why it is needed
This PR aims to upgrade the RPT Client logic on the SDK side for the newest version 1.6, grouped in 6 significant sections:
components.schemas.SchemaFieldConfigfrom spec: We add the missing data types to the dtype field in the currentDataTypecomponents.schemas.PredictionResultfrom spec:confidence_intervalis added into Predictionitem (current implementation). And also, we addminimum/maximumbounds toconfidenceas in 1.6.components.schemas.PredictionConfigfrom spec:explanationsare added to PredictionConfig response, so that it is not silently discarded.context_modeis added to PredictionConfig and ResponseMetadata (1.6 specific issue).components.schemas.TargetColumnConfigfrom spec:top_kis added to TargetColumn. Second of all,prediction_placeholderis casted to be nullable: as of now >=1.5 allowsnullornumericas placeholders, while current model enforcesstr. Corresponding linkcomponents.schemas.{ExplanationConfig / ExplanationResult}models didn't exist before, so they are implemented from scratch.Definition of Done