Почему эта реализация не позволяет создать преобразователь @body?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему эта реализация не позволяет создать преобразователь @body?

Сообщение Anonymous »


У меня есть следующий код OpenAIapi в Kotlin, студия Android:

пакет com.example.pantrypal.apis импортировать com.example.pantrypal.models.ChatRequest импортировать com.example.pantrypal.models.ChatResponse импортировать com.example.pantrypal.models.Message импортировать com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory импортировать kotlinx.serialization.json.Json импортировать okhttp3.MediaType.Companion.toMediaType импортировать okhttp3.OkHttpClient импортная модернизация2.Модернизация импорт ретрофита2.http.Body импортировать Retrofit2.http.Headers импортировать модификацию2.http.POST импортировать java.util.concurrent.TimeUnit интерфейс OpenAIApiService { @Заголовки( «Тип контента: приложение/json», «Авторизация: носитель MY-API-KEY» ) @POST("v1/чат/завершения") приостановить веселье getChatCompletions(@Body request: ChatRequest): ChatResponse } объект OpenAIApi{ частный вал httpClient = OkHttpClient.Builder() .callTimeout(50,TimeUnit.SECONDS) .readTimeout(50, TimeUnit.SECONDS).build() частный val Retrofit = Retrofit.Builder() .addConverterFactory(Json{ ignoreUnknownKeys = true}.asConverterFactory("application/json".toMediaType())) //.addConverterFactory(Json.asConverterFactory("application/json".toMediaType())) .baseUrl("https://api.openai.com/") .client(httpClient) .строить() val RetrofitService: OpenAIApiService от lazy{ Retrofit.create(OpenAIApiService::class.java) } приостановить веселье getResponse(подсказка: String) : String { пытаться{ valchatRequest = ChatRequest( модель = "gpt-3.5-турбо", сообщения = списокOf( Сообщение( роль = "пользователь", content = "Привет, как дела?" )//быстрый) ) ) println("до") println("Тело запроса: $chatRequest") valchatResponse = RetrofitService.getChatCompletions(chatRequest) println("после") вернуть ChatResponse.choices[0].message.content } поймать (е: исключение) { е.printStackTrace() return ("Ошибка: " + электронное сообщение) } } } и следующий код в качестве моих объектов API:

@Serializable класс данных ChatRequest (модель val: String, сообщения val: List, температура val: Double = 0,8) @Сериализуемый класс данных Message (роль val: String, содержимое val: String) @Сериализуемый класс данных ChatResponse (идентификатор значения: String, @SerialName(значение = «объект») значение object_: Строка, Создано значение: Long, модель значения: String, использование значения: Использование, выбор значений: List) @Сериализуемый Использование класса данных (val Prompt_tokens: Int, val Complete_tokens: Int, val total_tokens: Int) @Сериализуемый Выбор класса данных (val message: Message, val Finish_reason: String, val index: Int) при попытке сделать запрос получаю ошибку: Невозможно создать преобразователь @Body для класса com.example.pantrypal.models.ChatRequest (параметр № 1) для метода OpenAIApiService.getChatCompletions

Я уже проверил, что у моего эмулятора есть подключение к Интернету, что мой API-ключ работает и что у меня есть способ оплаты с помощью OpenAI. Я также убедился, что все мои зависимости обновлены
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»