Interazione VB.NET con OpenAI Dall-E

Alessandro Demontis 20 Punti di reputazione
2024-05-12T06:53:43.0733333+00:00

Buongiorno a tutti, in passato ho creato in VB.NET un chatbot basato su Davinci, ed ora sto sperimentando con Dall-E per generare immagini, ma ricevo un errore 400 Bad Request nonostante il codice mi paia corretto.

Il mio codice usato per inviare la richiesta e ricevere la risposta con l'url immagine è il seguente:

    Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click
        System.Net.ServicePointManager.SecurityProtocol = DirectCast(3072, System.Net.SecurityProtocolType)
        Dim apiEndpoint As String = "https://api.openai.com/v1/images/generations"
        Dim apiKey As String = ApiKeyTextBox.Text
        Dim prompt As String = PromptTextBox.Text
        Dim model As String = "dall-e-2"
        Dim numberofimages As String = "1"
        Dim imagesize As String = "512x512"
        Try
            Dim imageUrl As String = ""
            ' Creazione della richiesta HTTP
            Dim request As HttpWebRequest = WebRequest.Create(apiEndpoint)
            request.Method = "POST"
            request.ContentType = "application/json"
            request.Headers.Add("Authorization", "Bearer " & apiKey)
            ' Costruzione del payload JSON
            Dim data As String = "{"
            data += " ""model"": """ & model & ""","
            data += " ""prompt"": """ & prompt & ""","
            data += " ""n"": """ & numberofimages & ""","
            data += " ""size"": """ & imagesize & ""","
            data += "}"
            ' Scrittura dei dati nel corpo della richiesta
            Using streamWriter As New StreamWriter(request.GetRequestStream())
                streamWriter.Write(data)
            End Using
            ' Ottenimento della risposta
            Dim response As HttpWebResponse = request.GetResponse()
            Dim streamReader As New StreamReader(response.GetResponseStream())
            Dim jsonResponse As String = streamReader.ReadToEnd()
            ' Estrazione dell'URL dell'immagine dal JSON
            Dim sJson As String = jsonResponse
            Dim sResponse As String = ""
            Dim oJavaScriptSerializer As New System.Web.Script.Serialization.JavaScriptSerializer
            Dim oJson As Object = New System.Web.Script.Serialization.JavaScriptSerializer().Deserialize(Of Object)(sJson)
            If TypeOf oJson("data") Is ArrayList AndAlso CType(oJson("data"), ArrayList).Count > 0 Then
                Dim dataObj As Hashtable = CType(CType(oJson("data"), ArrayList)(0), Hashtable)
                If dataObj.ContainsKey("url") Then
                    imageUrl = dataObj("url").ToString()
                    Label3.Text = dataObj("url").ToString()
                End If
            End If
            ' Se è stato trovato un URL, scarica e visualizza l'immagine
            If Not String.IsNullOrEmpty(imageUrl) Then
                Dim imageClient As New WebClient()
                Dim imageData As Byte() = imageClient.DownloadData(imageUrl)
                Using ms As New MemoryStream(imageData)
                    PictureBox1.Image = Image.FromStream(ms)
                End Using
            Else
                MessageBox.Show("No image URL found in the response.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        Catch ex As Exception
            MessageBox.Show("A generic error occurred. Try later or check your OpenAI account", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Console.WriteLine(ex.ToString())
        End Try
    End Sub

Purtroppo sono fermo e non riesco ad avere nessun aiuto da OpenAI. Qualcuno ha pratica in questo genere di app o mi sa indicare dove sbaglio?

VB
VB
Linguaggio di programmazione orientato agli oggetti sviluppato da Microsoft implementato in .NET Framework. Precedentemente noto come Visual Basic .NET.
14 domande
0 commenti Nessun commento
{count} voti

Risposta accettata
  1. Monica Caprio (Convergys International Europe) 810 Punti di reputazione Fornitore Microsoft
    2024-05-13T09:20:51.21+00:00

    Gentile Alessandro,

    L'errore 400 Bad Request potrebbe essere causato da diversi fattori. Uno dei problemi potrebbe essere la formattazione dei dati inviati nella richiesta POST.

    Hai controllato se il JSON che stai inviando è correttamente formattato?

    Potrebbe essere utile controllare attentamente se tutti i campi sono inseriti nel modo corretto e se non ci sono errori di battitura o spazi aggiunti.

    Inoltre, assicurati di avere l'autorizzazione corretta nell'utilizzo dell'API di OpenAI e che la tua chiave API sia valida e attiva.

    Infine, potresti provare a stampare il corpo della richiesta prima di inviarlo per vedere se corrisponde a ciò che ti aspetti. Questo potrebbe aiutarti a individuare eventuali errori nella formattazione dei dati.

    Se non riesci ancora a risolvere il problema, potrebbe essere utile consultare la documentazione dell'API di OpenAI o cercare assistenza sulle comunità online di sviluppatori.

    Spero di esserti stata di aiuto.

    Monica.

    1 persona ha trovato utile questa risposta.

0 risposte aggiuntive

Ordina per: Più utili