尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Karakeep(Hoarder)自动打标签的 OpenAI 成本详解:文本与图片推理的费用构成与优化配置

发布时间:2026/9/11 18:10:01

资讯中心
01
ARTICLE

Karakeep(Hoarder)自动打标签的 OpenAI 成本详解:文本与图片推理的费用构成与优化配置

Karakeep(Hoarder)自动打标签的 OpenAI 成本详解:文本与图片推理的费用构成与优化配置
KarakeepHoarder自动打标签的 OpenAI 成本详解文本与图片推理的费用构成与优化配置【免费下载链接】hoarderA self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search项目地址: https://gitcode.com/GitHub_Trending/ho/hoarder本篇指南以项目文档 06-openai.md 为骨架深入讲解 Karakeep原 Hoarder在启用 AI 自动打标签Automatic Tagging时调用 OpenAI 所产生的费用构成、两种推理类型文本与图片的计费特点并结合仓库源码说明如何通过环境变量精确控制成本。读完本文你将掌握文本/图片标签推理的模型选型、成本估算方法以及INFERENCE_*系列配置项对费用与效果的实际影响。一、自动打标签为什么会产生 OpenAI 费用Karakeep 是一款自托管的收藏一切应用链接、笔记与图片其核心卖点之一就是基于 AI 的自动标签AI-based automatic tagging。当自动打标签功能开启时服务会调用 LLM 对收藏内容执行推理而每次推理都会消耗 token从而产生费用。从源码看推理能力的启用条件非常明确在 packages/shared/config.ts 中inference.isConfigured被定义为!!val.OPENAI_API_KEY || !!val.OLLAMA_BASE_URL也就是说设置OPENAI_API_KEY或兼容的 OpenAI 端点即可启用基于 OpenAI 的推理设置OLLAMA_BASE_URL则切换为本地 Ollama 推理不产生 OpenAI 费用但需要自有算力。同时INFERENCE_ENABLE_AUTO_TAGGING默认值为true见 packages/shared/config.ts意味着只要配置了 API Key自动打标签默认就是开启的——这也是新手最容易忽略、最先产生账单的地方。Karakeep 的推理分两类文本打标签Text Tagging与图片打标签Image Tagging两者使用不同的模型与计费策略下面分别展开。二、文本打标签Text Tagginggpt-4.1-mini 与成本估算在 v0.28.0 版本中文本打标签默认使用gpt-4.1-mini模型参见 version-v0.28.0/03-configuration.md 中INFERENCE_TEXT_MODEL的默认值。该模型定位为低成本、高吞吐非常适合标签生成这类短输出任务。文档给出的成本经验值是大约 3000 条书签的标签生成费用不到 1 美元。需要说明的是这是roughly粗略的估算单次推理的实际费用取决于每篇文章的内容体量——内容越长送入模型的 token 越多费用越高。值得注意的是随着版本演进文本模型的默认值已经发生变化当前主干代码packages/shared/config.ts中INFERENCE_TEXT_MODEL默认已变为gpt-5.6-luna当前文档 docs/docs/06-administration/03-openai.md 给出的估算也相应提升到 6000 条书签不到 1 美元。以你部署的版本对应的文档为准估算量级会随模型定价与内容长度浮动。文本推理的底层调用链文本打标签的完整流程在 apps/workers/workers/inference/tagging.ts 中实现runTagging检查全局配置INFERENCE_ENABLE_AUTO_TAGGING与用户级偏好autoTaggingEnabled命中任一关闭即跳过buildPrompt拼装提示词对链接书签取URL Title Description Content对文本书签直接取正文提示词最终经由 packages/shared/prompts.server.ts 的buildTextPrompt构造其中会先计算提示词模板自身的 token 数再用INFERENCE_CONTEXT_LENGTH减去模板占用的部分剩余额度用于截断正文truncateContent——正文永远会被裁剪到上下文窗口之内最终调用 packages/shared/inference.ts 中OpenAIInferenceClient.inferFromText走chat.completions.create完成推理并把usage.total_tokens返回给上层记录日志。日志中会明确打印单次推理消耗的 token 数[inference][jobId] Inferring tag for bookmark ... used 1234 tokens and inferred: [tag1, tag2]对应 apps/workers/workers/inference/tagging.ts这对你核对账单、估算费用非常有帮助。三、图片打标签Image Tagginggpt-4o-mini 与低分辨率模式对于上传的图片Karakeep 使用gpt-4o-mini模型提取标签INFERENCE_IMAGE_MODEL默认值见 packages/shared/config.ts。图片推理的计费与文本不同OpenAI 对视觉输入按图片的 token 消耗计费而 token 数取决于图片分辨率模式。低分辨率模式low resolution是成本关键文档明确指出为了降低成本Karakeep 使用低分辨率模式low resolution mode即无论图片多大都消耗固定数量的 token。这一点在源码中得到直接印证——packages/shared/inference.ts 中inferFromImage构造消息时图片被以 base64 内联data:${contentType};base64,${image}并通过detail: low明确指定了低分辨率模式{ type: image_url, image_url: { url: data:${contentType};base64,${image}, detail: low, }, }配合该策略文档给出的经验值是1000 张图片的标签推理费用不到 1 美元。图片推理的完整链路图片打标签流程同样位于 apps/workers/workers/inference/tagging.ts 的inferTagsFromImage中通过readAsset读取用户资产asset若为 GIF 则直接跳过GIF 不做视觉推理将图片二进制转为 base64 字符串调用inferenceClient.inferFromImage传入图片 MIME 类型与 base64 数据推理结果按openAIResponseSchema{ tags: z.array(z.string()) }解析并从结果中剥离#前缀、去除首尾空白后落库。此外PDF 书签也走文本推理路径inferTagsFromPDF提取的文本内容同样受INFERENCE_CONTEXT_LENGTH截断约束。四、控制成本的配置清单与参数说明费用 单次推理成本 × 推理次数。Karakeep 提供了丰富的环境变量来控制这两个维度。以下是 v0.28.0 文档version-v0.28.0/03-configuration.md与当前主干 packages/shared/config.ts 中与推理成本直接相关的配置项汇总环境变量默认值v0.28.0说明与成本影响OPENAI_API_KEY未设置启用 OpenAI 推理的必需项不设置则自动打标签被跳过INFERENCE_TEXT_MODELgpt-4.1-mini文本推理模型直接决定单次推理单价INFERENCE_IMAGE_MODELgpt-4o-mini图片推理模型需支持视觉 APIINFERENCE_CONTEXT_LENGTH2048送入模型的 token 上限正文超出部分被截断。调大提升标签质量但直接抬高单次费用OpenAI 按 token 计费Ollama 则消耗更多本地资源INFERENCE_MAX_OUTPUT_TOKENS2048模型最大输出 token 数控制标签/摘要等生成内容的长度上限INFERENCE_LANGenglish标签生成语言INFERENCE_ENABLE_AUTO_TAGGINGtrue总开关置为false可完全停用 AI 打标签零推理费用INFERENCE_ENABLE_AUTO_SUMMARIZATIONfalseAI 摘要开关默认关闭开启会增加推理次数INFERENCE_NUM_WORKERS1并发推理 worker 数调高加快吞吐不改变单次费用INFERENCE_JOB_TIMEOUT_SEC30推理任务超时慢模型/弱 GPU 可调大INFERENCE_OUTPUT_SCHEMAstructured结构化输出模式structured/json/plain影响模型返回格式的稳定性INFERENCE_USE_MAX_COMPLETION_TOKENSfalsev0.28.0是否使用新版max_completion_tokens参数GPT-5 / o 系列模型需要OPENAI_SERVICE_TIER未设置可选auto/default/flexflex以更慢响应换取更低价格OPENAI_REASONING_EFFORT未设置推理模型的可选思考强度none/minimal/low/medium/high/xhighOPENAI_BASE_URL未设置指向任意 OpenAI 兼容端点Azure、Ollama/v1、OpenRouter 等可切换为更廉价的第三方模型OPENAI_PROXY_URL未设置走 HTTP 代理访问 OpenAI API便于受网络限制的环境以上变量的完整解析逻辑集中在 packages/shared/config.tsINFERENCE_*、OPENAI_*系列在 L76-L113 定义是最权威的参数字典。成本控制实践建议先确认是否真的需要 AI 打标签若你的收藏以人工标签为主将INFERENCE_ENABLE_AUTO_TAGGINGfalse可立即把推理费用归零控制INFERENCE_CONTEXT_LENGTH这是影响单次文本推理费用最大的旋钮。文档提醒其默认值偏小调大能提升标签质量但费用与算力开销随之上升建议按内容平均长度逐步试探图片保持低分辨率模式Karakeep 已默认使用detail: low无需额外配置也无需自行压缩图片监控单次 token 消耗从推理日志中读取used N tokens字段结合模型单价即可精确估算月度账单善用INFERENCE_NUM_WORKERS并发数不影响单价但在批量补打标签对历史书签批量重跑时可显著缩短总耗时减少峰值期焦虑考虑替代提供方若想进一步压低成本可将OPENAI_BASE_URL指向 OpenRouter、Perplexity、Cloudflare Workers AI 等 OpenAI 兼容端点或直接用本地 OllamaOLLAMA_BASE_URL实现零 API 费用详见 docs/docs/03-configuration/02-different-ai-providers.md。五、写在最后费用之外的注意事项标签质量与模型强相关文档明确警告标签质量取决于所选模型的质量追求极致成本时不要牺牲可用性推理失败也会计费风险源码中parseJsonFromLLMResponse对模型返回做了多层 JSON 兜底解析apps/workers/workers/inference/tagging.ts若模型未按预期返回 JSON任务会报错但 token 已消耗——选择支持结构化输出的模型INFERENCE_OUTPUT_SCHEMAstructured可显著降低此类重试成本版本间默认模型会变化本文以 v0.28.0 文档的gpt-4.1-mini为基线展开若你运行的是更新版本请以对应版本的 docs/docs/06-administration/03-openai.md 与 packages/shared/config.ts 中的默认值为准重新估算。通过理解文本按 token 计费、图片按低分辨率固定 token 计费这两条主线再配合INFERENCE_*配置的精细调优你完全可以在保持自动打标签体验的同时把 OpenAI 账单控制在极低水平。【免费下载链接】hoarderA self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search项目地址: https://gitcode.com/GitHub_Trending/ho/hoarder创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。