-
-
Notifications
You must be signed in to change notification settings - Fork 9.3k
[Misc] Add type assertion of request_id for LLMEngine.add_request #19700
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
Conversation
👋 Hi! Thank you for contributing to the vLLM project. 💬 Join our developer Slack at https://slack.vllm.ai to discuss your PR in #pr-reviews, coordinate on features in #feat- channels, or join special interest groups in #sig- channels. Just a reminder: PRs would not trigger full CI run by default. Instead, it would only run Once the PR is approved and ready to go, your PR reviewer(s) can run CI to test the changes comprehensively before merging. To run CI, PR reviewers can either: Add 🚀 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary of Changes
Hello @SHA-4096, 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 focuses on improving the robustness of the LLMEngine
by adding explicit type validation for the request_id
parameter in its add_request
method. This change aims to prevent issues arising from non-string request_id
inputs, thereby enhancing the stability and predictability of the engine's request processing.
Highlights
- Type Validation: Introduced a type assertion within the
LLMEngine.add_request
method to explicitly ensure that therequest_id
parameter is always a string. This enhances input validation and prevents potential runtime errors from incorrect types. - Code Consistency: The same type assertion for
request_id
has been applied consistently across bothvllm/engine/llm_engine.py
andvllm/v1/engine/llm_engine.py
, ensuring uniform behavior and robustness in different versions or implementations of the LLM engine.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command>
or @gemini-code-assist <command>
. Below is a summary of the supported commands.
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 issue 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 is currently in preview and 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 to provide feedback.
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
-
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. ↩
There was a problem hiding this 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 aims to fix issue #19588 by adding a type assertion for request_id
in the add_request
method of both the V0 and V1 LLM engines. This is a good step towards ensuring that request_id
is always a string, as expected by its type hint and likely by downstream code.
My main feedback revolves around the use of assert
for this validation. While assert
is fine for internal consistency checks during development, it can be disabled in optimized Python environments (via the -O
flag). If this type check is critical for correctness (which is implied by it fixing an issue), it would be more robust to use an explicit if not isinstance(...) raise TypeError(...)
pattern. This ensures the check is always active.
The PR description is a bit sparse on the test plan and results. While this is a small change, mentioning how this was tested or if new tests were added for this specific validation would be beneficial.
Overall, the change improves input validation, and the suggestion aims to make this validation even more robust.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @SHA-4096. I agree with gemini that we should throw a ValueError
here rather than asserting.
Also please sign-off your commits for the DCO: https://github.com/vllm-project/vllm/pull/19700/checks?check_run_id=44195213066
…quest Signed-off-by: n2ptr <xuzhanchaomail@163.com>
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
1 similar comment
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
…e request_id type Signed-off-by: n2ptr <xuzhanchaomail@163.com>
745ddd7
to
e187158
Compare
Signed-off-by: n2ptr <xuzhanchaomail@163.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @SHA-4096
@njhill It seems this modification has led to a failed ci test concerning AsyncLLMEngine, because it uses UUID type as the request_id input. |
@SHA-4096 could you fix the test too? |
I'll try to fix them |
Signed-off-by: n2ptr <xuzhanchaomail@163.com>
Head branch was pushed to by a user without write access
Fixed. Other failed tests seem to be unrelated to this PR. |
…lm-project#19700) Signed-off-by: n2ptr <xuzhanchaomail@163.com>
…lm-project#19700) Signed-off-by: n2ptr <xuzhanchaomail@163.com> Signed-off-by: avigny <47987522+avigny@users.noreply.github.com>
Essential Elements of an Effective PR Description Checklist
supported_models.md
andexamples
for a new model.Purpose
To fix the problem described in issue #19588
Test Plan
I modified
engine/llm_engine.py
in myvllm 0.6.3
site-package the same way as the proposed changes, and the exception is successfully raised. (I didn't findv1/engine/llm_engine.py
in this package, probably due to its earlier version, and my local machine is having trouble installing the newer version of vllm)The test script is the same as that in issue #19588
Test Result
(Optional) Documentation Update