[Uso integrado de la primera experiencia de ChatGPT y Android]

La primera experiencia de ChatGPT y la integración de Android

prefacio

ChatGPT está en un lío con su poderosa función de IA. Dado que no se puede acceder a su sitio web oficial en China, muchos amigos no pueden experimentarlo y usarlo de manera amigable. Ahora permítanme compartir su integración y uso simples, y finalmente adjuntar el código de integración en Android lado _
( Recordatorio: las siguientes URL requieren acceso de proxy )

Cree su propia CLAVE API

  1. Primero, abra el sitio web oficial de ChatGPT , para que no repita el proceso de registro e inicio de sesión aquí Para conocer los pasos específicos, consulte aquí
  2. Después de ingresar a la cuenta, haga clic en su avatar en la esquina superior derecha y seleccione la opción Ver claves API
  3. Haga clic en este botón para crear una clave ( recuerde copiar la clave generada , no se mostrará más tarde, guárdela y se usará más tarde)Haga clic en el botón para crear una clave

Integración en el lado de Android

  1. Abra el documento API y elija ver los pasos de integración específicos. El oficial proporciona tres métodos: curl, python, Node.js

  2. Aquí necesitamos integrar la función de chat de ChatGPT. Antes de comenzar el proyecto, planeo usar kotlin + coroutines + retorfit2 para construir

  3. Cree un nuevo proyecto en el estudio de Android y enumere las bibliotecas dependientes clave:

    //retrofit
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
    //coroutines
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4'
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4'
    
  4. De acuerdo con la parte oficial de Chat del código de caso de uso, se deben agregar dos encabezados de solicitud:

    curl https://api.openai.com/v1/chat/completions \
      -H 'Content-Type: application/json' \
      -H 'Authorization: Bearer YOUR_API_KEY' \
      -d '{
          
          
      "model": "gpt-3.5-turbo",
      "messages": [{
          
          "role": "user", "content": "Hello!"}]
    }'
    
    
  5. Escriba nuestra propia interfaz de solicitud, traiga el encabezado de la solicitud:

    interface ApiService {
          
          
        @POST("chat/completions")
        fun getMessage(@Header("Content-Type") type:String,@Header("Authorization") authorization:String, @Body body:SendBodyData):Call<ModelData>
    }
    
  6. Implementar solicitudes específicas en el modelo de vista:

    private val baseUrl = "https://api.openai.com/v1/chat/completions"
    private val key = "sk-Rix2aNkoTt0NuiJQBCc4T3BlbkFJMnAdYtxTn1TfpOQ4K"
    var responseData =  MutableStateFlow(ModelData())
    
    suspend fun getMsg(info:String){
          
          
        when (val result = ApiHelper.getMsg("application/json","Bearer $key", SendBodyData(listOf(SendMessage(info,"user")),"gpt-3.5-turbo"))) {
          
          
            is Result.Success -> {
          
          
                responseData.emit(result.data)
            }
            is Result.Error -> {
          
          
                val exception = result.exception
                // 处理错误响应
                println(exception)
            }
        }
    }
    
  7. Finalmente se muestra en la Actividad:

    lifecycleScope.launch {
          
          
            dataViewModel.responseData.collect{
          
          
                mBinding.idTVResponse.text = it.choices?.get(0)?.message?.content
                mBinding.idTILQuery.setText("")
            }
        }
        
    lifecycleScope.launchWhenResumed {
          
          
     	dataViewModel.getMsg(mBinding.idTILQuery.text.toString())
    }
    
    

el código

Lo anterior es solo el código principal publicado, consulte aquí el código de ingeniería específico

Resumir

Pisando el pozo en el proceso:

  1. La autorización en el encabezado de la solicitud es de tipo Portador, de lo contrario se devuelve un error 401
  2. Recuerde encender el agente cuando el teléfono esté funcionando , de lo contrario será una pérdida de tiempo...

Supongo que te gusta

Origin blog.csdn.net/h397318057/article/details/129445646
Recomendado
Clasificación