Hola a todos;
después de varios días probando y ajustando prompts, finalmente CHATGPT pudo analizar correctamente la información de varios archivos PDF que subí y regresarme los datos formateados perfectamente en un JSON.
Ahora quiero tener esa funcionalidad en una aplicación de Delphi y no sé muy bien como empezar.
Incluso la respuesta de CHATGPT para que me diera una guía de lo que debería hacer para lograr esto me deja cada vez con más dudas.
Por ejemplo, en una parte de este proceso he tenido que generar una API key de OPEN AI, he querido probarla en POSTMAN y me he atorado ahí con respuestas que me hacen dudar de lo que estoy haciendo, aqui un par de ejemplos de lo que me regresa el POSTMAN:
Cita:
peticion:
{
"model": "gpt-4",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Tell me a joke."
}
]
}
respuesta:
{
"error": {
"message": "The model `gpt-4` does not exist or you do not have access to it.",
"type": "invalid_request_error",
"param": null,
"code": "model_not_found"
}
}
peticion:
{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Tell me a joke."
}
]
}
respuesta:
{
"error": {
"message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.",
"type": "insufficient_quota",
"param": null,
"code": "insufficient_quota"
}
}
|
Y bueno, del lado de delphi tampoco me ha ido muy bien que digamos:
Código:
procedure TForm1.Button2Click(Sender: TObject);
var
NetHTTPClient: TNetHTTPClient;
Response: IHTTPResponse;
JSONToSend, JSONResponse: TJSONObject;
APIKey, TestText: string;
begin
NetHTTPClient := TNetHTTPClient.Create(nil);
try
APIKey := 'k-svca....DfkA'; // Aqui pongo la misma API KEY de OPENAI que pongo en postman
NetHTTPClient.CustomHeaders['Authorization'] := 'Bearer ' + APIKey;
TestText := 'Hello, OpenAI!'; // Texto de prueba
JSONToSend := TJSONObject.Create;
try
JSONToSend.AddPair('prompt', TestText);
JSONToSend.AddPair('max_tokens', TJSONNumber.Create(50));
Response := NetHTTPClient.Post('https://api.openai.com/v1/completions',
TStringStream.Create(JSONToSend.ToString, TEncoding.UTF8),
nil, [TNetHeader.Create('Content-Type', 'application/json')]);
if Response.StatusCode = 200 then
begin
JSONResponse := TJSONObject.ParseJSONValue(Response.ContentAsString) as TJSONObject;
MemoResults.items.Add('Respuesta del AI:');
MemoResults.items.Add(JSONResponse.GetValue('choices').ToString);
end
else
begin
MemoResults.items.Add('Error al comunicarse con la API de IA: ' + Response.StatusText);
end;
finally
JSONToSend.Free;
end;
finally
NetHTTPClient.Free;
end;
end;
Siempre me regresa el error: unathorized
Alguien ya ha implementado alguna solucion usando la API de OpenAI ?
Tienen alguna sugerencia para poder avanzar en este proyecto?
Gracias de antemano a todos