Ollama 在 LangChain 中的使用 - Python 集成

碧海醫心
发布: 2025-03-18 14:38:33
原创
446人浏览过

Ollama 与 LangChain 集成:构建强大的本地 AI 应用

本文档介绍如何结合开源大语言模型部署工具 ollama 和 ai 应用构建框架 langchain,在本地环境快速部署和使用先进的 ai 模型。 文档包含核心代码片段和详细解释,完整代码可在 [jupyter notebook](此处应插入jupyter notebook链接) 中找到。(注意:部分内容具有时效性,请以最新信息为准。)

1. 环境配置

1.1 Conda 环境设置

建议使用 Conda 创建虚拟环境:

conda create -n handlm python=3.10 -y
conda activate handlm
pip install jupyter
python -m ipykernel install --user --name=handlm
登录后复制

重启 Jupyter 并选择 handlm 内核。

Ollama 在 LangChain 中的使用 - Python 集成

立即学习Python免费学习笔记(深入)”;

(可选) 使用全局环境: 如不使用 Conda,可直接在全局 Python 环境中安装依赖。

1.2 安装依赖包

使用 pip 安装必要的库:

pip install langchain-ollama langchain langchain-community Pillow faiss-cpu
登录后复制

2. 模型下载与初始化

2.1 下载 llama3.1 模型

  1. 下载并安装 Ollama (https://www.php.cn/link/2575c857df983996d49550f3e924755f).
  2. 查看可用模型 (https://www.php.cn/link/5aa99ed4dc2312e348d37fc9da80eb5b).
  3. 使用 ollama pull llama3.1 下载 llama3.1 模型。

Ollama 在 LangChain 中的使用 - Python 集成

模型存储路径:

  • macOS: ~/.ollama/models/
  • Linux/WSL: /usr/share/ollama/.ollama/models
  • Windows: C:\Users\Administrator\.ollama\models

3. 核心功能示例

3.1 基于 ChatPromptTemplate 的对话

使用 ChatPromptTemplate 创建可重用的对话模板:

from langchain.prompts import ChatPromptTemplate
from langchain_ollama import ChatOllama

template = """
你是一个乐于助人的AI助手,擅长回答各种问题。
问题:{question}
"""
prompt = ChatPromptTemplate.from_template(template)
model = ChatOllama(model="llama3.1", temperature=0.7)
chain = prompt | model
chain.invoke({"question": "你比 GPT-4 强大吗?"})
登录后复制

3.2 流式输出

使用 model.stream() 实现流式输出,提升用户体验:

model = ChatOllama(model="llama3.1", temperature=0.7)
messages = [("human", "你好呀")]
for chunk in model.stream(messages):
    print(chunk.content, end="", flush=True)
登录后复制

3.3 工具调用

通过 bind_tools 将自定义函数与模型集成:

def simple_calculator(operation: str, x: float, y: float) -> float:
    # ... 计算逻辑 ...
    pass

llm = ChatOllama(model="llama3.1", temperature=0).bind_tools([simple_calculator])
result = llm.invoke("你知道一千万乘以二等于多少吗?")
登录后复制

3.4 多模态模型 (以 llava 为例)

下载多模态模型 (ollama pull llava),并使用图像和文本输入:

from langchain_ollama import ChatOllama
# ... (图像预处理代码) ...
llm = ChatOllama(model="llava", temperature=0)
# ... (多模态提示函数和链式处理代码) ...
登录后复制

Ollama 在 LangChain 中的使用 - Python 集成

4. 进阶用法

4.1 ConversationChain 用于多轮对话

使用 ConversationChain 管理多轮对话上下文:

from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationChain

memory = ConversationBufferMemory()
conversation = ConversationChain(llm=model, memory=memory, verbose=True)
# ... (多轮对话代码) ...
登录后复制

4.2 自定义提示模板

创建更复杂的提示模板以满足特定需求:

# ... (自定义提示模板代码) ...
登录后复制

4.3 构建简单的 RAG 问答系统

下载 embedding 模型 (ollama pull nomic-embed-text),构建 RAG 系统:

# ... (RAG 系统代码,包含文本分割、向量化、检索和问答链构建) ...
登录后复制

5. 总结

本文档展示了如何利用 Ollama 和 LangChain 构建各种 AI 应用。 通过选择合适的模型和组件,您可以构建满足特定需求的 AI 系统。 希望本指南能帮助您开始 AI 开发之旅。

以上就是Ollama 在 LangChain 中的使用 - Python 集成的详细内容,更多请关注php中文网其它相关文章!

豆包AI编程
豆包AI编程

智能代码生成与优化,高效提升开发速度与质量!

下载
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号