查看: 153|回复: 0

Python调用Ollama本地API实现qwen2:7b模型对话

[复制链接]
发表于 1 小时前 | 显示全部楼层 |阅读模式
现在用 Python 调用 Ollama 中运行的千问 qwen2:7b 小模型进行对话,整体流程分三步:准备并运行模型、确认本地 API 服务、编写脚本请求 /api/generate 接口。原文以 8G 显卡环境为例,选择 qwen2:7b 这类较小模型,首次拉取约 4GB。

一、拉取并启动 qwen2:7b

先查看 Ollama 版本:
  1. ollama --version
复制代码
拉取模型:
  1. ollama pull qwen2:7b
复制代码
第一次下载会显示进度条,大小在 4GB 左右。下载完成后运行:
  1. ollama run qwen2:7b
复制代码
启动成功即可在终端对话。退出可按 Ctrl+D,或输入 /bye。Ollama 安装后默认常驻后台,因此本地 API 服务通常已经在运行。可用浏览器访问 http://localhost:11434 确认服务是否可访问。

二、Python 请求本地 API

新建 Python 脚本,例如 chat.py。原文使用 requests 向 Ollama 的生成接口发 POST 请求,关键参数包括 model、prompt、stream。stream 设为 False 时,接口一次性返回完整结果;随后从 JSON 响应的 response 字段取模型回答。
  1. import requests
  2. import json
  3. def ask_model(prompt, model="qwen2:7b"):
  4.     url = "http://localhost:11434/api/generate"
  5.     payload = {
  6.         "model": model,
  7.         "prompt": prompt,
  8.         "stream": False  # 一次性返回完整结果
  9.     }
  10.     response = requests.post(url, json=payload)
  11.     data = response.json()
  12.     return data["response"]
  13. if __name__ == "__main__":
  14.     question = "用一句话解释什么是大模型推理"
  15.     answer = ask_model(question)
  16.     print(f"Q: {question}")
  17.     print(f"A: {answer}")
复制代码

代码说明:ask_model 接收 prompt 和 model 两个参数,model 默认值为 qwen2:7b;请求地址是 Ollama 本地服务 http://localhost:11434/api/generate;payload 中的 stream 控制是否流式输出;response.json() 将响应解析为字典;最后返回 data["response"]。主程序部分构造一个问题,调用 ask_model,并打印 Q 与 A。

运行脚本:
  1. python chat.py
复制代码
脚本会输出问题与模型回答。若请求失败,可先检查 Ollama 服务是否运行、11434 端口是否可访问,以及模型名与已拉取模型是否一致。

三、适用场景与注意点

这种方式适合在本地脚本、自动化工具或简单后端服务中调用 Ollama 模型,不需要把请求发往云端。核心是保持 Ollama 后台运行,并通过 /api/generate 接口传入 model、prompt、stream 等参数。对于显存有限的机器,qwen2:7b 是原文给出的可运行示例;其他模型只需在拉取和调用时替换模型名,但需确保本地已有对应模型。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-10-9 13:42 , Processed in 0.037592 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部