Ver Mensaje Individual
  #1  
Antiguo 06-03-2024
navbuoy navbuoy is offline
Miembro
 
Registrado: mar 2024
Posts: 16
Reputación: 0
navbuoy Va por buen camino
consultar a API ChatGPT con REST en C++ Builder Rad Studio 12

Buenos dias a todos

me gustaria si alguien me pudiese ayudar en este asunto que me trae de cabeza ya

Estoy intentando hacer una consulta a CHATGPT mediante los componentes RESTClient RESTRequest y RESTResponse de C++ Builder Rad Studio 12
tengo esta funcion y aunque lo he intentado de multiples maneras, siempre me tira este error que lo que deduzco es que no logra autentificarse bien en el API de entrada

Código:
{"error":{"message":"You didn't provide an API key. You need to provide your API key in an Authorization header using Bearer auth (i.e. Authorization: Bearer YOUR_KEY), or as the password field (with blank username) if you're accessing the API from your browser and are prompted for a username and password. You can obtain an API key from https:\/\/platform.openai.com\/account\/api-keys.","type":"invalid_request_error","param":null,"code":null}}
y el codigo fuente en C++ Builder que estoy usando con esos componentes REST es este:
he de aclarar que el codigo compila sin errores ninguno y funciona y en la ejecucion es cuando falla al intentar la Authorization

Código:
// Set REST Client

 Memo1->Clear();

 RESTClient1->BaseURL = "https://api.openai.com/v1/chat/completions";

RESTClient1->Params->AddHeader( "content", "Content-Type: application/json");
  RESTClient1->Params->AddHeader( "Authorization",   "Authorization: Bearer AQUI_PONGO_EL_API_KEY_QUE_TENGO_CREADO");


 // Set REST Request
 RESTRequest1->Method   = TRESTRequestMethod::rmPOST;
 RESTRequest1->Response = RESTResponse1;
 RESTRequest1->Response->ContentType = "application/json";
 RESTRequest1->Response->ContentEncoding="UTF-8";

 RESTRequest1->ClearBody();
 RESTRequest1->Body->Add("{ \"prompt\": \"it was a rainy day for\",   \"max_tokens\": 150 }", Rest::Types::TRESTContentType::ctNotLeadChar);
 RESTRequest1->Execute();

 // Get REST Response
 TJSONValue *jValue = RESTResponse1->JSONValue;

 // Print REST Response
 Memo1->Lines->Add(jValue->ToString());
he probado incluso a meter los Params de RESTClient de forma manual desde el IDE y en la propiedad Kind he probado con varios tipos "pkCOOKIE, pkHTTPSHEADERS, pkGetorPost, pkQUERY etc" y no parece ir ninguna aunque creo que la correcta es pkHTTPSHEADERS

si alguien me pudiese ayudar lo agradeceria enormemente

Última edición por Neftali [Germán.Estévez] fecha: 06-03-2024 a las 12:17:48. Razón: Añadir URL
Responder Con Cita