Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

13309375: Improve the tests by mocking LiveModel when test mode is #14

Merged

Conversation

johnhuang01
Copy link
Owner

  Playback but using real LiveModel when test mode is Live

All SDK Contribution checklist:

This checklist is used to make sure that common guidelines for a pull request are followed.

  • Please open PR in Draft mode if it is:
    • Work in progress or not intended to be merged.
    • Encountering multiple pipeline failures and working on fixes.
  • If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
  • I have read the contribution guidelines.
  • The pull request does not introduce breaking changes.

General Guidelines and Best Practices

  • Title of the pull request is clear and informative.
  • There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

  • Pull request includes test coverage for the included changes.

SDK Generation Guidelines

  • The generate.cmd file for the SDK has been updated with the version of AutoRest, as well as the commitid of your swagger spec or link to the swagger spec, used to generate the code. (Track 2 only)
  • The *.csproj and AssemblyInfo.cs files have been updated with the new version of the SDK. Please double check nuget.org current release version.

Additional management plane SDK specific contribution checklist:

Note: Only applies to Microsoft.Azure.Management.[RP] or Azure.ResourceManager.[RP]

  • Include updated management metadata.
  • Update AzureRP.props to add/remove version info to maintain up to date API versions.

Management plane SDK Troubleshooting

  • If this is very first SDK for a services and you are adding new service folders directly under /SDK, please add new service label and/or contact assigned reviewer.

  • If the check fails at the Verify Code Generation step, please ensure:

    • Do not modify any code in generated folders.
    • Do not selectively include/remove generated files in the PR.
    • Do use generate.ps1/cmd to generate this PR instead of calling autorest directly.
      Please pay attention to the @microsoft.csharp version output after running generate.ps1. If it is lower than current released version (2.3.82), please run it again as it should pull down the latest version.

    Note: We have recently updated the PSH module called by generate.ps1 to emit additional data. This would help reduce/eliminate the Code Verification check error. Please run following command:

      `dotnet msbuild eng/mgmt.proj /t:Util /p:UtilityName=InstallPsModules`
    

Old outstanding PR cleanup

Please note:
If PRs (including draft) has been out for more than 60 days and there are no responses from our query or followups, they will be closed to maintain a concise list for our reviewers.

@@ -32,7 +32,7 @@

<ItemGroup>
<PackageReference Include="Azure.Core" />
<PackageReference Include="Microsoft.RL" VersionOverride="1.0.18530001-INTERNAL" />
<PackageReference Include="Microsoft.RL" VersionOverride="1.0.18680001-INTERNAL" />

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we going to have to release a new SDK every time we want to update the rl client version?

Copy link
Owner Author

@johnhuang01 johnhuang01 Feb 14, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. We don't want to always pick the latest build. What if there is some backward compatible issue for the latest build.

@@ -11,76 +11,52 @@ public class DecisionContextDocument
{
/// <summary> Initializes a new instance of DecisionContextDocument. </summary>
/// <param name="id"> Id of the decision context document </param>
/// <param name="json"> The json features </param>
/// <param name="actionJsons"> The json list of actions </param>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit] this is one json containing the action features, so I think a better name would be actionFeatureJson or something along those lines

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure.

/// <param name="slotId"> The slot Id </param>
/// <param name="slotJson"> The slot json features </param>
public DecisionContextDocument(string id, List<string> json, string slotId, List<string> slotJson)
/// <param name="slotJsons"> The json list of slots </param>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit] this is one json containing the slot features, so I think a better name would be slotFeatureJson or something along those lines

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok

ID = id;
JSON = json;
Id = id;
ActionFeatureJsons = actionFeatureJsons;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit] it is one json with one or more action features, this reads as multiple jsons for action features

same thing goes for slot below

Copy link
Owner Author

@johnhuang01 johnhuang01 Feb 14, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They are actually a list of json strings. See the following screenshot:
image
image

@johnhuang01 johnhuang01 merged commit 356fcbc into thickClientFeature Feb 15, 2022
johnhuang01 added a commit that referenced this pull request Mar 3, 2022
* 12767912: Add isLocalInference in the public SDK

* Rename the variable

* Thick clent feature (#5)

* 12767907: Add a package dependency on Microsoft.RL

* Add RankProcessor

* Remove unused file

* Remove some key

* Toggle commented codes so that most tests can pass

* Getting the required config details for rankprocessor to enable livemode

* Updating the wrong variable name

* Cleanup

* Revert "12767907: Add a package dependency on Microsoft.RL"

This reverts commit c586920.

* Revert "Add RankProcessor"

This reverts commit 43967d3.

* Revert "Remove unused file"

This reverts commit 1e400a8.

* Revert "Toggle commented codes so that most tests can pass"

This reverts commit 7ec50ec.

* Delete DisposeHelper.cs

* Revert "Revert "12767907: Add a package dependency on Microsoft.RL""

This reverts commit d6df6b5.

* Cleanup after reverting

* generating client configuration using autorest

* Revert "generating client configuration using autorest"

This reverts commit 6b75695.

* Configuration details for livemodel

* cleanup

* cleanup

* Added ToDo comments

* correct the version in endpoints

Co-authored-by: Tejaswi Paruchuri <[email protected]>
Co-authored-by: Tparuchuri <[email protected]>

* 12768045: Add rank processor for single slot (#3)

Add RankProcessor

Remove unused file

Remove some key

Toggle commented codes so that most tests can pass

RankProcessor is working. Still need to clean up the codes

Add test json files

only construct LiveModel when localInference is true

Move rankprocessor to under model

Add latest generated files from autorest

Add autogenerated files from autorest

Fix the setting in DecisionContext

Remove wrong comment

Revert unexpected auto-generated file changes

Addressed a comment

Move suppression to GlobalSuppressions.cs

Remove the decoration in MultiSlotClient.cs

Refactor rankProcessor so that the actions is not modified and restored;
added a converter between sdk and Rl.Net; replace Newtonsoft.json with
System.Text.Json

Address comments

Refactor RlObjuectConverter; remove some unneeded setters, etc.

Added unit tests for RlObjectConverter, DecisionContext,
JsonRawStringListConverter

Remove unused using

* 13009290: Create RankProcessor class to Azure Personalizer client library for .NET for multi slot (#7)

* 13009290: Create RankProcessor class to Azure Personalizer client
              library for .NET for multi slot

* Address comments

* Subsampling

* Cleanup and added tests

* Cleanup and added tests

* cleanup

* cleanup

* Single SubSample rate

* Cleanup

* Cleanup

* Variable name

* 13192221: Point to the Rl.Net nuget package from SDK dev drop (#9)

* Adding test code for Model/Put api and moving to preview.3

* Johnhuang/13216589 reward activate local inference api (#10)

* Update API view file

* 13216589: Add local inference reward api
13216590: Add local inference activate api

* Fix the comments

* Remove IsDisposed method

* Revert "Update API view file"

This reverts commit 0a4dcbf.

* Remove MultiSlotClient class as it is never used

* Add more change after other PRs were merged

* Revert "Add more change after other PRs were merged"

This reverts commit 35a3120.

* 13225147: Update API view file for thick client (#11)

* 13225147: Update API view file for thick client

* Remove some suppressing warning

* Add more changes after 2 PRs were merged

* lazy load rank processor, refresh config  and relaod token on expiry (#12)

* lazy load rank processor, refresh config  and relaod token on expiry

* Comments & Cleanup

* Cleanup

* Addressed comments

* Cleanup

* Fix conflict

Co-authored-by: John Huang <[email protected]>

* 13309375: Improve the tests by mocking LiveModel when test mode is (#14)

* 13309375: Improve the tests by mocking LiveModel when test mode is
	  Playback but using real LiveModel when test mode is Live

* Change some public classes to private

* Address those comments in the main PR

* Update Microsoft.RL version

* Rename some properties

* Update Microsoft.RL version

* Fix spelling check

* Remove the unneeded warning

* Update live model config

* Use similar method names for export and import apis

* Johnhuang/13170630 address thick client sdk review (#18)

* 13170630: Address comments from SDK review

* Update API view file

* Remove unnecessary file under Gerated folder

* Add more test for RLObjectConverter

* Remove unused parameter

* Remove unneeded comment

* Update recording sessions for tests that were changed in earlier commit. (#19)

Co-authored-by: Personalizer Team <[email protected]>

* Update api view file after model api change (#20)

* Rename modelStream to modelBody (#21)

* Update Microsoft.RL version

* 13678440: Some cosmetic change to address comments from DotNet team (#22)

* Update method names for Export/Import models as per suggestions. (#23)

* Update method names for Export/Import models as per suggestions.

* Updates after running codecheck.ps1 script

Co-authored-by: Personalizer Team <[email protected]>

Co-authored-by: Tejaswi Paruchuri <[email protected]>
Co-authored-by: Tparuchuri <[email protected]>
Co-authored-by: Personalizer Team <[email protected]>
Co-authored-by: Sharath Malladi <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants