langchain搭配ollama
时间: 2025-05-01 13:40:17 浏览: 25
### 如何将 LangChain 与 Ollama 集成
LangChain 是一种用于构建语言模型应用程序的框架,而 Ollama 则是一个轻量级工具,允许用户通过本地服务调用大型语言模型。两者的结合可以实现更强大的功能。
#### 使用 LangChain 调用 Ollama 的方法
为了使 LangChain 和 Ollama 协同工作,可以通过 HTTP 请求的方式连接到 Ollama 提供的服务接口 `ollama serve`[^2]。以下是具体的操作方式:
1. **启动 Ollama 服务**
在后台运行命令 `ollama serve` 启动 Ollama 的服务器模式。这会暴露一个 REST API 接口,默认监听地址为 `http://localhost:11434`。
2. **配置 LangChain 连接至 Ollama**
LangChain 支持自定义 LLM(Large Language Model),因此可以通过创建一个新的类继承 `BaseLLM` 并重写其 `_call` 方法来完成对 Ollama 的请求处理逻辑[^1]。
下面是一段 Python 示例代码展示如何设置这一过程:
```python
from langchain.llms.base import BaseLLM
import requests
class OllamaModel(BaseLLM):
@property
def _llm_type(self) -> str:
return "custom"
def _call(self, prompt: str, stop: list[str] | None = None) -> str:
url = 'http://localhost:11434/api/generate'
payload = {
"prompt": prompt,
"stop_sequences": stop or [],
}
response = requests.post(url, json=payload).json()
generated_text = response.get('response', '')
return generated_text.strip()
# 初始化并测试新的 LLM 实现
ollama_llm = OllamaModel()
result = ollama_llm.invoke({"question": "How can I use LangChain effectively?"})
print(result)
```
此脚本定义了一个名为 `OllamaModel` 的新类,该类实现了必要的接口以便于被 LangChain 所识别和利用。当实例化这个对象后即可像操作其他标准 LLMs 一样对其进行提问。
---
#### 注意事项
- 确保 Ollama 已经安装并且能够正常提供服务。
- 如果计划部署在远程环境中,则需调整防火墙规则以及可能更改默认绑定 IP 地址以适应实际需求。
- 对于生产环境下的安全性考虑,请务必加密传输数据或者仅限内部网络访问。
---
阅读全文
相关推荐

















