初始化带自定义适配器的SystemLanguageModel时始终返回nil的问题求助
初始化带自定义适配器的SystemLanguageModel时始终返回nil的问题求助
各位好,我最近在FoundationModels框架里尝试用自定义适配器来初始化LanguageModelSession,但卡在了一个问题上——SystemLanguageModel(adapter: adapter)这行代码总是返回nil,导致我只能走后面的降级分支,完全用不了自定义适配器的功能。
先给大家看一下我的代码实现:
do { guard let adapterURL = Bundle.main.url(forResource: "my_adapter", withExtension: "fmadapter") else { fatalError("Adapter file not found") } do { let adapter = try SystemLanguageModel.Adapter(fileURL: adapterURL) let baseModel = SystemLanguageModel(adapter: adapter) // 这里始终返回nil session = LanguageModelSession(model: baseModel, instructions: instructions) } catch { throw NSError(domain: "Can't find my_adapter", code: 0, userInfo: nil) } } catch { print("failed to setup adapter", error.localizedDescription) session = LanguageModelSession(tools: [], instructions: instructions) }
我已经做了不少排查工作,但还是没找到问题根源:
- 分别在iOS 26.0的真机和模拟器上测试过,结果完全一致
- 确认
fmadapter文件确实存在于项目Bundle中,获取到的URL路径是正确的 - 适配器对象
adapter已经成功初始化,没有抛出任何错误 - 用Python命令测试过这个适配器文件的可用性:
python3.11 -m examples.generate --prompt "hello",能正常生成内容,说明适配器本身是没问题的 - 也检查了Xcode里这个适配器文件的配置,目标membership已经勾选,确保会被打包进Bundle
有没有朋友遇到过类似的情况?或者能给我一些新的排查方向建议?
内容来源于stack exchange
相关产品推荐
相关产品推荐

