Connecting to ChatGPT using API
이전 댓글 표시
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);
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
댓글 수: 4
the cyclist
2023년 1월 15일
If that's your actual API key, I'd remove it
John Adams
2023년 1월 15일
Wii Che
2023년 2월 19일
% 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
Yakoub
2023년 10월 28일

채택된 답변
추가 답변 (3개)
Duncan Carlsmith
2023년 2월 23일
3 개 추천
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
Hans Scharler
2023년 2월 23일
Your project works perfectly. Thanks for sharing!
Duncan Carlsmith
2023년 2월 24일
Thanks for checking it out!
% Define the prompt
prompt = "What is the capital of France?";
% Define the API endpoint
api_endpoint = 'https://api.openai.com/v1/chat/completions';
% Define the API key from https://platform.openai.com/account/api-keys
api_key = "sk-XXXYYYZZZ";
% Define the headers
headers = ["Content-Type", "application/json"; "Authorization", "Bearer " + api_key];
% Define the data
message = containers.Map({'role', 'content'}, {'user', prompt});
data = containers.Map({'model', 'messages'}, {'gpt-3.5-turbo', {message}});
% Convert the data to JSON
data = jsonencode(data);
% Send the POST request
options = weboptions('RequestMethod', 'post', 'HeaderFields', headers);
response = webwrite(api_endpoint, data, options);
% Return the response
response = response.choices.message.content;
disp(prompt)
disp(response)
댓글 수: 1
thijs buuron
2023년 1월 20일
1 개 추천
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.
댓글 수: 2
Gregorio Ariel Guerrero Moral
2023년 4월 6일
편집: Gregorio Ariel Guerrero Moral
2023년 4월 6일
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:

tony
2023년 9월 10일
thank you
not working for a longer quesion
카테고리
도움말 센터 및 File Exchange에서 Call Web Services from MATLAB Using HTTP에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!