gpt4 book ai didi

oracle - 在 Oracle 11g 数据库中使用 OpenAI API (chatgpt)

转载 作者:行者123 更新时间:2023-12-02 22:47:56 30 4
gpt4 key购买 nike

所以我尝试使用 OpenAI API 集成到基于 PL/SQL (Oracle 11gR2) 的应用程序中。第一步,我创建并配置 ACL 和钱包来访问 api,然后我编写了一个脚本来测试连接是否正常。但事实证明它总是返回 ORA-29273: HTTP 请求失败。

脚本代码:

DECLARE
l_url VARCHAR2(2000) := 'https://api.openai.com/v1/engines/text-davinci-003/completions';
l_request UTL_HTTP.REQ;
l_response UTL_HTTP.RESP;
l_buffer VARCHAR2(32767);
l_translation VARCHAR2(4000);
BEGIN

UTL_HTTP.SET_TRANSFER_TIMEOUT(300);
utl_http.set_wallet(path => 'file:PATH_OF_WALLET' ,password => 'WALLET_PW');

l_request := UTL_HTTP.BEGIN_REQUEST(url => l_url, method => 'POST');

UTL_HTTP.SET_HEADER(l_request, 'Content-Type', 'application/json');
UTL_HTTP.SET_HEADER(l_request, 'Authorization', 'Bearer MY_API_KEY');

l_buffer := '{"prompt": "Translate the phrase: Hello world!", "max_tokens": 50}';

UTL_HTTP.WRITE_TEXT(l_request, l_buffer);

l_response := UTL_HTTP.GET_RESPONSE(l_request);

BEGIN
LOOP
UTL_HTTP.READ_LINE(l_response, l_buffer, TRUE);
DBMS_OUTPUT.PUT_LINE(l_buffer);
l_translation := l_buffer;
END LOOP;
EXCEPTION
WHEN UTL_HTTP.END_OF_BODY THEN
NULL;
END;

UTL_HTTP.END_RESPONSE(l_response);

DBMS_OUTPUT.PUT_LINE('Translation: ' || l_translation);

EXCEPTION
WHEN UTL_HTTP.TOO_MANY_REQUESTS THEN
DBMS_OUTPUT.PUT_LINE('HTTP request limit exceeded.');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('An error occurred: ' || SQLERRM);
END;

错误发生在 UTL_HTTP.BEGIN_REQUEST 行上,我已经尝试使用不同的参数(https_host => 'api.openai.com' 或 http_version => 'HTTP/1.1' 或两者),并且结果相同。

我需要使用UTL_HTTP包,因为我的数据库没有安装APEX,所以APEX_WEB_SERVICE包不可用。

有人遇到同样的问题,尝试在旧的 Oracle 数据库中通过 HTTPS 使用 API(或者具体来说是 openAI API)?有什么提示或建议吗?

谢谢!

最佳答案

Oracle 11.1 only supports the SSLv3 connection protocol ;它不支持 TLS 协议(protocol)。如果您尝试连接到禁用了 SSLv3 协议(protocol)的网站(许多网站出于 SSLv3 的安全考虑而禁用了 SSLv3 协议(protocol)),那么您将收到错误 ORA-29273

连接使用:

  • TLSv1,您需要将数据库至少升级到 Oracle 11.2。
  • TLSv1.1 或 v1.2,您至少需要 Oracle 版本 11.2.0.4 并已应用 MES 补丁(可在 MOS Note 2274242.1 中找到,需要登录)

关于oracle - 在 Oracle 11g 数据库中使用 OpenAI API (chatgpt),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76627088/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com