Skip to content

Conversation

@SangChengC
Copy link
Contributor

No description provided.

@gemini-code-assist
Copy link

Summary of Changes

Hello @SangChengC, 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 enhancing the audio server's stability and performance, particularly concerning its inter-process communication with the embedding cache via RPyC. It introduces a network optimization to reduce latency, integrates a utility for RPyC-specific fixes, and refines an error message for better debugging when handling audio data.

Highlights

  • RPyC Performance Optimization: The audio server's RPyC connection to the cache client now explicitly disables Nagle's algorithm by setting TCP_NODELAY, which can reduce latency for small data packets and improve real-time audio processing.
  • RPyC Utility Integration: A specific RPyC utility module, lightllm.utils.rpyc_fix_utils, has been imported into the embedding cache manager, suggesting the application of targeted fixes or enhancements for RPyC communication.
  • Error Message Clarification: An error message in the multimodal_params module has been corrected to accurately reflect 'audio' instead of 'image' when data reading fails, improving diagnostic clarity.
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.

Copy link

@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 introduces a fix for rpyc communication, likely to improve latency for audio data transfer by enabling TCP_NODELAY. A new utility module rpyc_fix_utils is added to monkey-patch rpyc for setting socket options, which is a good approach for centralizing such configurations. However, this new utility is not used consistently. I've provided comments to apply this fix uniformly, which will make the code more robust and maintainable. Additionally, a minor typo in an error message for audio processing has been corrected.

import asyncio
import uvloop
import rpyc
import socket

Choose a reason for hiding this comment

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

high

To apply the rpyc socket optimizations consistently, it's better to use the rpyc_fix_utils module introduced in this PR. It monkey-patches rpyc to handle socket options centrally. This avoids manual and fragile manipulation of internal attributes. You should import it here instead of socket, and then the explicit setsockopt call can be removed.

Suggested change
import socket
import lightllm.utils.rpyc_fix_utils as _

self.zmq_recv_socket = context.socket(zmq.PULL)
self.zmq_recv_socket.bind(f"{args.zmq_mode}127.0.0.1:{args.audio_port}")
self.cache_client = rpyc.connect("localhost", args.cache_port, config={"allow_pickle": True})
self.cache_client._channel.stream.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)

Choose a reason for hiding this comment

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

high

This line should be removed. Accessing internal rpyc attributes like _channel is fragile and can break in future versions. After importing rpyc_fix_utils at the top of the file, this TCP_NODELAY socket option will be set automatically on the rpyc connection.

@hiworldwzj hiworldwzj merged commit 2d95b73 into main Nov 5, 2025
1 check passed
@hiworldwzj hiworldwzj deleted the fix-audio-rpyc branch November 5, 2025 05:57
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