拓冰建站拓冰建站
首页 / 资讯中心 / 正文

big-AGI 接入 Meta AI Muse 模型:OpenAI Responses 方言下的模型目录、请求契约与流式解析实践指南

big-AGI 接入 Meta AI Muse 模型OpenAI Responses 方言下的模型目录、请求契约与流式解析实践指南【免费下载链接】big-AGIAI suite powered by state-of-the-art models and providing advanced AI/AGI functions. Includes AI personas, AGI functions, world-class Beam multi-model chats, text-to-image, voice, response streaming, code highlighting and execution, PDF import, presets for developers, much more. Deploy on-prem or in the cloud.项目地址: https://gitcode.com/GitHub_Trending/bi/big-AGIMeta Model API产品名 Meta AI位于 dev.meta.ai通过https://api.meta.ai/v1以 Bearer Key 方式对外提供 Muse 系列模型。在 big-AGI 中metaai是少数几个只走 OpenAI Responses 方言的厂商之一所有 Meta 模型统一经 Responses 适配器与解析器驱动并拥有独立的_vnd命名空间存放厂商私有的推理连续性状态。本文以仓库知识库文档 kb/modules/LLM-metaai-responses.md 为主体结合 chatGenerate.dispatch.ts、openai.responsesCreate.ts、openai.responses.parser.ts 与 aix.wiretypes.ts 等源码完整拆解 Meta 模型的目录结构、请求参数边界、流式事件形态、错误与 CORS 行为以及哪些能力被刻意排除在集成范围之外——文中所列行为均为 2026-09-02 在真实链路上实测所得凡与官方文档冲突之处均已标注。一、集成架构Meta 模型为什么必须走 Responses 方言1.1RESPONSES_ONLY_DIALECTS只提供 Responses API 的方言集合big-AGI 的 AIX 通信框架针对不同厂商方言进行请求分派逻辑集中在 chatGenerate.dispatch.ts。其中定义了一个关键集合const RESPONSES_ONLY_DIALECTS: ReadonlySetOpenAIDialects new SetOpenAIDialects([ metaai, // Meta Muse models: Responses is the only Meta surface carrying reasoning across turns sakanaai, xai, ]);代码注释src/modules/aix/server/dispatch/chatGenerate/chatGenerate.dispatch.ts#L36-L41给出了 Meta 被归入该集合的直接原因Responses 是 Meta 侧唯一能在多轮对话间携带推理状态reasoning的接口面。虽然 Chat Completions 与 Anthropic Messages 在api.meta.ai上同样被提供服务但只有 Responses 方言能保留推理连续性。分派逻辑chatGenerate.dispatch.ts的判断条件为const isResponsesAPI !!model.vndOaiResponsesAPI || RESPONSES_ONLY_DIALECTS.has(dialect);即要么单个模型显式声明vndOaiResponsesAPI要么所属方言整体只走 Responses——metaai属于后者。命中后请求体由aixToOpenAIResponses(dialect, model, chatGenerate, streaming, enableResumability)构造解析器则按流式/非流式分别使用createOpenAIResponsesEventParser(responsesVendor)与createOpenAIResponseParserNS(responsesVendor)。1.2 厂商注册与密钥/主机解析Meta AI 在厂商注册表中以ModelVendorMetaAI身份存在src/modules/llms/vendors/metaai/metaai.vendor.ts核心信息id: metaaidisplayGroup: cloudinstanceLimit: 1服务端下发的密钥形如LLM_digits_secret48 字符文档中打印的格式是LLM|digits|secretvalidateSetup对两种分隔符均接受校验规则为startsWith(LLM)且长度 ≥ 20csfAvailable只在配置了密钥时为真即支持客户端直连CSF模式。密钥与主机的最终解析位于 openai.access.ts 的case metaai分支let metaaiKey access.oaiKey || env.METAAI_API_KEY || ; const metaaiHost llmsFixupHost(access.oaiHost || env.METAAI_API_HOST || DEFAULT_METAAI_HOST, apiPath); metaaiKey llmsRandomKeyFromMultiKey(metaaiKey); if (!metaaiKey || !metaaiHost) throw new TRPCError({ code: BAD_REQUEST, message: Missing Meta AI API Key or Host... }); return { headers: { Authorization: Bearer ${metaaiKey}, Content-Type: application/json }, url: metaaiHost apiPath, };支持多密钥随机轮换llmsRandomKeyFromMultiKey密钥缺失时抛出明确的BAD_REQUEST。部署侧可通过环境变量METAAI_API_KEY注入docs/environment-variables.md 标注为可选K8s 部署模板 docs/k8s/env-secret.yaml 亦预留了该字段。1.3_vnd命名空间厂商私有的推理连续性状态metaai同时是AixWire_Vendors.RSP_VENDORS之一aix.wiretypes.tsexport const RSP_VENDORS [metaai, openai, sakanaai, xai] as const satisfies (keyof DMessageFragmentVendorStateKnown)[];这些厂商共享 OpenAI Responses 的线上格式但各自持有独立的_vnd命名空间用于存放连续性状态。_RspVndState_schemaaix.wiretypes.ts定义了两种状态字段reasoningItem{ id?, encryptedContent? }——推理条目的续接句柄对应上游输出条目中的rs_...id 与include: [reasoning.encrypted_content]返回的加密 blobphasecommentary | final_answer——助理消息的阶段标记。关键约束这些 blob 是厂商服务端私有的不同密钥、不同服务端状态必须原路回到同一厂商才能被识别。解析器以实际厂商标签命名空间openai.responses.parser.ts适配器只读取自己命名空间下的 key混用会导致 OpenAI 侧 404Item with id rs_... not found、Meta 侧 400not found or has expired之类的错误。metaai的行写入 chat.fragments.ts 的片段状态镜像 key 保持与RSP_VENDORS同步。二、模型目录与定价CatalogGET /v1/models共返回 7 个模型 id全部为created: 0且不携带 type/modality 字段因此pubDate只能走编辑性维护参见 LLM-editorial-pubdate.md 中 Meta AI 的 Hybrid 条目。目录结构如下用途模型 id说明对话Chatmuse-spark-1.3/muse-spark-1.2/muse-spark-1.1三个版本对话Contributor 变体muse-spark-1.3-contributor/muse-spark-1.2-contributor仅 1.3 与 1.2 有 Contributor 孪生型号图像输出muse-image-1.0仅支持宽高比控制语音识别仅 ASRmuse-voice-transcribe-1.0在/v1/responses上返回 404model_not_found按前缀过滤剔除出对话候选2.1 Spark 能力与价格分层上下文1,048,5761Mtoken模态文本/图像/视频/PDF/音频均可输入其中 1.3 的音频输入为降级状态输出为文本标准档Standard定价输入 $1.25 / 输出 $4.25 / 缓存命中 $0.15每 1M tokenContributor 定价输入 $0.10 / 输出 $0.20 / 缓存 $0.002每 1M token。作为代价Meta 会使用提示词与补全进行训练默认隐藏该选项。文档记录的限速为 Contributor 100 RPM / 3M TPMStandard 3,000 RPM / 4M TPM实测线上响应头在 Contributor id 上报告的是 150 RPM以实测为准Web 搜索按查询计费$2.50 每 1K 次查询Muse Image$0.01 每张图仅支持 aspect ratio 控制。2.2 发布日期的编辑性维护模型的发布属编辑性数据Spark 1.1 发布于 2026-07-09Muse Image 2026-07-071.2 于 2026-08-051.3 于 2026-09-02因为 API 的created恒为 0 且官方无变更日志。模型清单与价格由内部工具/llms:update-models-metaai维护作为元数据源。三、请求契约严格验证器下的参数边界Meta 的验证器相当严格未知的顶层参数直接 400错误信息形如unknown parameter X而未知的嵌套 key 则被静默忽略。为此适配器的 zod strip 机制会在请求体上屏前剥离掉未定义字段保证发往线上的 body 干净。以下参数在 Meta 上必然 400seed、stop、n、logit_bias、response_format、顶层verbosity、conversation。3.1 工具策略只有autotool_choice仅接受autonone、required、具名工具一律 400。big-AGI 的工具策略any在此方言下被降级为autotruncation仅接受disabled尽管 schema 允许auto实际发送auto会 400。这两条约束被固化在适配器的方言特性表_RSP_DIALECT_QUIRKS中openai.responsesCreate.tsmetaai: { vndNamespace: metaai, toolChoiceOnlyAuto: true, minOutputTokens: 16 },3.2 推理控制effort 阶梯与 summaryreasoning.effort合法值为minimal | low | medium | high | xhigh。none能通过解析但会在每一个 Spark 模型上 400max不在枚举中官方预告用于 1.3省略时默认high——在琐碎提示词上也会消耗 95250 个推理 tokenpong 这类测试即如此这是成本上需要注意的默认值reasoning.summary接受auto | concise | detailed但返回的 summaries 经常是空数组[]且永远没有原始推理文本raw reasoning text。3.3 输出预算与不完整响应max_output_tokens下限为 16适配器会做下限抬升对应minOutputTokens: 16推理 token 与输出共享同一预算预算过紧时返回status: incomplete且output[]为空数组——解析层需对这种有状态无内容的响应做容错低于 1M 的范围内没有强制上限。3.4 状态管理默认无状态路径上游默认store: true而适配器明确发送store: false并携带include: [reasoning.encrypted_content]走文档化的无状态路径推理加密内容随响应返回而非靠服务端存储。注意include与previous_response_id不能同时使用组合使用会 400。3.5 完整接受的参数清单实测可用的参数包括instructions、temperature范围 0..22.0 是退化值——会产出语无伦次的incomplete回复偶尔触发 500internal server error参数扫描记录显示 0..1.5 为可靠区间、top_p范围 (0,1]、metadata最多 16 对、user、prompt_cache_key、safety_identifier、parallel_tool_calls、max_tool_calls、text.verbosity、service_tier归一化为auto。Spark 针对temperature: 1.0调优模型定义中的initialTemperature。3.6 工具定义与结构化输出函数工具采用扁平结构{type: function, name, parameters}strict默认false——官方 schema 页面声称默认true与实测不符以实测为准工具名最多含一个点web_search工具接受search_context_size与user_location适配器补充的external_web_access被容忍但filters.allowed_domains会 400配合include: [web_search_call.action.sources]可让action.sources有值解析器即读取该字段在 Spark 上使用code_interpreter、custom、image_generation工具均 400结构化输出走text.format的json_schema/json_object仅 Responses 方言可用工具配对双向强制未配对的function_call_output会 400悬挂的function_call同样 400。适配器通过_pairInteriorFunctionCalls(requestInput)openai.responsesCreate.ts在请求侧预先补齐内部配对否则整个请求会被整体拒绝。四、流式协议与 items 解析4.1 SSE 事件形态事件流为 OpenAI 形状的 SSEevent:data:行以裸data: [DONE]结尾——这一点与 OpenAI 原生 Responses 不同OpenAI 不发[DONE]执行器在收到终态事件后会忽略随后的[DONE]终态事件有三种response.completed/response.incomplete/response.failed此外顶层error事件可能出现在流中途解析器需支持中途报错response.output_text.done并不可靠不总是发射文本的实际收口由content_part.done/output_item.done完成工具循环中response.in_progress会在每一轮模型迭代重复出现DEV 日志仅作警告不阻断。4.2 并行调用与交错流并行函数调用与 web 搜索以**交错interleaved**方式流出item N1 在 item N 关闭之前就开启。解析器的 item 访问状态机对这类失配记 DEV 日志但能正确解码每一个调用与搜索。4.3 推理条目reasoning items的特殊形态Meta 的推理条目结构为{type, id, encrypted_content, summary, status}——没有content字段即永远不出现明文推理文本。id 形态有两面性流式事件中的 id 是复合的rs_response:rs_inner单次迭代无工具循环的response.completed.output[].id会原样重复该复合 id多轮工具循环中则退化为裸rs_inner。因此id 必须按不透明句柄对待不能做任何结构假设。两种形态均可用于续接重放当encrypted_content存在时 id 甚至是可选的。blob 只存活于metaai的_vnd命名空间绝不跨厂商流动——Meta 对来自其他厂商或已过期的条目直接 400。4.4 阶段标记与搜索失败形态工具调用前的助理前置文本携带phase: commentary解析器会捕获并随重放重新发送messagePhase状态进入_vnd命名空间见 aix.wiretypes.tsweb_search_call.action.open_page在打开失败时可能没有urlschema 已将其设为 nullishweb 搜索条目可携带status: failed。4.5 Muse Image 的流式特例muse-image-1.0的图像生成流不发射任何 item 事件——只有response.created直接到response.completed。big-AGI 为此模型挂载LLM_IF_HOTFIX_NoStream能力标记非流式解析器读取image_generation_call.resultbase64 WebP由于上游不回显output_formatMIME 类型通过 base64 文件头 magic 嗅探得出。该模型只接受image_generation一个工具。五、错误、限流头与 CORS5.1 错误信封错误统一封装为{error: {code, message, param, type}}。特别要注意验证类错误的code为 null此时应依据type HTTP 状态码分支处理。各状态码语义场景HTTPcode密钥错误或缺失401invalid_api_key两种情况同码未知模型404model_not_found限流429携带Retry-After响应头网关超时504仅影响非流式请求5.2 限流与请求 ID 头x-ratelimit-{limit,remaining}-{requests,tokens}仅在Spark 生成请求上出现限速值按团队与档位tier计x-request-id出现在绝大多数响应上。5.3 CORSCSF 直连可行的关键api.meta.ai的 CORS 配置为access-control-allow-origin: *access-control-allow-headers: *access-control-allow-methods: GET,POST,DELETE,OPTIONS预检preflight与错误响应都会带上这些头因此浏览器直连CSF可用——这也印证了 metaai.vendor.ts 中csfAvailable的实现。但响应没有expose-headers所以限流头在客户端侧不可见客户端只能感知 429 与Retry-After无法读取剩余额度。六、刻意未接线Deliberately not wired以下 Meta 能力被 big-AGI 明确排除在集成范围之外原因如下Resume / DeleteGET/DELETE /v1/responses/{id}Meta 侧以与 OpenAI 完全一致的方式提供但客户端续接杠杆全局关闭且适配器的include门控与store: false耦合——当前的无状态路径下不启用tool_search与namespace工具、context_management/压缩条目未实现frequency_penalty/presence_penalty不支持prompt_cache_retention不支持background异步执行不支持POST /v1/responses/input_tokens计数包含约 157 个注入的脚手架scaffoldingtoken与usage.input_tokens不可比故不采用input_video、input_filePDF、input_audio部件AIX 尚无对应的原生部件相关附件降级为文本处理。这些刻意不为同样是集成文档的价值所在——明确了当前支持边界避免调用方误用。七、验证与维护工具链Meta 集成的正确性由多套工具持续校验模型清单与价格/llms:update-models-metaai目录与价格模型定义的版本与选择性刷新机制参见 LLM-defs-refresh.md协议实验室tools/develop/aix-protocol-lab提供metaai-responsesflavortools/develop/aix-protocol-lab/README.md用于协议级探测其中 engine.ts 直接以createOpenAIResponsesEventParser(metaai)/createOpenAIResponseParserNS(metaai)复用了与生产完全一致的解析器参数扫描tools/develop/llm-parameter-sweep的metaaidialectllm-metaai-parameters-sweep.json配合/llms:verify-parameters metaai做参数接受度回归——temperature 0..1.5 可靠区间即来自该扫描列表测试listModels.test.ts 内置了openai-compat/metaai: live listing用例在存在METAAI_API_KEY时对线上目录做实测校验。八、部署与配置要点在 big-AGI 中使用 Meta AI 模型按数据面服务端 / 浏览器直连有两种配置方式服务端接入在 UI 的 Models Setup 中填入metaai厂商的密钥格式LLM_digits_secret或通过环境变量METAAI_API_KEY可选见 docs/environment-variables.md注入可选METAAI_API_HOST覆盖默认主机。密钥缺失时服务端抛出BAD_REQUESTMissing Meta AI API Key or Host...CSF 直连浏览器端由于 CORS 头允许*且预检与错误响应均携带客户端可直接从浏览器向api.meta.ai发请求无需服务端代理——此时限流头因缺少expose-headers对页面不可见。使用注意清单面向调用方不要把tool_choice设为none/required/具名工具Meta 只接受auto不要把truncation设为autoreasoning.effort不要传none/max默认high在琐碎请求上也会产生可观推理开销max_output_tokens至少 16且推理与输出共享预算——预算过紧会得到空output[]的incomplete响应include与previous_response_id不可同用temperature控制在 0..1.5 可靠区间避开 2.0 退化区推理条目 id 一律视为不透明句柄跨厂商复用会在 Meta 侧 400。上述结论均来自 2026-09-02 的线上实测与当前仓库源码交叉验证如需从零新增此类厂商接入可参考 LLM-vendor-integration.md 中Responses 方言厂商还需补充_RSP_DIALECT_QUIRKS行 专属_vnd命名空间的完整流程。【免费下载链接】big-AGIAI suite powered by state-of-the-art models and providing advanced AI/AGI functions. Includes AI personas, AGI functions, world-class Beam multi-model chats, text-to-image, voice, response streaming, code highlighting and execution, PDF import, presets for developers, much more. Deploy on-prem or in the cloud.项目地址: https://gitcode.com/GitHub_Trending/bi/big-AGI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门