当前位置: 首页 > news >正文

# Ollama 实现大模型调用

Ollama 实现大模型调用

1. 什么是 Ollama?

Ollama 是一个高效的本地 LLM 运行工具,支持 macOS、Linux 和 Windows。它通过一条命令即可在本地部署开源大模型,简化了模型管理和调用流程。无论是研究人员还是开发者,Ollama 都能帮助你轻松运行大模型,探索 NLP 的无限可能。

2. 安装与配置 Ollama

2.1 安装

  1. 访问 Ollama 官网,下载适用于你系统的安装程序(如 Windows 的 OllamaSetup.exe)。
  2. 双击安装,默认路径为 C:\Users\%username%\AppData\Local\Programs\Ollama
  3. 安装完成后,右下角出现 Ollama 图标,右键选择「Quit Ollama」退出,为后续配置做准备。

2.2 环境配置

  • 关闭开机自启(可选)
    • 删除 %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup 中的 Ollama.lnk 文件。
  • 配置模型存储路径(必须)
    • 默认模型存储在 C:\Users\%username%\.ollama\models,建议更改到其他盘(如 D:\Work\ollama\models)以节省 C 盘空间。
    • 在系统环境变量中添加:
      • 变量名:OLLAMA_MODELS
      • 变量值:D:\Work\ollama\models

2.3 运行模型

  1. 重新启动 Ollama,在安装目录打开命令行。
  2. 执行 ollama run <模型名称>(如 qwen2:1.5b),首次运行会自动下载模型。
  3. 模型下载完成后即可交互使用。推荐模型:
    • Qwen2:1.5b:轻量,适合低配置设备。
    • Llama 2:7b:需 8GB 显存,性能更强。
    • Llama 2:13b:需 16GB 显存,适合高性能任务。

注意:无 GPU 时默认使用 CPU,有 GPU 自动加载 GPU 加速。

3. 通过 Python 调用 Ollama

Ollama 提供灵活的 API,支持多种调用方式。以下是三种常见方法:

3.1 使用 ollama

  • 安装pip install ollama
  • 代码示例(聊天模式):
    import ollama
    response = ollama.chat(model='qwen2:1.5b', messages=[{'role': 'user', 'content': '为什么天空是蓝色的?'}
    ])
    print(response['message']['content'])
    
  • 特点:简单直接,支持生成和聊天模式。

3.2 使用 ollama.Client

  • 代码示例(远程调用):
    from ollama import Client
    client = Client(host='http://127.0.0.1:11434')
    response = client.chat(model='qwen2:1.5b', messages=[{'role': 'user', 'content': '为什么天空是蓝色的?'}
    ])
    print(response['message']['content'])
    
  • 特点:支持远程服务器调用,适合分布式环境。

3.3 流式输出

  • 代码示例
    import ollama
    stream = ollama.chat(model='qwen2:1.5b', messages=[{'role': 'user', 'content': '为什么天空是蓝色的?'}
    ], stream=True)
    for chunk in stream:print(chunk['message']['content'], end='', flush=True)
    
  • 特点:实时输出,适合交互式应用。

4. 结合 LangChain 调用

LangChain 是一个强大的 LLM 应用框架,与 Ollama 结合可实现更复杂的功能。

  • 安装
    pip install langchain langchain_community
    
  • 代码示例
    from langchain_community.llms import Ollama
    llm = Ollama(base_url='http://127.0.0.1:11434', model='qwen2:1.5b', temperature=0)
    res = llm.invoke('你是谁?')
    print(res)
    
  • 特点:支持复杂工作流,如 RAG、代理等,温度参数控制输出稳定性。

5. 使用 requests 调用

对于需要自定义调用的场景,可直接使用 HTTP 请求。

  • 安装pip install requests
  • 代码示例
    import requests
    url = 'http://127.0.0.1:11434/api/chat'
    headers = {'Content-Type': 'application/json'}
    data = {'model': 'qwen2:1.5b','options': {'temperature': 0},'stream': False,'messages': [{'role': 'system', 'content': '你是谁?'}]
    }
    response = requests.post(url, json=data, headers=headers, timeout=60)
    print(response.json())
    
  • 特点:高度自定义,适合集成到现有系统。
http://www.xdnf.cn/news/388765.html

相关文章:

  • 无侵入式弹窗体验_探索 Chrome 的 Close Watcher API
  • Android Canvas API 详细说明与示例
  • python【扩展库】websockets
  • idea中的vcs不见了,如何解决
  • 探秘 DeerFlow:字节跳动开源的科研创作魔法盒!
  • 温湿度传感器SHT4X
  • 【C++】AVL树实现
  • 害怕和别人发生冲突怎么办? --deepseek
  • [特殊字符] 免税商品优选购物商城系统 | Java + SpringBoot + Vue | 前后端分离实战项目分享
  • 线程的一些事(2)
  • 拍摄学习笔记【前期】(一)曝光
  • SQL 数据库监控:SQL语句监控工具与实践案例
  • 【Redis】Redis的主从复制
  • Linux常见指令解析(三)
  • jenkins built-in节点如何删除
  • TeledyneLeCroy在OFC2025 EA展台上展示了其400G/800G的全包围的测试解决方案,满足了UEC联盟和UALINK联盟的技术需求
  • 【25软考网工】第六章(3)数字签名和数字证书
  • opencv关键点检测
  • C语音学习---函数指针
  • Redis爆肝总结
  • 【嵌入式DIY实例-Arduino篇】-DIY遥控手柄
  • IC ATE集成电路测试学习——电流测试的原理和方法
  • 数据库与SQL核心技术解析:从基础到JDBC编程实战
  • 设计模式系列(1):总览与引导
  • NX989NY104美光科技芯片NY109NY113
  • LVGL(lv_btnmatrix矩阵按钮)
  • Babel 基础使用指南:从安装到编译的完整流程
  • MySQL主从复制
  • CacheBackEmbedding 组件的运行流程和使用注意事项
  • 使用 SHAP 进行特征交互检测:揭示变量之间的复杂依赖关系