尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

OneUptime LLM 提供商配置实战:从数据模型到集群内 vLLM 的完整落地指南

OneUptime LLM 提供商配置实战:从数据模型到集群内 vLLM 的完整落地指南 OneUptime LLM 提供商配置实战从数据模型到集群内 vLLM 的完整落地指南【免费下载链接】oneuptimeComplete open-source monitoring and observability platform.项目地址: https://gitcode.com/GitHub_Trending/on/oneuptime本文基于 OneUptime 官方文档《LLM-Anbieter》(LLM 提供商指南)系统讲解如何在 OneUptime 中接入、配置和排障各类 LLM 提供商覆盖 7 种提供商类型的选型表、逐字段的数据模型、项目级与全局提供商的解析规则以及通过 Helm 在 Kubernetes 集群内部署 vLLM 本地推理服务的完整流程。读完本文你可以独立完成任意提供商的接入并理解 OneUptime 底层请求重试、参数自适应与安全出网控制等实现机制。LLM 提供商支撑哪些 AI 功能OneUptime 允许接入多家大模型提供商为平台内的 AI 功能提供推理能力。根据官方文档接入提供商后你可以获得以下自动化能力事件笔记Incident Notes自动生成详细的事件笔记与更新通知笔记为通知生成有意义的描述与上下文计划维护笔记自动为维护事件生成说明事件复盘报告Postmortem自动起草完整的事件复盘报告代码改进建议当你的代码仓库接入 OneUptime 后平台会使用你配置的提供商分析遥测数据日志、追踪、指标、异常并提出代码改进建议。对于OneUptime SaaS云托管版用户平台默认提供一个已配置好的全局 LLM 提供商无需任何额外配置即可使用全部 AI 功能如果你希望使用自己的 API 密钥或指定提供商仍可按本文流程创建自定义提供商。LlmProvider 数据模型每个配置项意味着什么提供商配置在 OneUptime 中是一个完整的数据库实体定义见 LlmProvider 模型。理解每个字段的约束是正确填写表单的前提字段类型/约束说明name必填Name该 LLM 配置的友好名称如 Production OpenAI、Local Ollamadescription可选LongText用于区分该提供商用途的描述slug必填由name自动生成全局唯一标识llmType必填提供商类型OpenAI、AzureOpenAI、Anthropic、Groq、Mistral、Ollama、OpenAICompatibleapiKey可选加密存储对 OpenAI、Azure OpenAI、Anthropic、Groq、Mistral 必填Ollama 与 OpenAI Compatible 可选。从列级访问控制看读取该字段仅限 Project Owner 与 ProjectAdmin其余角色仅能写modelName可选要使用的模型名如gpt-4o、claude-3-opus-20240229、llama2baseUrl可选ShortURLAzure OpenAI、Ollama、OpenAI Compatible 必填其他提供商可选additionalParams可选JSON额外透传给提供商 API 的参数对象最后合并、覆盖默认值例如为推理模型指定max_completion_tokensprojectId可选归属项目为 null 时是全局提供商isGlobalLlm true时对所有项目可见isDefault默认 false是否为项目默认提供商设为 true 后全局提供商将不被该项目使用costPerMillionTokensInUSDCents默认 0每百万 token 成本美分用于全局提供商的计费场景其中llmType的取值由 LlmType 枚举 固定为 7 种OpenAICompatible在源码注释中明确覆盖 vLLM、LocalAI、LM Studio、text-gen-webui 等“说 OpenAI/chat/completions协议、通常自托管在自定义 Base URL 且常常无需密钥”的服务。支持哪些提供商选型速查表提供商说明API 密钥Base URLOpenAIGPT-4、GPT-4o、GPT-3.5 Turbo 等必填否使用默认Azure OpenAI部署在你自己 Azure 环境中的 OpenAI 模型必填必填AnthropicClaude 3 Opus / Sonnet / Haiku 等必填否使用默认GroqLlama、Mixtral 等开放模型的高快推理必填否使用默认MistralMistral 托管模型必填否使用默认Ollama自托管开源模型Llama 2、Mistral、CodeLlama 等否必填OpenAI Compatible任何 OpenAI 兼容服务器vLLM、LocalAI、LM Studio 等否可选必填创建提供商标准操作步骤步骤 1进入提供商设置登录 OneUptime 仪表盘进入AI AgentsAI 代理 LLM ProvidersLLM 提供商点击Create LLM Provider创建 LLM 提供商。步骤 2填写配置字段Name便于理解的名字如 Production OpenAI、Local OllamaDescription可选说明该提供商的用途LLM TypeOpenAI、Azure OpenAI、Anthropic、Groq、Mistral、Ollama 或 OpenAI CompatibleAPI Key对 OpenAI/Azure OpenAI/Anthropic/Groq/Mistral 必填对 Ollama 与 OpenAI 兼容服务器可选Model Name具体模型名如gpt-4o、claude-3-opus-20240229、llama2Base URL可选自定义 API 端点 URL。Azure OpenAI、Ollama、OpenAI Compatible 必填其余可选。保存后可以使用提供商条目上的Test测试按钮验证连接、模型名与 Base URL 是否正确——前端测试逻辑实现在 TestLLMProvider 工具。默认值的两个隐藏行为来自服务端 HookLlmProviderService 在创建与更新时注入了两条默认规则表单上不会直接提示但直接影响行为新建即默认onBeforeCreate中若未显式指定isDefault新提供商会被自动设为项目默认isDefault true默认互斥当某提供商被设为isDefault时同项目内其他提供商的isDefault会被自动置为 false创建与更新两条路径均保证项目内至多一个默认。分提供商配置示例OpenAI从 OpenAI 平台获取 API 密钥LLM Type 选择OpenAI填入 API 密钥选择模型名常见取值gpt-4o— 能力最强适合复杂任务gpt-4o-mini— 更快、成本更低gpt-4-turbo— 性能与速度均衡gpt-3.5-turbo— 快速且经济。Name: Production OpenAI LLM Type: OpenAI API Key: sk-xxxxxxxxxxxxxxxxxxxx Model Name: gpt-4oAnthropic从 Anthropic Console 获取 API 密钥LLM Type 选择Anthropic填入 API 密钥常见模型取值claude-3-opus-20240229— 能力最强claude-3-sonnet-20240229— 智能与速度均衡claude-3-haiku-20240307— 最快、最紧凑claude-3-5-sonnet-20241022— 更新的 Sonnet 模型。Name: Production Anthropic LLM Type: Anthropic API Key: sk-ant-xxxxxxxxxxxxxxxxxxxx Model Name: claude-3-5-sonnet-20241022Ollama自托管Ollama 允许你在本地或自己的基础设施上运行开源 LLM安装 Ollamaollama.ai下载模型ollama pull llama2确认 Ollama 已启动且可从 OneUptime 服务器访问LLM Type 选择Ollama填写 Base URL如http://localhost:11434填写已下载的模型名。Name: Local Ollama LLM Type: Ollama Base URL: http://localhost:11434 Model Name: llama2常用 Ollama 模型llama2Meta Llama 2、llama3Meta Llama 3、mistralMistral AI、codellama代码向 Llama、mixtralMixture-of-Experts。OpenAI CompatiblevLLM、LocalAI、LM Studio 等任何实现了 OpenAI/chat/completions协议但不是 OpenAI 本身的服务器都走这个类型启动你的 OpenAI 兼容服务器记下 Base URL通常以/v1结尾LLM Type 选择OpenAI Compatible填写Base URL必填如http://your-server:8000/v1填写Model Name必填——必须与服务器提供的模型完全一致API Key仅在服务器要求鉴权时填写无密钥服务器留空。无密钥 vLLM 示例Name: Self-Hosted vLLM LLM Type: OpenAI Compatible Base URL: http://vllm.internal:8000/v1 Model Name: meta-llama/Llama-3.1-8B-Instruct API Key: 留空提示保存后务必用提供商条目上的Test按钮验证连接、模型名与 Base URL。Base URL 的容错处理LLMService 中buildOpenAICompatibleChatCompletionsUrl会把各种填写习惯归一化到正确端点——已经是完整端点.../chat/completions则原样使用带路径.../v1则追加/chat/completions只填了服务器根地址http://host:8000则自动补上/v1/chat/completionsvLLM、LocalAI 等默认在/v1下暴露 API漏填/v1是最常见错误会得到{detail:Not Found}。该逻辑还处理了 query/fragment 剥离与尾部斜杠清理避免拼出.../v1//chat/completions。提供商解析规则项目默认、全局与“项目自有”AI 功能实际使用哪个提供商由 LlmProviderService 的一组方法决定理解它们可以解释很多“配置了却不生效”的现象getLLMProviderForProject通用解析先查项目的isDefault true提供商查不到再回退到projectId null isGlobalLlm true的全局提供商。这印证了文档中“SaaS 全局提供商开箱即用、自定义提供商一旦设为项目默认即接管”的描述getProjectOwnedLlmProvider项目自有解析只认项目自己的提供商先默认、否则按创建时间取第一个永远不回退到全局——项目级 AI Agent 等场景走的就是这条规则这也是“项目级 AI Agent 不能使用全局提供商、必须配置项目级提供商”这一产品规则的实现来源对应测试见 LlmProviderProjectOwned.test.ts;getLlmProviderForMeteredAgentPath计量 Agent 路径服务端中介的/ai-agent-data/llm-completion端点走AIService.executeWithLogging调用会记入LlmLog使用全局提供商时按 token 计量计费并受每日自主 token 预算约束。此路径上项目自有提供商优先无自有提供商时云版本也会回落到全局提供商isProviderUsableByProject可用性谓词所有接受调用方指定llmProviderId的入口统一经过该判断——全局提供商对所有人可用项目自有提供商仅对本项目可用ID 不存在、不属于本项目或不是合法 UUID 时返回 false 而不是抛错避免 Postgres 类型转换异常。此外getProviderForChat支持在聊天中显式指定提供商若指定的提供商已删除或无权使用则自动回退到默认解析保证会话不会因提供商“消失”而中断。集群内部署 vLLMHelm 方式如果你用 Helm 部署 OneUptime 自托管版可以在集群内运行 vLLM 这类 OpenAI 兼容推理服务器让数据完全不出自己的基础设施。相关配置集中在 values.yaml 的 vllm 段Kubernetes 清单模板见 vllm.yaml。最小启用配置需要 NVIDIA GPU 节点vllm: enabled: true model: Qwen/Qwen2.5-1.5B-Instruct默认值要点摘自 values.yaml 注释enabled: false默认关闭启用需节点安装 NVIDIA device plugin 或 GPU Operatorimage.tag: v0.24.0固定 vLLM 版本镜像 10GB节点首次拉取较慢model默认Qwen/Qwen2.5-1.5B-Instruct——Apache-2.0 许可且非 gated无需 HuggingFace tokenservedModelName为空时OneUptime 表单里的 Model Name 必须填完整的 HuggingFace 模型 IDtoolCalling.enabled: true默认开启并注入--enable-auto-tool-choice --tool-call-parserhermeshermes适配默认 Qwen2.5 模型家族。这一点至关重要OneUptime 的 AI Copilot 与 AI Agent 都依赖 OpenAI 风格 tool call未开启时所有请求会返回 400auto tool choice requires --enable-auto-tool-choice and --tool-call-parser to be set更换模型家族时需同步更换 parser如 Llama 用llama3_json/pythonicMistral 用mistralpersistence: { enabled: true, size: 50Gi }为模型权重与编译缓存提供持久卷每副本一个 PVC注意volumeClaimTemplates不可变改 size/storageClass 需按文档重建 StatefulSetresources.limits默认请求 1 块nvidia.com/gpu——无 GPU 节点时 Pod 会保持 Pending 而非 crash-loop这是刻意的清晰信号vllm.globalProvider.enabled默认true启动时自动把该 vLLM 注册为全局 LLM 提供商默认名 OneUptime AI所有项目的 AI 功能无需手工配置即可工作该提供商由环境变量声明式管理关闭vllm.enabled或globalProvider.enabled会在下次部署时移除自动注册的条目且手动修改其受管字段名称、描述、类型、模型、Base URL、密钥会被覆盖。部署与验证步骤在 Helm values 中启用vllm并指定model执行helm upgrade等待 vLLM Pod Ready首次启动会下载模型若自动注册生效默认全局 AI 功能即刻可用注意产品规则项目级 AI Agent 不能使用全局提供商仍需为项目单独创建一个指向该 vLLM 的项目级提供商。关闭自动注册时的手工配置vllm.globalProvider.enabled: falseLLM Type 选择OpenAI CompatiblevLLM 讲 OpenAI 协议Base URL 填集群内部地址http://release-vllm.namespace.svc.cluster.local:8000/v1Model Name 填完整 HuggingFace 模型 ID或vllm.servedModelName若已设置仅在设置了vllm.apiKey时填写 API Key无密钥部署留空。Name: In-Cluster vLLM LLM Type: OpenAI Compatible Base URL: http://oneuptime-vllm.default.svc.cluster.local:8000/v1 Model Name: Qwen/Qwen2.5-1.5B-Instruct API Key: 未设置 vllm.apiKey 时留空GPU 调度、gated 模型需vllm.huggingFace.token与调优选项--max-model-len、--gpu-memory-utilization、--tensor-parallel-size等通过vllm.extraArgs注入详见 Helm Chart 的 README 与 values.yaml 内注释。调用链路原理重试、参数自适应与出网防护配置保存后实际请求由 LLMService 发出。几项工程细节解释了为什么自托管与商用端点行为会有差异按类型分发getCompletion把 OpenAI、Groq、Mistral、OpenAICompatible 统一走 OpenAI 兼容线协议Azure OpenAI、Anthropic、Ollama 各自独立实现重试策略每次调用默认最多 10 次尝试DEFAULT_REQUEST_ATTEMPTS 10指数退避且上限 8 秒整体重试预算默认 5 分钟且只对“重试有意义”的瞬时错误429、连接拒绝、502 等消耗重试——密钥错误、模型不存在这类每次必败的错误不会浪费重试梯错误驱动的请求自适应不同模型家族对生成参数要求不同如推理模型拒绝max_tokens只认max_completion_tokens旧模型相反。服务采用“让提供商报错→按错误修正参数→重发”的策略并把每个端点实际接受的参数组合缓存在进程内TTL 1 小时、上限 500 条因此只有每个提供商的首次完成会付出探测成本出网防护Egress Guard由于baseUrl对普通项目成员可写而apiKey仅 Owner/Admin 可读未加防护的请求可能让成员把端点改指到可控主机、从鉴权头收集解密密钥。buildGuardedRequestOptions通过DataSourceEgressGuard在验证时即把目标地址固定到 socket 并拒绝重定向自托管场景下内网地址保持可达自托管 Ollama 部署在 10.x 是文档化场景相关行为由 LLMServiceEgressGuard.test.ts 等测试覆盖additionalParams的 fail-closed 白名单对受保护的无人值守完成提供商配置的额外参数只允许保留纯生成类字段temperature、top_p、stop、response_format、max_completion_tokens等tools、stream等能力字段被拒绝防止配置侧悄悄放大请求能力Ollama 线协议对model、messages、tools、stream四个保留键同样不可被覆盖。Base URL 归一化、模型兼容性、重试策略等都有对应测试LLMServiceBaseUrl.test.ts、LLMServiceModelCompatibility.test.ts、LLMServiceRetryPolicy.test.ts。自定义 Base URL 的适用场景企业部署或经由代理访问时可以指定自定义 Base URLAzure OpenAI使用你的 Azure 端点 URLOpenAI 兼容 API任何遵循 OpenAI API 规范的接口私有 Ollama 实例内网 Ollama 服务器地址。最佳实践使用描述性名称如 Production GPT-4、Development Ollama便于在聊天切换器getSelectableProvidersForProject同时列出项目提供商与全局提供商中识别保护 API 密钥密钥加密存储且读取权限仅限 Owner/Admin但仍不要分享配置后立即测试用提供商条目的 Test 按钮确认连接、模型名与 Base URL 正确监控用量关注 API 用量以控制成本使用全局提供商计费时costPerMillionTokensInUSDCents字段决定了每百万 token 的计价。故障排查连接问题OpenAI / Anthropic确认 API 密钥有效且有额度Ollama确认 Ollama 服务已启动、Base URL 正确OpenAI Compatible确认 Base URL 以/v1结尾或与你服务器实际路径一致、模型名与服务器提供的模型完全匹配、且仅在服务器要求时填写 API 密钥防火墙确认网络放行到提供商 API 的出向连接。模型未找到检查模型名拼写Ollama确认已执行ollama pull model-name下载模型确认模型在你的区域可用部分模型有区域限制。延伸阅读提供商实体与权限模型LlmProvider.ts提供商解析与默认规则LlmProviderService.ts请求协议、重试与安全LLMService.ts提供商类型枚举LlmType.ts集群内 vLLM 部署配置values.yaml 与 Helm README服务层行为测试LlmProviderUsableByProject.test.ts、LlmProviderProjectOwned.test.ts【免费下载链接】oneuptimeComplete open-source monitoring and observability platform.项目地址: https://gitcode.com/GitHub_Trending/on/oneuptime创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表