返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

大模型“落地三件套”:Ollama本地部署、API 调用和LLM封装

[复制链接]
链载Ai 显示全部楼层 发表于 1 小时前 |阅读模式 打印 上一主题 下一主题

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">这两年大模型卷得飞起:ChatGPT、通义千问、文心一言层出不穷。对普通用户来说,在网页上聊两句就够了;但对开发者 / 研究者 / 数据分析党来说,真正有用的是三件事:

    ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;color: rgb(63, 63, 63);" class="list-paddingleft-1">
  • ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;text-indent: -1em;display: block;margin: 0.2em 8px;color: rgb(63, 63, 63);">
    • 在本地跑起来
  • ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;text-indent: -1em;display: block;margin: 0.2em 8px;color: rgb(63, 63, 63);">
    • 用 API 把模型接进自己的业务
  • ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;text-indent: -1em;display: block;margin: 0.2em 8px;color: rgb(63, 63, 63);">
    • 在开发工具里无缝用上“会写代码的 AI”

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">这篇推文,就带你用ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: inherit;color: rgb(15, 76, 129);">Ollama + 本地/云端 API ++ LLM封装打通这条链路,做一套「自己的 AI 工作流」。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">一、本地部署:为什么越来越多人选择 Ollama?

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">很多人第一反应:
“我直接用在线大模型不香吗?为什么还要折腾本地部署?”
本地部署有几大优势:

    ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;color: rgb(63, 63, 63);" class="list-paddingleft-1">
  1. 1.隐私&安全:代码、数据不出本机,对企业 / 研究来说很关键
  2. 2.可控成本:不用担心 API token 一不小心跑爆预算
  3. 3.可定制:可以下载特定领域模型(代码、金融、法律等),甚至做 LoRA 微调
  4. 4.离线可用:断网的时候,它还在
    而在一众本地部署方案里,Ollama的优点是:
  • • 跨平台(Windows / macOS / Linux)
  • • 一行命令拉模型、一行命令跑起来
  • • 自带 HTTP API,很适合接前端、后端、脚本
    二、Ollama 安装 & 跑通第一个本地模型

1. 安装 Ollama

🔍 可以去官网搜索 “Ollama”,根据系统下载对应安装包,直接默认路径下载即可。https://ollama.com/download
安装完成后,命令行终端里可以输入ollama看到帮助信息。输入ollama -v查看安装版本。
安装好后,打开https://ollama.com/library随便找一个模型下载,例如DeepSeek-r1。
打开Ollama,第一种是直接打开下载好的APP。安装后,Ollama 的图标会显示在桌面右下角的系统托盘区域。也可以直接在这里面对话。
第二种是终端启动。打开终端,试试直接跑一个模型。例如:
ollama serve #启动(如果APP启动了本命令忽略)
ollama run deepseek-r1:1.5b#下载模型到本地,后面可替换为其它模型

终端会自动帮你:

  1. 下载对应模型(第一次会稍微久一点),显示即下载成功。
  2. 下载完后进入对话模式,你可以直接在命令行里和本地模型聊天

到这里,你的“本地 ChatGPT” 已经跑起来了

三、把本地模型当作 API 用:Ollama HTTP 调用示例

1. Ollama 默认的 API 地址

安装并启动 Ollama 后,一般会默认在本机开一个 HTTP 服务:

http://127.0.0.1:11434

我们调用的核心接口通常是:

POST /api/generate
POST /api/chat

2. 用curl发一个最小请求

先在终端试一下最小 demo(以 chat 接口为例):

curl.exe-XPOST http://127.0.0.1:11434/api/chat `
-H"Content-Type: application/json"`
-d'{\"model\": \"deepseek-r1:1.5b\",
\"messages\": [{\"role\": \"user\",
\"content\": \"用三句话介绍一下你自己\"}]}'
如果一切正常,你会看到模型返回的 JSON,包括生成的内容。可以看到输出有点混乱,所以这种调用方式不常用。

3. Python 调用Ollama API 示例

下面是一个最简 Python 示例脚本,你可以放在自己项目里:

importrequests
importjson
OLLAMA_URL ="http://127.0.0.1:11434/api/chat"
defchat_with_ollama(prompt, model="deepseek-r1:1.5b"):
payload = {
"model": model,
"messages": [
{"role":"user","content": prompt}
],
"stream":False# 如果想要流式输出,可以改为 True
}

resp = requests.post(OLLAMA_URL, json=payload)
resp.raise_for_status()
data = resp.json()
# Ollama 的 chat 返回里一般有 "message" 字段
returndata.get("message", {}).get("content","")

if__name__ =="__main__":
answer = chat_with_ollama("帮我写一段 50 字以内的大模型介绍")
print(answer)
大模型能够理解、创作并处理文字、图像、视频等复杂信息,展现出强大的认知能力和广泛的应用场景,适用于人工智能领域中的多任务协同和数据驱动决策。

4. Ollama包调用方法(两者选其一)

!pipinstallollama#下载ollama包
fromollamaimportClient

# 关键步骤:创建Client时指定明确的host
client = Client(host='http://127.0.0.1:11434')

# 然后使用client进行对话
response = client.chat(
model='deepseek-r1:1.5b',
messages=[
{
'role':'user',
'content':'用三句话介绍一下你自己',
},
]
)
print(response['message']['content'])
我是人工智能助手DeepSeek-R1,专注于理解、分析和解答复杂的查询。我擅长提供深入的解析和详细的信息解释,并能够快速响应用户的问题。我的独特服务是提供高效的解决方案,帮助用户在复杂的信息中快速找到所需答案。

有了这个模板,你可以很容易把本地模型:

  • • 接到自己的后端服务(Flask / FastAPI / Django)
  • • 接到桌面工具 / 自动脚本
  • • 接入你正在写的量化回测、数据清洗、报告生成等工作流

四、 除了本地模型,还可以调用各种云端 API

虽然本地模型(例如 Ollama + DeepSeek-R1 本地版)能够实现“离线可用”“数据不出本机”等优势,但在很多实际场景中,云端 API 依然不可替代

  • • 需要高推理能力(如 GPT-4.1、Claude 3.7、DeepSeek V3)
  • • 对稳定性、速度要求更高
  • • 属于大规模在线业务,而非个人电脑部署
  • • 多模型混合调用(翻译用 Qwen、推理用 GPT、编程用 DeepSeek)

因此,本章补充如何调用主流云端大模型 API,让读者可以完成:

“本地 + 云端”混合式 LLM 工作流

1. 主流云端 API 模型一览

下面是目前开发者最常用的几类云端大模型:

类型

代表模型

特点

国际强模型

GPT-4.1 / o1 / Claude 3.7

推理最强、稳定性最高

国内旗舰模型

通义千问 Qwen-Max / Qwen-Plus

中文任务强、成本适中

国内高性价比模型

DeepSeek V3 / R1 / Chat

性价比极高、推理能力强

其他云厂商模型

文心 4.0 / 讯飞星火 / 腾讯混元

SDK 完备、适合集成到企业系统

2. API key(必备)

申请API接口的流程通常包括以下步骤:

选择合适的API平台、

注册并获取API密钥、

阅读文档和示例代码、

测试和集成。

其中,选择合适的API平台是最关键的一步,因为不同的平台提供的API功能和支持可能有所不同。选择一个符合你需求的平台能大大提高开发效率和效果。

获取方法:

  1. 1.访问 ChatGPT 官方接口平台:https://platform.openai.com

较为麻烦且,费用高,支付方式不友好(如果你本身就有就直接用)

  1. 2. 用国内模型的官方接口,便宜好用,充值方便。如(deepseek,通义千问等)
  1. DeepSeek

    https://platform.deepseek.com/usage
  1. 3.用第三方接口平台:https://sg.uiuiapi.com(推荐使用!注册免费送0.3美元的额度,能 调用好几百次,且聚合了多种模型,足够测试使用)

3. 云端 API 调用示例:OpenAI

安装 SDK:

! pip install openai#安装openai包
! pip install dotenv#安装读取环境变量的包

从环境变量读取API KEY和BASE:

OPENAI_API_KEY=sk-J#换成你的APIKEY
OPENAI_API_BASE=https://sg.uiuiapi.com/v1#用uiuiapi这行可以不用修改
importos

# 加载 .env 文件
load_dotenv('你的openai.env的绝对路径', override=True)

# 定义环境变量
API_KEY = os.getenv("OPENAI_API_KEY"))
API_BASE = os.getenv("OPENAI_API_BASE"))

调用示例(最新版用法):

fromopenaiimportOpenAI
# 初始化 OpenAI 服务。
client = OpenAI(
api_key = API_KEY,# 换成你的API KEY
base_url = API_BASE# API 请求地址,可以是 OpenAI 官网,也可以是代理地址
)
# 调用 GPT-4o-mini 模型
response = client.chat.completions.create(
model ="gpt-4o-mini",
messages = [{"role":"system","content":"用三句话介绍一下你自己"}]
)
print(response.choices[0].message.content)
我是一个人工智能助手,专注于提供信息和解决问题。我的目标是帮助用户找到所需的答案,并提供有用的建议。无论你有什么问题,我都会尽力为你提供支持。

其它云端API的调用方法一样,只需要替换.env文件里的API key 和URL即可。

五、本地 + 云端:用统一的“LLM 封装层”管理多个模型

现实中,我们经常会有这种需求:

  • • 日常小任务、本地模型够用
  • • 关键任务、追求效果时,用 GPT-4 / 更强的云端模型
  • • 甚至根据任务自动选择:翻译 → 某模型,写代码 → 另一个模型

这个时候比较推荐的做法是:在自己项目里写一层统一的 LLM 封装,对外只暴露一个方法:

defllm_chat(provider, prompt, **kwargs):
...

比如简单示意:

# 定义chat_with_ollama
defchat_with_ollama(prompt, model="deepseek-r1:1.5b"):
response = client.chat(
model=model,
messages=[
{"role":"user","content": prompt}
]
)
returnresponse['message']['content']
#定义chat_with_openai
defchat_with_openai(prompt, model="gpt-4.1-mini"):
client = OpenAI(api_key=API_KEY,
base_url=API_BASE")
r = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}]
)
return r.choices[0].message.content
#封装
def llm_chat(provider, prompt, **kwargs):
if provider == "ollama":
return chat_with_ollama(prompt, model=kwargs.get("model", "deepseek-r1:1.5b"))
elif provider == "openai":
return chat_with_openai(prompt, model=kwargs.get("model", "gpt-4.1-mini"))
else:
raise ValueError("未知 provider,请使用 ollama/openai/qwen/deepseek")

这样,你只需要在任务代码里写:

text = llm_chat("ollama","用三句话介绍一下你自己")
code = llm_chat("openai","写一段 Python 代码计算1-100的和")
print("文本回答:", text)
print("代码回答:", code)

输出结果

文本回答: 我是一个人工智能助手,旨在帮助用户解答问题和提供信息。我的知识覆盖广泛,从科学和技术到文化和历史。虽然我没有情感,但我可以根据用户的需求提供有用的建议和支持。
代码回答: ```python
total =sum(range(1,101))
print(f"1 到 100 的和是:{total}")
就完成了**“本地+云端混合大模型架构”**。


总结一下:

  • 本地部署(Ollama)让我们可以在自己的电脑上跑大模型,数据不出本机;
  • 通过 HTTP API,我们可以像调 OpenAI 一样调本地模型,接入任何应用;


回复

使用道具 举报

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

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ