You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查找GPT Builder创建的GPT的Engine ID?Swift代码相关疑问

问题:GPT Builder创建的GPT找不到对应的Engine ID?

我用OpenAI的GPT Builder创建了自定义GPT,但不知道从哪获取对应的Engine ID来填入以下Swift代码的YOUR_ENGINE_ID位置:

import Foundation

class GPTManager {
    private let apiKey = "MY KEY HERE"
    private let session = URLSession.shared
    private let baseUrl = "https://api.openai.com/v1/engines/YOUR_ENGINE_ID/completions"

    func getResponse(prompt: String, completion: @escaping (String?) -> Void) {
        guard let url = URL(string: baseUrl) else {
            completion(nil)
            return
        }

        var request = URLRequest(url: url)
        request.httpMethod = "POST"
        request.addValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization")
        request.addValue("application/json", forHTTPHeaderField: "Content-Type")

        let body: [String: Any] = [
            "prompt": prompt,
            "max_tokens": 100
        ]

        request.httpBody = try? JSONSerialization.data(withJSONObject: body, options: [])

        let task = session.dataTask(with: request) { data, response, error in
            guard let data = data, error == nil else {
                completion(nil)
                return
            }

            if let responseDictionary = try? JSONSerialization.jsonObject(with: data, options: []) as? [String: Any],
               let text = responseDictionary["choices"] as? [[String: Any]],
               let firstChoice = text.first,
               let finalText = firstChoice["text"] as? String {
                DispatchQueue.main.async {
                    completion(finalText.trimmingCharacters(in: .whitespacesAndNewlines))
                }
            } else {
                completion(nil)
            }
        }

        task.resume()
    }
}

解决方法

首先要明确:GPT Builder创建的自定义GPT,并不对应OpenAI API中的「Engine ID」——你的代码用的是旧版的/engines/{engine_id}/completions接口,仅适用于基础文本模型(如gpt-3.5-turbo-instruct、text-davinci-003),无法直接调用自定义GPT。

情况1:要调用自己创建的自定义GPT

自定义GPT基于OpenAI Assistant框架构建,需通过Assistant API调用:

    1. 打开GPT Builder的「Configure」页面,找到「API」选项并开启访问权限,此时会生成对应的Assistant ID(替代Engine ID)。
    1. 修改代码使用Assistant API的接口(路径为https://api.openai.com/v1/assistants/{assistant_id}/threads/runs),接口逻辑与completions接口不同,需要创建线程、添加消息、触发运行等步骤。

情况2:仅需调用基础GPT模型(无需自定义GPT)

直接使用基础模型的ID即可,推荐使用新版Chat Completions接口(更适配聊天类模型,如gpt-3.5-turbo、gpt-4),修正后的代码示例:

import Foundation

class GPTManager {
    private let apiKey = "MY KEY HERE"
    private let session = URLSession.shared
    private let baseUrl = "https://api.openai.com/v1/chat/completions"

    func getResponse(prompt: String, completion: @escaping (String?) -> Void) {
        guard let url = URL(string: baseUrl) else {
            completion(nil)
            return
        }

        var request = URLRequest(url: url)
        request.httpMethod = "POST"
        request.addValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization")
        request.addValue("application/json", forHTTPHeaderField: "Content-Type")

        let body: [String: Any] = [
            "model": "gpt-3.5-turbo", // 替换为目标模型ID,如gpt-4
            "messages": [
                ["role": "user", "content": prompt]
            ],
            "max_tokens": 100
        ]

        request.httpBody = try? JSONSerialization.data(withJSONObject: body, options: [])

        let task = session.dataTask(with: request) { data, response, error in
            guard let data = data, error == nil else {
                completion(nil)
                return
            }

            if let responseDictionary = try? JSONSerialization.jsonObject(with: data, options: []) as? [String: Any],
               let choices = responseDictionary["choices"] as? [[String: Any]],
               let firstChoice = choices.first,
               let message = firstChoice["message"] as? [String: Any],
               let finalText = message["content"] as? String {
                DispatchQueue.main.async {
                    completion(finalText.trimmingCharacters(in: .whitespacesAndNewlines))
                }
            } else {
                completion(nil)
            }
        }

        task.resume()
    }
}

如果坚持用旧版completions接口,可将baseUrl改为https://api.openai.com/v1/completions,并在请求体中添加"model": "gpt-3.5-turbo-instruct"这类兼容模型的ID,无需在URL中填Engine ID。


内容的提问来源于stack exchange,提问作者user23331581

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 00:22:37