OpenAI GPT-3 API error: “You must provide a model parameter“

news/2025/1/15 21:58:01/

题意:OpenAI GPT-3 API 错误:“你必须提供一个模型参数”

问题背景:

I am trying to POST a question to openAI API via SWIFT. It works fine, if I use the same payload via Postman, but in the Xcode-Condole I got the following response from openAI:

我正在尝试通过 Swift 向 OpenAI API 发送一个 POST 请求。如果我在 Postman 中使用相同的负载,它工作正常,但在 Xcode 控制台中,我从 OpenAI 收到了以下响应:

Response data string:
{"error": {"message": "you must provide a model parameter","type": "invalid_request_error","param": null,"code": null}}

This is my code:        以下是我的代码        

 func getActivityAnalysis(){let url = URL(string: "https://api.openai.com/v1/completions")guard let requestUrl = url else { fatalError() }// Prepare URL Request Objectvar request = URLRequest(url: requestUrl)request.setValue("Bearer blaaaablaa", forHTTPHeaderField: "Authorization")request.httpMethod = "POST"let prompt = "just a test"let requestBody = OpenAIRequest(model: "text-davinci-003", prompt: prompt, max_tokens: 300, temperature: 0.5)let encoder = JSONEncoder()encoder.outputFormatting = .prettyPrintedlet data = try! encoder.encode(requestBody)print(String(data: data, encoding: .utf8)!)// Set HTTP Request Bodyrequest.httpBody = dataprint("\(request.httpMethod!) \(request.url!)")print(request.allHTTPHeaderFields!)print(String(data: request.httpBody ?? Data(), encoding: .utf8)!)// Perform HTTP Requestlet task = URLSession.shared.dataTask(with: request) { (data, response, error) in// Check for Errorif let error = error {print("Error took place \(error)")return}// Convert HTTP Response Data to a Stringif let data = data, let dataString = String(data: data, encoding: .utf8) {print("Response data string:\n \(dataString)")self.openAIResponse = dataString}}task.resume()}`

If I print the http request, it seems fine for me as well:

如果我打印出 HTTP 请求,它看起来也没有问题:

 POST https://api.openai.com/v1/completions["Authorization": "Bearer blaaaaa"]{"temperature" : 0.5,"model" : "text-davinci-003","prompt" : "just a test","max_tokens" : 300}

I tried to use the same payload in my Postman request. It worked fine here. I also tried to use different encodings, but it always throws the same error.

我尝试在 Postman 请求中使用相同的负载,它在这里工作正常。我还尝试了不同的编码方式,但总是抛出相同的错误。

Not sure, what I am doing wrong. Maybe someone can help?

不确定我哪里做错了。也许有人能帮忙?

Thank you in advance.        提前感谢你。

问题解决:

Your HTTP request reveals the problem. You need to add 'Content-Type: application/json'.

According to GeeksforGeeks:

你的 HTTP 请求暴露了问题。你需要添加 `'Content-Type: application/json'`。

根据 GeeksforGeeks 的说法:

Content-Type is an HTTP header that is used to indicate the media type of the resource and in the case of responses, it tells the browser about what actually content type of the returned content is.


http://www.ppmy.cn/news/1525809.html

相关文章

解决RabbitMQ设置TTL过期后不进入死信队列

解决RabbitMQ设置TTL过期后不进入死信队列 问题发现问题解决方法一:只监听死信队列,在死信队列里面处理业务逻辑方法二:改为自动确认模式 问题发现 最近再学习RabbitMQ过程中,看到关于死信队列内容: 来自队列的消息可…

哈莫尼斯 手工王国 Harmonis the hand made kingdoms,官方中文,解压即玩,

游戏截图 哈莫尼斯 手工王国 Harmonis the hand made kingdoms Harmonis: 手工王国是一款极简策略游戏,让您的创造力成为中心舞台。通过独特的瓷砖塑造生机勃勃的王国,每一块瓷砖都为一个充满活力和动态的世界做出贡献。从郁郁葱葱的森林到干旱的沙漠&a…

什么是外贸专用路由器?

一、外贸专用路由器的显著特点 全球兼容性 外贸专用路由器支持多种国际通信标准和频段,能够无缝连接不同国家和地区的网络,从而避免因地域限制导致的网络问题。这种全球兼容性确保了外贸企业在全球范围内的网络部署更加顺畅,让企业在任何角落…

非关系型数据库Redis

文章目录 一,关系型数据库和非关系型数据可区别1.关系型数据库2.非关系型数据库3.区别3.1存储方式3.2扩展方式3.2事务性的支持 二,非关系型数据为什么产生三,Redis1.Redis是什么2.Redis优点3.Redis适用范围4. Redis 快的原因4.1 基于内存运行…

【RabbitMQ 项目】项目概述

项目概述 一.角色划分二.服务器模块概述1.本地模块2.网络模块3.服务器模块 三.模块详细划分1.服务端2.客户端 一.角色划分 该项目的模型是一个跨主机的生产消费模型,有三种角色:生产者,消费者,中间人。对应就要实现三个大模块&…

golang学习笔记16——golang部署与运维全攻略

推荐学习文档 golang应用级os框架,欢迎star基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总golang学习笔记01——基本数据类型golang学习笔记02——gin框架及基本原理golang学习笔记03——gin框架的核心数据结构golang学…

简单数据库sqlite

目录 数据库 简介 1、分类: 大型 中型 小型 2、名词: 3、嵌入式数据库: 4、sqlite3的安装: LTS long term support 5.1、sqlite3的使用: 0、启动sqlite3 1、系统维护命令:> .help 5.2、标准SQL…

《 C++ 修炼全景指南:六 》深入探索 C++ 标准库中的 stack 与 queue 容器适配器

1、引言 1.1、容器适配器的概念与应用 容器适配器(Container Adapters)是 C 标准库提供的一种特殊容器,它不是一种独立的容器,而是对其他标准容器的封装,用来实现特定的数据结构如栈(stack)和…