Skip to content

Conversation

@fzyzcjy
Copy link
Collaborator

@fzyzcjy fzyzcjy commented Nov 4, 2025

Motivation

e.g. engine api will not have this feature before the code change, also the location can be improved

Modifications

Accuracy Tests

Benchmarking and Profiling

Checklist

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @fzyzcjy, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request refactors the weight version update mechanism within the system. It addresses an architectural concern by relocating the logic for updating the weight version from the HTTP server's endpoint handlers to the underlying tokenizer management and communication layers. This change promotes a cleaner separation of concerns, ensuring that weight version tracking is managed directly by the components responsible for model weight updates, rather than by the API interface.

Highlights

  • Refactor Weight Version Update Logic: The logic responsible for updating the weight version after a successful weight update operation has been moved from the http_server.py entrypoint layer to the more appropriate tokenizer_communicator_mixin.py and tokenizer_manager.py layers. This ensures that the version update is handled closer to where the actual weight management occurs.
  • Centralized Helper Function: The _update_weight_version_if_provided helper function, previously defined and used within http_server.py, has been relocated and made a method of the TokenizerManager within tokenizer_communicator_mixin.py. This improves encapsulation and code organization.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@fzyzcjy fzyzcjy changed the title Fix update version logic in wrong layer Fix update version logic location Nov 4, 2025
@fzyzcjy fzyzcjy changed the title Fix update version logic location Tiny fix update version logic location Nov 4, 2025
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request refactors the weight version update logic, moving it from the HTTP server layer to the manager/communicator layer. This is a good architectural improvement that enhances separation of concerns. My main feedback is regarding the code duplication introduced by this change. The logic for updating the weight version and its corresponding message is repeated in four different methods across two files. I've suggested extracting this into a shared helper method to improve maintainability.

Comment on lines +407 to +409
if success and obj.weight_version is not None:
self._update_weight_version_if_provided(obj.weight_version)
message += f" Weight version updated to {obj.weight_version}."
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

This logic for updating the weight version and message is duplicated in a few places (update_weights_from_tensor, update_weights_from_ipc in this file, and update_weights_from_disk in python/sglang/srt/managers/tokenizer_manager.py).

To improve maintainability and reduce redundancy, consider extracting this logic into a helper method within the TokenizerCommunicatorMixin class. Since TokenizerManager inherits from this mixin, the helper will be available in all required locations.

Comment on lines +460 to +462
if success and obj.weight_version is not None:
self._update_weight_version_if_provided(obj.weight_version)
message += f" Weight version updated to {obj.weight_version}."
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

This is another instance of the duplicated logic for updating the weight version. Extracting this to a shared helper method would make the code more DRY (Don't Repeat Yourself).

Comment on lines +488 to +490
if success and obj.weight_version is not None:
self._update_weight_version_if_provided(obj.weight_version)
message += f" Weight version updated to {obj.weight_version}."
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

This is another instance of the duplicated logic for updating the weight version. Extracting this to a shared helper method would improve code clarity and maintainability.

Comment on lines +1177 to +1179
if success and obj.weight_version is not None:
self._update_weight_version_if_provided(obj.weight_version)
message += f" Weight version updated to {obj.weight_version}."
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

This is another instance of the duplicated logic for updating the weight version. Since TokenizerManager inherits from TokenizerCommunicatorMixin, a helper method defined in the mixin could be used here as well to avoid repetition.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants