使用LlamaIndex ReActAgent调用Ollama时遇404 Not Found错误求助
问题:Ollama + ReActAgent 访问/api/chat 出现404错误
环境信息
- 系统:Windows 11 WSL2
- 开发工具:VS Code
- Python版本:3.9
- 核心依赖:Ollama(管理mistral、codellama模型)、LlamaParse、LlamaIndex
问题描述
脚本my_main3.py逻辑:加载环境变量 → 初始化Ollama的mistral模型 → 通过LlamaParse解析PDF构建向量索引与查询引擎 → 创建QueryEngineTool → 初始化使用codellama模型的ReActAgent。
运行至循环输入prompt环节,输入用Python调用API发送POST请求创建新条目(原英文prompt:send a post request to make a new item using the api in Python.)时,抛出错误:
Client error '404 Not Found' for url http://localhost:11434/api/chat
已确认Ollama服务在http://localhost:11434正常运行,但未在脚本中配置过/api/chat端点。
解决方法
1. 升级LlamaIndex依赖版本
Ollama的/api/chat是较新的接口,旧版LlamaIndex的Ollama集成可能存在接口调用不匹配的问题:
- 执行命令升级核心依赖:
pip install --upgrade llama-index llama-index-llms-ollama - 初始化Ollama LLM时显式指定参数,避免默认行为冲突:
from llama_index.llms.ollama import Ollama llm = Ollama(model="codellama", request_timeout=60.0)
2. 强制ReActAgent使用Completion模式
部分代码类模型对Ollama的chat接口支持有限,ReActAgent处理代码请求时可能默认触发Chat模式,导致错误调用:
- 初始化Agent时强制关闭Chat模式:
from llama_index.core.agent import ReActAgent agent = ReActAgent.from_tools( tools=[query_engine_tool], llm=llm, verbose=True, chat_mode="react", use_chat=False ) - 同时拉取最新版codellama模型,确保模型本身支持标准接口:
ollama pull codellama
3. 检查Ollama网络监听配置
确认WSL2内的Ollama服务监听所有网络接口,避免端口映射问题:
- 修改Ollama配置文件
~/.ollama/config.json:{ "host": "0.0.0.0:11434" } - 重启Ollama服务:
ollama serve
4. 排查Agent工具调用日志
启用verbose=True查看Agent运行日志,定位触发/api/chat请求的具体环节:
- 检查QueryEngineTool的初始化逻辑,确保其使用的LLM配置与Agent一致,避免工具内部错误调用Chat接口:
from llama_index.core.tools import QueryEngineTool query_engine_tool = QueryEngineTool.from_defaults( query_engine=query_engine, name="pdf_query_tool", description="用于查询PDF文档中的信息" )
内容的提问来源于stack exchange,提问作者yts61
相关产品推荐
相关产品推荐

