【Xcode 15】自己跟自己聊天? - ChatGPT
大家晚安,今天要來介紹的是當紅炸子雞-ChatGPT,它是由OpenAI開發的人工智慧聊天機器人程式,全稱聊天生成預訓練轉換器 - Chat Generative Pre-trained Transformer。在這裡,就簡單的使用之前星座聊天室的程式來做修改,重點放在使用API身上…
做一個長得像這樣的東西
作業環境
項目 | 版本 |
---|---|
CPU | Apple M1 |
macOS | Sonoma 14.3.1 arm64 |
Xcode | 15.2 arm64 |
使用方法
申請API KEY
Postman測試
{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "<文字內容>"
}
],
"temperature": 0.7
}
iOS APP
- 在這裡使用WWNetworking來打API…
- 畫面的細節就不多說了…
import UIKit
import WWNetworking
// MARK: - ChatGPTAPI
final class ChatGPTAPI {
private let apiURL = "https://api.openai.com/v1/chat/completions"
private var model = "gpt-3.5-turbo"
private var bearerToken = "<BearerToken>"
static let shared = ChatGPTAPI()
private init() {}
}
// MARK: - 小工具
extension ChatGPTAPI {
func configure(bearerToken: String, model: String? = nil) {
self.bearerToken = bearerToken
self.model = model ?? "gpt-3.5-turbo"
}
func chatGPT(content: String) async -> Result<String?, Error> {
let headers: [String: String?] = ["Authorization": "Bearer \(bearerToken)"]
let httpBody = """
{
"model": "\(model)",
"messages": [{ "role": "user", "content": "\(content)" }],
"temperature": 0.7
}
"""
let result = await WWNetworking.shared.request(with: .POST, urlString: apiURL, contentType: .json, paramaters: nil, headers: headers, httpBody: httpBody._data())
var content: String?
switch result {
case .failure(let error): return .failure(error)
case .success(let info):
guard let dictionary = info.data?._jsonObject() as? [String: Any] else { return .success(content) }
if let error = dictionary["error"] as? [String: Any] { return .failure(Constant.ChatGPTError.error(error)) }
guard let choices = dictionary["choices"] as? [Any],
let choice = choices.first as? [String: Any],
let message = choice["message"] as? [String: Any],
let _content = message["content"] as? String
else {
return .success(content)
}
content = _content
}
return .success(content)
}
}
範例程式碼下載
後記
其實,個人一直相信,「知識,不只是拿來謀取利益的;知識,是可以用來奉獻的,可以用來幫助別人的。」,但還是常看到是用來欺負他人的。 最近的超派鐵拳事件也讓我感觸良多,公眾人物對社會的影響力真的很大啊,尤其是負面的…