PowerData

以下文章来源于DataSpeed ,作者张文慧

[

DataSpeed .

慢慢积累,稳稳前行,用数据说话,为成长助力

](#)

DeepSeek从本地部署到无限调用API

导读:

本文聚焦于 DeepSeek 模型本地部署后 API 的无限调用。文章开篇点明 DeepSeek 官方 API 不稳定,引出本地部署实现无限调用 API 的需求,且强调方法适用于 ollama 安装的多种模型。接着介绍部署步骤,参考相关文章可快速完成。随后分别以 http 和 python SDK 两种方式进行演示,详细展示测试过程、代码示例,还对涉及的参数进行解释,方便读者深入理解和灵活运用。文章最后总结该方法的通用性,并从技术、资源管理、业务应用三个层面阐述使用 API 调用大模型的优势,为开发者提供了实用的技术指引。

1. 背景

由于众所周知的原因,DeepSeek官方的API一直不稳定。好在ds已经开源了,既然开源又支持本地部署,所以他肯定能无限使用。上一篇《基于DeepSeek打造团队知识库》已经能实现无限使用了,不过在一些集成应用中还是使用API会更加方便。

下文的案例,不仅适用于DeepSeek,ollama安装的模型都适用

2. 部署

部署的方式很简单,参考《基于DeepSeek打造团队知识库》的第二章、第三章,很快就能实现deepseek的部署,要注意的是 要保证你的模型在运行,以 deepseek-r1:8b 为例

ollama run deepseek-r1:8b

3. http方式

先以http的方式实验一下,随便找个api工具进行测试。这里要注意model的参数要与你实际部署的模型一致,否则会报错。如下图,进行post请求。

会出现如下图的响应。

看上去还以为出了什么错误,其实仔细看reponse是正常的文字,其实是因为这里默认使用了流式方式,所以他是一条条的。

下面换python http的方式来演示一下,顺便不使用流式的方式。

import requests # 基础初始化设置 base_url = "http://localhost:11434/api" headers = {     "Content-Type": "application/json" } def generate_completion(prompt, model="deepseek-r1:8b"):     url = f"{base_url}/generate"     data = {         "model": model,         "prompt": prompt,         "stream": False     }     response = requests.post(url, headers=headers, json=data)     return response.json().get('response', '') # test completion = generate_completion("介绍一下人工智能。") print("生成文本补全:", completion)

下面就是收到的回复,还能看到deepseek标志性的think标签,要注意的是因为我关掉了流式方式,所以一开始会等待一段时间,他是直接给出所有思考和答案。

4. python SDK方式

直接使用python sdk的方式会比较简单,先安装依赖

pip install ollama

以下是简单的代码演示

from ollama import chat stream = chat(     model='deepseek-r1:8b',     messages=[{'role': 'user', 'content': '简单描述一下深度学习'}],     stream=True, ) for chunk in stream:   print(chunk['message']['content'], end='', flush=True)

这次是使用的流式方式,和官网使用是一个感觉,一个字一个字的往外蹦。

5. 参数解释

参数

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

高级参数(可选):

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

6. 总结

总结来说上述的方式不仅针对deepseek,更确切的来说是针对ollama的,只要ollama能安装的大模型都可以用,参考ollama官网 。

使用API的方式来调用大模型有很多便利之处:

  • 技术层面:降低开发难度,开发者不用了解模型内部复杂架构和训练过程,只需关注应用。还便于集成扩展,能与各类系统、平台和编程语言轻松集成,为业务添加智能功能。同时,可及时获取模型更新,享受优化改进。
  • 资源管理层面:节省计算资源,无需购置和维护昂贵计算设备,按需使用云端服务即可。成本控制也更灵活,能按需付费,避免资源浪费。
  • 业务应用层面:快速验证业务想法,开发初期用 API 搭建原型,评估功能价值。能提升用户体验,提供智能、便捷、个性化服务。还能让企业专注核心业务,将精力放在自身优势领域,提升竞争力 。

关于作者

作者重视实战与理论的结合,文章干货满满,有较为丰富的平台、数开经验,欢迎和作者一起交流,共同进步。

DataSpeed聚焦大数据实战与大数据资讯,技术干货和行业消息一网打尽。期待与你同行,欢迎扫码添加作者微信。

关于社区

PowerData社区是由一群数据从业人员,因为热爱凝聚在一起,以开源精神为基础,组成的数据开源社区。

社区群内会定期组织模拟面试、线上分享、行业研讨(涉及金融、医疗、能源、工业、互联网等)、线下Meet UP、城市聚会、求职内推等。同时,在社区群内您可以进行技术讨论、问题请教,届时更多志同道合的数据朋友。

社区整理了一份每日一题汇总及社区分享PPT,内容涵盖大数据组件、编程语言、数据结构与算法、企业真实面试题等各个领域,帮助您自我提升,成功上岸。可以添加作者微信(zwhuihuiz),进入PowerData官方社区群。 

往期推荐

基于DeepSeek打造团队知识库


PowerData
1 声望2 粉丝

PowerData社区官方思否账号