大家好,我是 同学小张,+v: jasper_8017 一起交流,持续学习AI大模型应用实战案例,持续分享,欢迎大家点赞+关注,订阅我的大模型专栏,共同学习和进步。


在这里插入图片描述

0. 背景

前几天我在自己的Mac笔记本上部署了deepseek大模型,并配置了UI对话框,具体步骤见下文:

Deepseek本地部署教程,带UI(普通个人笔记本,无GPU,纯CPU也可使用)

在这里插入图片描述
在这里插入图片描述
这只是实现了利用本地模型进行对话的功能。如果想要开发一些Agent或其它能力呢?

这就需要通过代码调用本地模型的API了。那么本地模型如何调用其API呢?

1. API 调用

其实还是很简单的。因为本地部署用的是Ollama,所以调用大模型API使用的也是Ollama的API接口。

1.1 API 参数介绍

以对话补全API为例,Ollama接口为:

POST /api/generate

其参数如下:

  • 参数

    • model: (必需)模型名称
    • prompt: 要生成响应的提示
    • suffix: 模型响应后的文本
    • images: (可选)一个base64编码的图像列表(用于多模态模型,如 llava )
  • 高级参数(可选):

    • format: 返回响应的格式。目前唯一接受的值是 json
    • options: 其他模型参数,如 temperature、seed 等
    • system: 系统消息
    • template: 要使用的提示模板
    • context: 从先前对 /generate 的请求中返回的上下文参数,可以用于保持简短的对话记忆
    • stream: 如果设置为 false ,响应将作为单个响应对象返回,而不是一系列对象流
    • raw: 如果设置为 true ,将不会对提示进行任何格式化。如果您在请求API时指定了完整的模板提示,可以选择使用 raw 参数
    • keep_alive: 控制模型在请求后保留在内存中的时间(默认:5m)

1.2 示例请求(流式)

curl http://localhost:11434/api/generate -d '{
  "model": "deepseek-r1:7b",
  "prompt": "为什么草是绿的?"
}'

http://localhost:11434 是 Ollama 在本地运行时的服务地址。

完整接口参考:https://github.com/datawhalechina/handy-ollama/blob/main/docs/C4/1.%20Ollama%20API%20%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97.md

2. Python 调用 API

知道了接口的基本结构,下面我们看下如何用Python来调用。

2.1 环境准备

在开始使用 Python 与 Ollama API 交互之前,请确保您的开发环境满足以下条件:

  • Python: 安装 Python 3.8 或更高版本。
  • pip: 确保已安装 pip,Python 的包管理工具。
  • ollama 库: 用于更方便地与 Ollama API 交互。安装命令如下:
pip install ollama

2.2 使用示例

2.2.1 非流式调用
from ollama import chat
from ollama import ChatResponse

response: ChatResponse = chat(model='deepseek-r1:7b', messages=[
  {
    'role': 'user',
    'content': '为什么天空是蓝色的?',
  },
])
print(response['message']['content'])

print(response.message.content)
2.2.2 流式响应

可以通过设置 stream=True 启用响应流,使函数调用返回一个 Python 生成器,其中每个部分都是流中的一个对象。

from ollama import chat

stream = chat(
    model='deepseek-r1:7b',
    messages=[{'role': 'user', 'content': '为什么天空是蓝色的?'}],
    stream=True,
)

for chunk in stream:
  print(chunk['message']['content'], end='', flush=True)

2.3 运行结果展示

在这里插入图片描述

完整python接口调用示例参考:https://github.com/datawhalechina/handy-ollama/blob/main/docs/C4/2.%20%E5%9C%A8%20Python%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20Ollama%20API.md

如果觉得本文对你有帮助,麻烦点个赞和关注呗 ~~~


  • 大家好,我是 同学小张,持续学习C++进阶、OpenGL、WebGL知识AI大模型应用实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • +v: jasper_8017 一起交流💬,一起进步💪。
  • 微信公众号搜同学小张 🙏

私信免费领取AI、C++等相关资料,持续收集更新中! 包括但不限于:

  1. 清华大学104页《DeepSeek:从入门到精通》.pdf

  2. DeepSeek指导手册(24页).pdf

  3. 《如何向 ChatGPT 提问以获得高质量答案:提示技巧工程完全指南》

  4. 《OpenAI:GPT 最佳实践(大白话编译解读版)》

  5. 人工智能精选电子书

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐