如何消除使用Gemini API时终端出现的烦人情报警告?
解决Gemini API gRPC日志警告问题
已遵循Gemini API官方文档完成配置,AI功能运行正常,但终端会输出以下烦人的gRPC相关日志警告:
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR I0000 00:00:1721615745.026734 20796 config.cc:230] gRPC experiments enabled: call_status_override_on_cancellation, event_engine_client, event_engine_dns, event_engine_listener, http2_stats_fix, monitoring_experiment, pick_first_new, trace_record_callops, work_serializer_clears_time_cache
触发警告的代码如下:
import google.generativeai as genai import os from dotenv import load_dotenv def main(): load_dotenv() key = os.environ.get('GOOGLE_API_KEY') genai.configure(api_key=key) genai.configure(transport='grpc') model = genai.GenerativeModel('gemini-1.5-flash') response = model.generate_content("message") print(response.text) if __name__ == "__main__": main()
解决方法
这些警告来自absl日志库和gRPC的实验性特性日志,可通过以下方式抑制:
方法1:调整absl日志级别
在代码开头添加absl日志配置,过滤掉INFO和WARNING级别的日志:
import absl.logging # 将日志级别设为ERROR,仅保留错误日志 absl.logging.set_verbosity(absl.logging.ERROR) # 关闭初始化前的日志提示 absl.logging.warning = lambda *args, **kwargs: None
修改后的完整代码:
import absl.logging import google.generativeai as genai import os from dotenv import load_dotenv # 配置日志级别,抑制警告 absl.logging.set_verbosity(absl.logging.ERROR) absl.logging.warning = lambda *args, **kwargs: None def main(): load_dotenv() key = os.environ.get('GOOGLE_API_KEY') genai.configure(api_key=key) genai.configure(transport='grpc') model = genai.GenerativeModel('gemini-1.5-flash') response = model.generate_content("message") print(response.text) if __name__ == "__main__": main()
方法2:设置gRPC环境变量
通过环境变量直接降低gRPC的日志输出级别,在代码开头添加:
os.environ['GRPC_VERBOSITY'] = 'ERROR' os.environ['GRPC_TRACE'] = ''
此方法可同时抑制gRPC实验特性日志和absl相关警告。
说明
两种方法均不会影响Gemini API的正常功能,仅过滤冗余日志输出,让终端内容更简洁。
内容的提问来源于stack exchange,提问作者Nathan
相关产品推荐
相关产品推荐

