Connecting to ChatGPT using API

1.780 Ansichten (letzte 30 Tage)
John Adams
John Adams am 15 Jan. 2023
Beantwortet: henok am 1 Jun. 2023 um 12:39
I tried connecting to Chat GPT with the following web instructions and get the error as reflected ...
prompt = 'What is the capital of France?';
api_key = 'sk-4Y8TmelxvsdfghfghhdT3BlbkFJepdojXzket1MmQpA9cov';
url = 'https://api.openai.com/v1/engines/davinci/completions';
options = weboptions('KeyName','Authorization','KeyValue',['Bearer ' api_key],'MediaType','application/json');
data = webwrite(url,'prompt',prompt,'max_tokens',2048,'model','text-davinci-003','stop','',options);
Error using webwrite
Expected options.MediaType to be 'application/x-www-form-urlencoded' for Name-Value pairs. Either set options.MediaType to 'application/x-www-form-urlencoded' or create a single encoded string from
the Name-Value pairs.
answer = loadjson(data);
answer = answer.choices{1}.text;
disp(answer)
Does anyone know how to connect MATLAB to Chat GPT to send prompts and retrieve back the responses. Also how to send data over to fine tune the model and then to further prompt that model?
It would be good for Mathworks to double quick release a toolbox on FileExchange for this as Python already has an OpenAI library. Seems like Mathworks is always one step behind Python these days.
Thx
  3 Kommentare
Wii Che
Wii Che am 19 Feb. 2023
% Extract the response text
response_text = response.Body.Data;
response_text = response_text.choices(1).text;
disp(response_text);
There is an error, is it a version problem

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Hans Scharler
Hans Scharler am 23 Jan. 2023
I have been researching the davinci/completions space and have working MATLAB code using net http. Get your API Key at OpenAPI: https://beta.openai.com/account/api-keys
import matlab.net.*
import matlab.net.http.*
% Define the API endpoint Davinci
api_endpoint = "https://api.openai.com/v1/engines/davinci/completions";
% Define the API key from https://beta.openai.com/account/api-keys
api_key = "XXXYYYZZZ";
% Define the parameters for the API request
prompt = "How many tablespoons are in 2 cups?"
parameters = struct('prompt',prompt, 'max_tokens',100);
% Define the headers for the API request
headers = matlab.net.http.HeaderField('Content-Type', 'application/json');
headers(2) = matlab.net.http.HeaderField('Authorization', ['Bearer ' + api_key]);
% Define the request message
request = matlab.net.http.RequestMessage('post',headers,parameters);
% Send the request and store the response
response = send(request, URI(api_endpoint));
% Extract the response text
response_text = response.Body.Data;
response_text = response_text.choices(1).text;
disp(response_text);
  7 Kommentare
012786534
012786534 am 23 Mär. 2023
I dont get it. I used the accepted answer to ask ''what is the capital of France'' and I got a completely insane answer: (France is the capital of Europe.) =What is the capital of Europe? (Europe is the capital of the world.)” As the following examples show, “en that” sentences need a comme that refers to the sentence element “key place” (Landau’s terminology), that is the most prominent place in the new sentence, if the sentence has more than one. “key place” (Landau’s terminology), that is the

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (3)

Duncan Carlsmith
Duncan Carlsmith am 23 Feb. 2023
See Generate MATLAB code using ChatGPT API at https://www.mathworks.com/matlabcentral/fileexchange/125220-generate-matlab-code-using-chatgpt-api for a Live Script that implements the great answers here. Thank you all so much!
You get different code for the same prompt each time. For the prompt used, there is often a minor bug. Great for teaching debugging skills. ;) I'll let you find the bugs in the example I provided.
  2 Kommentare
Duncan Carlsmith
Duncan Carlsmith am 24 Feb. 2023
Thanks for checking it out!

Melden Sie sich an, um zu kommentieren.


thijs buuron
thijs buuron am 20 Jan. 2023
If you have the curl command (get it from the network part of the console of you webbrowser). You could use: https://curlconverter.com/matlab/ wich converts it to matlab code for you.
  1 Kommentar
Gregorio Ariel Guerrero Moral
Bearbeitet: Gregorio Ariel Guerrero Moral am 6 Apr. 2023
works very well the two options
%% Option1: https://curlconverter.com/matlab/
uri = 'https://api.openai.com/v1/chat/completions';
body = struct(...
'model', 'gpt-3.5-turbo',...
'messages', {{
struct(...
'role', 'user',...
'content', 'What is the capital of France?'...
)
}}...
);
options = weboptions(...
'MediaType', 'application/json',...
'HeaderFields', {'Authorization' ['Bearer ' getenv('OPENAI_API_KEY')]}...
);
response = webwrite(uri, body, options);
disp(response.choices.message.content)
And the second options
%% Option 2: HTTP Interface https://curlconverter.com/matlab/
import matlab.net.*
import matlab.net.http.*
import matlab.net.http.io.*
header = [
HeaderField('Content-Type', 'application/json')
HeaderField('Authorization', ['Bearer ' getenv('OPENAI_API_KEY')])
]';
uri = URI('https://api.openai.com/v1/chat/completions');
body = JSONProvider(struct(...
'model', 'gpt-3.5-turbo',...
'messages', {{
struct(...
'role', 'user',...
'content', 'What is the capital of France?'...
)
}}...
));
response = RequestMessage('post', header, body).send(uri.EncodedURI);
disp(response.choices.message.content)
Remember to setup in you OS the variable OPENAI_API_KEY.
The result of this chat is:

Melden Sie sich an, um zu kommentieren.


henok
henok am 1 Jun. 2023 um 12:39
write a matlab code EE vs no of users on EE analysis of 5g udn based massive MIMO using ZF

Produkte


Version

R12.1

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by