Skip to content

Got a blank message response from Chatgpt #137

@wutaiyi0129

Description

@wutaiyi0129
import OpenAISwift
import SwiftUI

final class ViewModel: ObservableObject {
    init(){}
    private var client: OpenAISwift?
    
    func setup(){
        client = OpenAISwift(config: OpenAISwift.Config.makeDefaultOpenAI(apiKey: "key"))
    }
    
    func send(text: String, completion: @escaping (String) -> Void) {
     
        client?.sendCompletion(with: text, maxTokens: 500, temperature: 0.7, completionHandler: { result in
            switch result {
            case .success(let model):
                let output = model.choices?.first?.text ?? "blank message"
                print(model)
                completion(output)
            case .failure:
               break
            }
        })3
    }
}

struct ContentView: View {
    @ObservedObject var viewModel = ViewModel()
    @State var text = ""
    @State var models = [String]()
    
    var body: some View {
        VStack(alignment: .leading) {
            ForEach(models, id: \.self) { string in
                Text(string)
            }
            Spacer()
            HStack {
                TextField("在此輸入", text: $text)
                Button("送出") {
                    send()
                }
            }
           
        }
        .onAppear {
            viewModel.setup()
        }
        .padding()
    }
    
    func send() {
        guard !text.trimmingCharacters(in: .whitespaces).isEmpty else {
            return
        }
        models.append("Me: \(text)")
        viewModel.send(text: text) { response in
            DispatchQueue.main.async {
                self.models.append("ChatGPT: \(response)")
                self.text = ""
            }
        }
    }
}

#Preview {
    ContentView()
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions