Skip to content
The Second Culture
Go back
调用本地 Gemma 4 提取结构化数据

昨天 Google 发布了开源大预言模型 Gemma 4 的系列模型。这次开源协议有所变更,对企业应用更加友好,Google 显然也有其在开源生态上的目的。 但对普通开发者来说,最直观的利好是本地部署的门槛进一步降低了。

以我手头的 Mac M4 16G 版本为例,本地直接跑 e4b(40 亿参数)尺寸的小模型毫无压力,日常用它来执行一些简单的 NLP 任务刚好够用。

在终端通过 Ollama 启动服务之后,我们可以直接在 R 中进行调用。 不需要安装复杂的深度学习环境,只用原生的 httr2 包就能完成请求,并让模型输出规范的 JSON 数据。

library(httr2)
ask_gemma_json <- function(prompt) {
  req <- request("http://localhost:11434/api/generate") |>
    req_body_json(list(
      model = "gemma4:e4b", 
      prompt = prompt,
      stream = FALSE,
      format = "json", # 强迫症福音:只允许输出合法的 JSON 格式
      options = list(temperature = 0.0)
    ))
  
  resp <- req_perform(req)
  
  # 因为返回的是标准 JSON 字符串,我们可以直接用 jsonlite 把它变成 R 的 List
  json_str <- resp_body_json(resp)$response
  jsonlite::fromJSON(json_str)
}

# 测试结构化提取
prompt_json <- "提取这句话中的公司名和情感得分(1-10分),并严格以JSON格式输出,键名为 company 和 score。句子:苹果公司本季度营收大涨,超出华尔街预期。"

structured_data <- ask_gemma_json(prompt_json)
# > structured_data
# $company
# [1] "苹果公司"
#
# $score
# [1] 8

在上面的 API 调用中,能够实现快速响应,主要归功于以下两点参数控制:


Share this post on:

Previous Post
写在 AI 浪潮降温的前夜
Next Post
拒绝流水线,做驱动商业价值的“AI 统计学家”