Bug 描述
在 Windows 环境下,当操作系统系统代理设置时,使用 llamaIndex 访问本地 Ollama 环境 LLM 会导致访问错误。
Httpx.HTTPStatusError:客户端错误 '403 Forbidden',URL 为 ' http://localhost:11434/api/chat '
版本
0.10.33
重现步骤
在使用 llamaIndex 访问本地 LLM 时,我遇到了一个小问题,并找到了解决方法。
问题描述:
在 Windows 环境下,当操作系统系统代理设置时,使用 llamaIndex 访问本地环境 LLM(如在 Ollama 上运行的本地 LLM)会导致访问错误。
原因:
llamaIndex 使用 httpx 访问 LLM 的 URL。
Python 中的 httpx 库默认使用系统代理设置来访问 LLM 的 web URL。
因此,Windows 系统默认使用代理访问由 Ollama 提供的本地服务,从而导致错误。
解决方案:
我通过创建一个继承自 CustomLLM 类(llma_index.core.llms.custom.CustomLLM)的子类来解决这个问题,并在调用 httpx.client 时将 [trust_env=false] 作为参数添加进去。
可能还有更好的解决方案。
我希望在封装和继承 CustomLLM 子类时,可以将 [trust_env=false] 作为初始化参数或在调用过程中保留下来,这似乎也能解决这个问题。
相关日志/回溯
- 无响应*
6条答案
按热度按时间cwxwcias1#
嘿,@cnrevol!👋我是Dosu,你的友好邻居机器人,在这里帮助解决bug,回答你的问题,并引导你在等待人类加入对话时进行贡献。只是想说声你好,让你知道我正在深入研究LlamaIndex和Ollama本地LLM服务的问题。请稍等,我会很快给你一些见解!
vxf3dgd42#
I don't think this is a llamaindex issue. More of an ollama/windows issue?
You can try changing the base_url in the class to point to a more windows friendly
http://127.0.0.1
yzuktlbb3#
将您的llamaIndex配置中的
base_url
更改为http://127.0.0.1
,而不是使用http://localhost
,是解决您在Windows上访问本地LLM服务时遇到的问题的实际解决方案。这种方法应该可以帮助绕过导致访问错误的系统代理设置,而无需修改库的源代码或实施涉及trust_env=false
的解决方法。您最初创建子类并在httpx.client参数中设置
trust_env=false
的方法有效地通过防止httpx使用系统的代理设置来解决代理问题。然而,这需要修改llamaIndex库或您的实现,这可能不适合所有用户。总之,将
base_url
调整为http://127.0.0.1
是一种简单有效的方法,无需额外的配置或代码更改来处理代理设置即可解决访问问题。详细信息
来源
关于Dosu
此响应旨在帮助您节省时间并提高效率。它不是精确的解决方案,而是您自己研究的起点。
请帮助我变得更有用!如果您觉得有帮助,请留下一个👍,如果不相关,请留下一个👎。
kxe2p93d4#
感谢@dosu和@logan-markewich。我尝试将base_url修改为http://127.0.0.1,但似乎仍然遇到相同的错误。
Httpx.HTTPStatusError:客户端错误 '403 Forbidden' 对于url 'http://127.0.0.1:11434/api/chat'。
还有什么是我不明白的吗?有任何错误吗?
或者这确实是一个Windows问题?
我需要进一步调查Windows代理设置控制对于外部IP、本地IP和localhost的区别......
谢谢。
ca1c2owp5#
如果你在将
base_url
更改为http://127.0.0.1
后仍然遇到403 Forbidden
错误,这表明问题可能不仅仅与代理设置或特定地址有关。此错误通常表示服务器理解请求但拒绝授权,这可能是由于网络配置之外的几个原因。以下是一些重点步骤,用于故障排除并可能解决该问题:
/api/chat
。如果路由没有正确定义,可能会导致403 Forbidden
错误。还重要的是确保任何应用程序特定的配置,例如与本地LLM服务的交互配置,都已正确设置。如果在检查这些区域后问题仍然存在,提供有关你的设置的更多信息,包括来自应用程序日志的特定错误消息以及对默认设置所做的任何更改,将有助于进一步诊断。
细节
来源
关于Dosu
此响应旨在帮助你节省时间并提高效率。它不是精确解决方案,而是你自己研究的起点。
请帮助我变得更有用!如果你觉得这个回答有帮助,请留下一个👍;如果不相关,请留下一个👎。
6ljaweal6#
感谢,@dosu,@logan-markewich
我尝试修改base_url为http://127.0.0.1,但似乎仍然遇到相同的错误,Httpx.HTTPStatusError:客户端错误 '403 Forbidden' 对于url 'http://127.0.0.1:11434/api/chat'。
还有什么是我不明白的吗?有任何错误吗?
或者这确实是一个Windows问题?
我需要进一步调查Windows代理设置控制对于外部IP、本地IP和本地主机的区别......
谢谢。
你好,我也遇到了类似的问题。在使用全局代理后,我无法连接到本地的Ollama服务。你找到了解决方案吗?