报错:ValueError: Either a Redis client or a redis_url must be provided.

报错:ValueError: Either a Redis client or a redis_url must be provided.

【老师已协助解决,做个记录】

调试过程中发生如下报错:ValueError: Either a Redis client or a redis_url must be provided.

Traceback (most recent call last):
  File "D:\python310\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "D:\python310\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "D:\Envs\llmops_dev\lib\site-packages\flask\__main__.py", line 3, in <module>
    main()
  File "D:\Envs\llmops_dev\lib\site-packages\flask\cli.py", line 1129, in main
    cli.main()
  File "D:\Envs\llmops_dev\lib\site-packages\click\core.py", line 1082, in main
    rv = self.invoke(ctx)
  File "D:\Envs\llmops_dev\lib\site-packages\click\core.py", line 1697, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "D:\Envs\llmops_dev\lib\site-packages\click\core.py", line 1443, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "D:\Envs\llmops_dev\lib\site-packages\click\core.py", line 788, in invoke
    return __callback(*args, **kwargs)
  File "D:\Envs\llmops_dev\lib\site-packages\click\decorators.py", line 92, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "D:\Envs\llmops_dev\lib\site-packages\click\core.py", line 788, in invoke
    return __callback(*args, **kwargs)
  File "D:\Envs\llmops_dev\lib\site-packages\flask\cli.py", line 977, in run_command
    raise e from None
  File "D:\Envs\llmops_dev\lib\site-packages\flask\cli.py", line 961, in run_command
    app: WSGIApplication = info.load_app()  # pyright: ignore
  File "D:\Envs\llmops_dev\lib\site-packages\flask\cli.py", line 349, in load_app
    app = locate_app(import_name, name)
  File "D:\Envs\llmops_dev\lib\site-packages\flask\cli.py", line 245, in locate_app
    __import__(module_name)
  File "E:\Code\llmops\llmops-api\app\http\app.py", line 30, in <module>
    router=injector.get(Router)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 91, in wrapper
    return function(*args, **kwargs)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 977, in get
    result = provider_instance.get(self)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 264, in get
    return injector.create_object(self._cls)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 1000, in create_object
    self.call_with_injection(init, self_=instance, kwargs=additional_kwargs)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 1041, in call_with_injection
    dependencies = self.args_to_inject(
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 91, in wrapper
    return function(*args, **kwargs)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 1089, in args_to_inject
    instance: Any = self.get(interface)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 91, in wrapper
    return function(*args, **kwargs)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 977, in get
    result = provider_instance.get(self)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 264, in get
    return injector.create_object(self._cls)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 1000, in create_object
    self.call_with_injection(init, self_=instance, kwargs=additional_kwargs)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 1041, in call_with_injection
    dependencies = self.args_to_inject(
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 91, in wrapper
    return function(*args, **kwargs)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 1089, in args_to_inject
    instance: Any = self.get(interface)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 91, in wrapper
    return function(*args, **kwargs)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 977, in get
    result = provider_instance.get(self)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 264, in get
    return injector.create_object(self._cls)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 1000, in create_object
    self.call_with_injection(init, self_=instance, kwargs=additional_kwargs)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 1041, in call_with_injection
    dependencies = self.args_to_inject(
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 91, in wrapper
    return function(*args, **kwargs)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 1089, in args_to_inject
    instance: Any = self.get(interface)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 91, in wrapper
    return function(*args, **kwargs)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 977, in get
    result = provider_instance.get(self)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 264, in get
    return injector.create_object(self._cls)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 1000, in create_object
    self.call_with_injection(init, self_=instance, kwargs=additional_kwargs)
  File "D:\Envs\llmops_dev\lib\site-packages\injector\__init__.py", line 1050, in call_with_injection
    return callable(*full_args, **dependencies)
  File "D:\Envs\llmops_dev\lib\site-packages\langchain_community\storage\redis.py", line 74, in __init__
    raise ValueError("Either a Redis client or a redis_url must be provided.")
ValueError: Either a Redis client or a redis_url must be provided.

    根据提示初步分析时Redis扩展异常,从如下3个方面进行代码检查:

1、检查下是否配置了redis的链接地址

2、检查初始化redis客户端

3、检查了redis客户端的注入

https://img1.sycdn.imooc.com/climg/1691006809247ce416270410.jpg

REDIS_USE_SSL必须用获取布尔值的函数,这里应该改成_get_bool_env('REDIS_USE_SSL')

    修改完成后,还是有此报错,排查完时Redis扩展异常后,引用了Redis地方有本节课的EmbeddingsService,检查代码发现,构造函数的名字粗心写错了,少了个i,改成__init_后,问题解决:

https://img1.sycdn.imooc.com/climg/746b266809247d9817341136.jpg


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

好哒。学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
AI Agent 全栈开发工程师
  • 参与学习       528    人
  • 解答问题       411    个

全流程打造你自己的(Coze/Dify)低代码智能体开发平台;2025年入行正当时,企业急需,人才稀缺,竞争小;无论入行还是转行,首选口碑好课,门槛低、成长高

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师