在Oracle 11g DB中使用OpenAI API(chatgpt)

rhfm7lfc  于 2023-08-04  发布在  Oracle
关注(0)|答案(1)|浏览(158)

因此,我尝试使用OpenAI API集成到基于PL/SQL(Oracle 11 gR 2)的应用程序中。第一步,我创建并配置了一个ACL和一个Wallet来访问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.开始_REQUEST行,我已经尝试了不同的参数(https_host => 'api.openai.com'或http_version => 'HTTP/1.1'或两者),结果相同。
我需要使用UTL_HTTP包,因为我的DB没有安装APEX,所以APEX_WEB_SERVICE包不可用。
有同样问题的人试图在旧的Oracle DB中通过HTTPS(或特定的openAI API)使用API?任何提示或建议?
谢谢你,谢谢

k4aesqcs

k4aesqcs1#

Oracle 11.1只支持SSLv 3连接协议;它不支持TLS协议。如果您尝试连接到禁用SSLv 3协议的网站(许多网站由于SSLv 3的安全问题而禁用了SSLv 3协议),则会收到错误ORA-29273
要使用连接,请执行以下操作:

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

相关问题