当前位置:首页>python>告别 Token 焦虑!Python 本地连接 Ollama 大模型,实现无限次免费调用

告别 Token 焦虑!Python 本地连接 Ollama 大模型,实现无限次免费调用

  • 2026-09-08 01:01:42
告别 Token 焦虑!Python 本地连接 Ollama 大模型,实现无限次免费调用
你是不是也有这样的困扰:
    调用 ChatGPT 等云端大模型时,总被 Token 限额、API 密钥、网络环境卡脖子;问几个问题就提示额度用尽,想多测试几次都束手束脚? 
    今天就教你一个「零成本、无限 Token」的解决方案:用 Python 本地连接 Ollama,直接调用 Llama3、Phi3、Qwen 等热门大模型,全程离线运行,想怎么用就怎么用!

一、先搞懂:Ollama 是什么?

Ollama 是一款轻量级的开源工具,能让你在本地电脑上一键部署、运行各类大模型,核心优势:

    ✅ 无需 GPU 也能跑(CPU 模式即可,有显卡更流畅);

    ✅ 内置 Llama3、Phi3、通义千问、百川等数十款主流模型;

    ✅ 完全免费,无调用次数 / Token 限制;

    ✅ 提供简单的 API 接口,Python 可直接调用。

二、准备工作:3 分钟搞定环境部署 

    1. 安装 Ollama  Windows/Mac/Linux 通用:访问 Ollama 官网(https://ollama.com/),下载对应系统的安装包,一键安装即可。 验证安装:打开终端 / 命令提示符,输入 ollama -v,能显示版本号即安装成功。  

    2. 拉取大模型(以 Llama3 为例) 终端执行命令,自动下载并安装模型(首次下载需几分钟,视网络而定):

ollama pull llama3  # 拉取Llama3-8B模型(轻量版,适合本地运行)# 可选其他模型:ollama pull phi3 / ollama pull qwen  # 阿里通义千问
    3. 验证模型运行 终端执行 ollama run llama3,输入问题如「解释 Python 列表推导式」,能得到回复即模型部署成功。
三、核心代码:Python 本地调用 Ollama(无限 Token 版)

        1. 基础调用:单次对话

    无需任何第三方库(用 Python 内置的 requests),直接调用 Ollama 的本地 API:

import requestsimport jsondef call_ollama_local(prompt, model="llama3"):    """    本地调用Ollama大模型    :param prompt: 用户提问内容    :param model: 模型名称(llama3/phi3/qwen等)    :return: 模型回复    """    # Ollama本地API地址(默认端口11434)    url = "http://localhost:11434/v1"    # 请求参数(支持system角色设定,和云端API逻辑一致)    data = {        "model": model,        "prompt": prompt,        "system": "你是专业的Python编程助手,回答简洁易懂,适合新手",  # 设定模型角色        "stream": False  # 关闭流式输出,直接返回完整结果    }    try:        # 发送POST请求调用本地模型        response = requests.post(url, json=data)        response.raise_for_status()  # 捕获HTTP错误        result = json.loads(response.text)        return result["response"]    except Exception as e:        return f"调用失败:{str(e)}"# 测试调用(无限次,无Token限制)if __name__ == "__main__":    user_question = "用Python写一个冒泡排序,加详细注释"    answer = call_ollama_local(user_question)    print("模型回复:\n", answer)

2. 进阶版:带上下文的多轮对话

     解决大模型「记不住历史」的问题,手动维护对话上下文,实现连续对话:

import requestsimport json# 初始化对话历史(保留system规则+所有历史消息)conversation_history = []def ollama_chat_with_context(user_input, model="llama3"):    global conversation_history    # 1. 拼接上下文:把历史对话整合为完整prompt    prompt = ""    # 添加system规则(只初始化一次)    if not conversation_history:        system_prompt = "你是Python编程导师,只回答Python相关问题,语气友好"        prompt += f"系统规则:{system_prompt}\n"    # 添加历史对话    for role, content in conversation_history:        prompt += f"{role}:{content}\n"    # 添加当前用户输入    prompt += f"用户:{user_input}\n助手:"    # 2. 调用本地Ollama API    url = "http://localhost:11434/v1"    data = {        "model": model,        "prompt": prompt,        "stream": False    }    try:        response = requests.post(url, json=data)        response.raise_for_status()        result = json.loads(response.text)        ai_response = result["response"]        # 3. 更新对话历史(用户输入+AI回复)        conversation_history.append(("用户", user_input))        conversation_history.append(("助手", ai_response))        return ai_response    except Exception as e:        return f"调用失败:{str(e)}"# 测试多轮对话(无限次,无Token限制)if __name__ == "__main__":    # 第一轮对话    print("===== 第一轮 =====")    q1 = "解释什么是Python装饰器"    a1 = ollama_chat_with_context(q1)    print(f"用户:{q1}\n助手:{a1}\n")    # 第二轮对话(模型能记住上一轮的装饰器话题)    print("===== 第二轮 =====")    q2 = "举个实际开发中用装饰器的例子"    a2 = ollama_chat_with_context(q2)    print(f"用户:{q2}\n助手:{a2}\n")    # 第三轮对话(继续追问)    print("===== 第三轮 =====")    q3 = "这个例子能优化吗?"    a3 = ollama_chat_with_context(q3)    print(f"用户:{q3}\n助手:{a3}")

四、关键优势 & 注意事项

✅ 核心优势

  1. 无限 Token:本地运行,无调用次数、Token 限额;
  2. 完全免费:无需充值、无需 API 密钥,告别云端模型的付费陷阱;
  3. 隐私安全:数据全程在本地,无需把敏感问题 / 代码上传到云端;
  4. 轻量化:支持低配置电脑(4G 内存即可运行轻量模型)。

⚠️ 注意事项

  1. 首次拉取模型需要下载几十 GB 的文件(视模型大小而定),建议在网络稳定时操作;
  2. CPU 运行大模型会稍慢(约几秒 / 次),有 NVIDIA 显卡可安装 CUDA 加速;
  3. 支持的模型可通过 ollama list 查看,想卸载模型用 ollama rm 模型名。

五、拓展玩法

  1. 结合 Gradio/Streamlit 快速做一个本地聊天界面;
  2. 调用 Ollama 实现本地代码生成、文档解析、自动化问答;
  3. 替换模型参数(如model="phi3"),测试不同大模型的回复效果。

最新文章

随机文章