本文档介绍如何结合开源大语言模型部署工具 ollama 和 ai 应用构建框架 langchain,在本地环境快速部署和使用先进的 ai 模型。 文档包含核心代码片段和详细解释,完整代码可在 [jupyter notebook](此处应插入jupyter notebook链接) 中找到。(注意:部分内容具有时效性,请以最新信息为准。)
1. 环境配置
建议使用 Conda 创建虚拟环境:
conda create -n handlm python=3.10 -y conda activate handlm pip install jupyter python -m ipykernel install --user --name=handlm
重启 Jupyter 并选择 handlm 内核。
立即学习“Python免费学习笔记(深入)”;
(可选) 使用全局环境: 如不使用 Conda,可直接在全局 Python 环境中安装依赖。
使用 pip 安装必要的库:
pip install langchain-ollama langchain langchain-community Pillow faiss-cpu
2. 模型下载与初始化
模型存储路径:
3. 核心功能示例
使用 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 强大吗?"})
使用 model.stream() 实现流式输出,提升用户体验:
model = ChatOllama(model="llama3.1", temperature=0.7) messages = [("human", "你好呀")] for chunk in model.stream(messages): print(chunk.content, end="", flush=True)
通过 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("你知道一千万乘以二等于多少吗?")
下载多模态模型 (ollama pull llava),并使用图像和文本输入:
from langchain_ollama import ChatOllama # ... (图像预处理代码) ... llm = ChatOllama(model="llava", temperature=0) # ... (多模态提示函数和链式处理代码) ...
4. 进阶用法
使用 ConversationChain 管理多轮对话上下文:
from langchain.memory import ConversationBufferMemory from langchain.chains import ConversationChain memory = ConversationBufferMemory() conversation = ConversationChain(llm=model, memory=memory, verbose=True) # ... (多轮对话代码) ...
创建更复杂的提示模板以满足特定需求:
# ... (自定义提示模板代码) ...
下载 embedding 模型 (ollama pull nomic-embed-text),构建 RAG 系统:
# ... (RAG 系统代码,包含文本分割、向量化、检索和问答链构建) ...
5. 总结
本文档展示了如何利用 Ollama 和 LangChain 构建各种 AI 应用。 通过选择合适的模型和组件,您可以构建满足特定需求的 AI 系统。 希望本指南能帮助您开始 AI 开发之旅。
以上就是Ollama 在 LangChain 中的使用 - Python 集成的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号