Untitled

 avatar
unknown
plain_text
2 years ago
2.1 kB
9
Indexable
Checkpoint: Button with code sending
 
import SwiftUI
import OpenAISwift
let API_KEY = "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"
struct ContentView: View {​​​​​​
    
    @State private var inputText = ""
    @State private var outputText = ""
    let openAI = OpenAISwift(authToken: API_KEY)
    
    var body: some View {​​​​​​
        VStack {​​​​​​
            TextField("Hi! I'm your friendly AI, ask me anything.", text: $inputText)
                .textFieldStyle(.roundedBorder)
                .padding()
            
            Button("Send to ChatGPT") {​​​​​​
                sendRequest()
            }​​​​​​
            .buttonStyle(.borderedProminent)
            
            Text(outputText)
        }​​​​​​
    }​​​​​​
    
    func sendRequest() {​​​​​​
        
        let chat: [ChatMessage] = [
            ChatMessage(role: .system, content: "You are a helpful assistant who answers questions for the user."),
            ChatMessage(role: .user, content: inputText)
        ]
        
        Task {​​​​​​
            do {​​​​​​
                let result = try await openAI.sendChat(with: chat, temperature: 0.8)
                await MainActor.run {​​​​​​
                    outputText = result.choices?.first?.message.content ?? "No result"
                }​​​​​​
            }​​​​​​ catch {​​​​​​
                print(error.localizedDescription)
            }​​​​​​
        }​​​​​​
        
    }​​​​​​
}