成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL可以做ChatGPT嗎?答案是YES!

人工智能
ChatGPT的響應也可能很大,因此在規(guī)劃集成時要考慮到這一點??赡苄枰謮K處理響應并將結果存儲在Couchbase,而不是直接將整個響應加載到內存中。

ChatGPT儼然已經風靡全球。今天我們的問題是,SQL可以做ChatGPT嗎?

一起來看看嗎。

Couchbase N1QL,又名SQL++,是一種類似SQL的語言,用于查詢存儲在Couchbase中的JSON數據。

Couchbase N1QL中的CURL()函數可向外部服務發(fā)出HTTP請求,因而可用于通過向ChatGPT的API端點發(fā)送請求來調用ChatGPT。

Couchbase中的JavaScript UDF是用JavaScript編寫的函數,不但可以作為N1QL查詢的部分執(zhí)行,還可用于通過向ChatGPT的API端點發(fā)出HTTP請求來調用ChatGPT。

要連接ChatGPT與Couchbase N1QL,我們需要知道ChatGPT的API端點以及訪問它所需的身份驗證憑據。

使用CURL()函數從Couchbase N1QL調用ChatGPT的語法如下所示:

SELECT CURL("https://api.openai.com/v1/engines/davinci/completions", {

    "request": "POST",

    "headers": [

        "Authorization: Bearer ChangeToYourKeyElseWontWork",

        "Content-Type: application/json"

        ],

    "data": '{

    "prompt": "Write a song on SQL using the style of Taylor Swift songs.",

        "max_tokens": 200

    }'

}) AS result ;

響應如下:

[
  {
    "result": {
      "choices": [
        {
          "finish_reason": "length",
          "index": 0,
          "logprobs": null,
          "text": " Where Swift sneakily commands, “…h(huán)ere you go / I wrote it on my phone so you could Google it,” you should write: “…h(huán)ere’s my query / I’ll drink my coffee and then will spool it.” Or, “…Here’s what I’m thinking / I pilfered my colleague’s project.” Only you can aspire to provide the official Taylor Swift SQL spoof song (don’t forget to play some chord tinkling).\n\n4. Invent an official buzzword for lambda expressions. Start a campaign to make “l(fā)ambda-eme” or variants thereof the standard. Try to get lambda-me in all the common tools available (lamellar, lambmaster, lambator, lambda café, lambananas, and so on).\n\n5. Write about a process that took you too long in just 5 minutes. Make fun of"
        }
      ],
      "created": 1675103061,
      "id": "cmpl-6eT7FnvGFN9HViONQnDhv5uabM6AO",
      "model": "davinci",
      "object": "text_completion",
      "usage": {
        "completion_tokens": 200,
        "prompt_tokens": 13,
        "total_tokens": 213
      }
    }
  }
]

要將參數傳遞給ChatGPT,我們可以修改上述示例中的數據字段。如:

"data": '{
    "prompt": "Write a song on SQL using the style of Taylor Swift songs.",
    "temperature": 0.5,
    "max_tokens": 200
    }'

接下來我再具體展開講講Couchbase N1QL和CURL()。

Couchbase N1QL

Couchbase N1QL(Non-First Normal Form Query Language)是一種類似SQL的語言,用于查詢存儲在Couchbase中的JSON數據。它提供了用于轉換和操作數據的各種函數,包括CURL()函數。

CURL()函數

CURL()函數允許我們從N1QL查詢向外部服務發(fā)出HTTP請求。這對于集成Couchbase與其他系統(如web API)或獲取web數據以便在Couchbase中進一步處理都非常有用。

在 Couchbase N1QL中使用CURL()函數的語法如下:

SELECT CURL(<url>, <options>);
SELECT RAW list FROM CURL("https://api.github.com/users/sitaramv/repos") AS list LIMIT 1;

CURL()函數向URL發(fā)送GET請求,請求返回用戶sitaramv 的存儲庫。

函數的結果存儲在響應變量list中,之后可使用其他N1QL函數進一步處理。

<options>對象可以包含多個屬性,例如用于指定HTTP請求的方法(GET、POST、PUT等)、用于設置自定義HTTP頭信息以及用于請求發(fā)送的數據。

下面是如何使用CURL()函數將數據發(fā)布到外部的示例

select imagetext 
from curl("https://vision.googleapis.com/v1/images:annotate?key=PUT YOUR KEY HERE", 
         {"request": "POST", 
          "header":"Content-Type: application/json", 
           "data": '{ "requests": [ { "image": { "source": { "imageUri": "http://www.couchbase.com/blog/wp-content/uploads/2018/01/Screen-Shot-2018-01-21-at-6.50.38-PM.png" } }, "features": [ { "type": "TEXT_DETECTION" } ] } ] }'}) AS imagetext

在此示例中,CURL()函數向URL發(fā)送POST請求,請求主體中包含JSON有效負載。

自定義頭Content-Type: application/json設置請求的數據為JSON格式。

Couchbase N1QL的CURL()函數提供了一種將Couchbase連接到外部系統并從web獲取數據的便捷方法。由于能夠指定HTTP方法、頭和請求體,因而具有很大的靈活性,可用于各種方案。

Couchbase N1QL的JavaScript UDF允許我們編寫自定義邏輯,然后可將其作為N1QL查詢部分執(zhí)行。這樣我們就可以通過編寫JavaScript代碼來執(zhí)行使用內置N1QL函數無法實現的復雜操作,非常便利。

JavaScript UDF

以下是如何在Couchbase N1QL中使用JavaScript UDF的示例:

curl -v -X POST \
http://localhost:8093/evaluator/v1/libraries/mysamples \
-u Administrator:password \
-H 'content-type: application/json' \
-d 'function square(val) {  \
return val * val;    \
}

CREATE FUNCTION square(val)
  LANGUAGE JAVASCRIPT AS "square" AT "mysamples";

SELECT square(5) as result;

示例中創(chuàng)建了一個名為square的JavaScript UDF,該UDF接受單個參數val并返回其平方值。

square函數是使用CREATE FUNCTION語句定義的,該函數的JavaScript代碼包含在一對$$中。LANGUAGE javascript選項指定函數的代碼用JavaScript編寫。

JavaScript UDF可以通過調用函數并傳遞必要的參數從而在N1QL查詢中使用。此示例調用square函數并傳入參數值5,并將結果存儲在result變量中。

JavaScript UDF本身可以發(fā)出N1QL語句來對數據進行操作。

curl -v -X POST http://localhost:8093/evaluator/v1/libraries/p1 -u Administrator:password -H 'content-type: application/json' -d 'function ptc1(a, b) {
var qi0 = START TRANSACTION;
var acc = []; for (const row of qi0) { acc.push(row); }
    var qi1 = INSERT INTO b VALUES(UUID(), {"radius": $a, "area": $b}) RETURNING meta().id,* ;
    for (const row of qi1) { acc.push(row); }
        var a2 = a * a;  var b2 = b * b;
        var qi2 = INSERT INTO b VALUES(UUID(), {"radius": $a2, "area": $b2}) RETURNING meta().id,* ;
        for (const row of qi2) { acc.push(row); }
        var qi9 = COMMIT ;
        for (const row of qi9) { acc.push(row); }
        return acc;
  }'

JavaScript UDF與CURL()函數的區(qū)別

Couchbase N1QL中的JavaScript UDF與CURL()函數不同在于:

1.CURL()函數用于向外部服務發(fā)出HTTP請求并從web檢索數據,而JavaScript UDF允許用JavaScript編寫自定義邏輯并將其作為N1QL查詢的一部分執(zhí)行。

2.JavaScript本身可以調用CURL()函數。

此外,CURL()函數從外部服務返回數據,而JavaScript UDF可以返回任何可以用JavaScript表示的值,例如數字、字符串、對象、數組等。

總之,Couchbase N1QL中的JavaScript UDF非常強大,通過JavaScript編寫自定義邏輯擴展了N1QL的功能,具有很大的靈活性,可用于執(zhí)行內置N1QL函數無法實現的復雜操作。

JavaScript UDF與CURL()函數的用法

從Couchbase N1QL調用OpenAI的ChatGPT,可以使用CURL()函數或JavaScript UDF來實現。兩種方法語法不同,下面簡單說明一下。

使用CURL()函數從Couchbase N1QL調用ChatGPT的語法如下:

SELECT CURL("https://api.openai.com/v1/engines/davinci/completions", {
    "request": "POST",
    "headers": [
        "Authorization: Bearer ChangeThisToYourKey",
        "Content-Type: application/json"
        ],
    "data": '{
    "prompt": "Hello. How are you doing today?",
       "temperature": 0.9,
        "max_tokens": 200
    }'
}) AS result ;

在此示例中,CURL()函數向ChatGPT的OpenAI API端點發(fā)出POST請求。

headers選項將Content類型設置為application/json,data選項指定請求負載,包括ChatGPT、溫度和要生成的最大令牌數這些提示。

API的響應存儲在響應變量中。

從Couchbase N1QL調用ChatGPT的另一種方法是使用JavaScript UDF。使用JavaScript UDF從Couchbase N1QL調用ChatGPT的語法如下:

curl -v -X POST http://localhost:8093/evaluator/v1/libraries/cglib -u Administrator:password -d 'function chatGPT3(prompt) {
  var chaturl = "https://api.openai.com/v1/engines/davinci/completions"
  dstr = "{\"prompt\": \"" + prompt +  "\",\"temperature\": 0.5 , \"max_tokens\": 200}"
 var options = {
"request" : "POST",
  headers: [
 "Authorization: Bearer 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",
 "Content-Type: application/json"
   ],
   "data": dstr
  };
  var query = SELECT CURL($chaturl, $options);
  var acc = [];
  for (const row of query)
    acc.push(row);

  return acc;
}'

在 cbq shell 中,執(zhí)行以下操作:

DROP FUNCTION chatGPT3;
CREATE FUNCTION chatGPT3(prompt) language javascript as "chatGPT3" at "cglib";

select chatGPT3("Write an essay on Lincoln.")

查詢結果如下:

cbq> select chatGPT3("Write an essay on Lincoln.");
{
    "requestID": "6acb9a20-93f0-41c2-bdc4-fe28107d85a9",
    "signature": {
        "$1": "json"
    },
    "results": [
    {
        "$1": [
            {
                "$1": {
                    "choices": [
                        {
                            "finish_reason": "length",
                            "index": 0,
                            "logprobs": null,
                            "text": "\n\n“Lincoln,” wrote Carl Sandburg, “was a self-made man in the best sense of the word.”\n\nWhat does Sandburg mean by this statement?\n\nWhat advantages did Lincoln have in his youth?\n\nWhat disadvantages did he have?\n\nWhat events from his youth helped to make him a self-made man?\n\nWhat events from his youth helped to make him a self-made man?\n\nWhat events from his youth helped to make him a self-made man?\n\nWhat events from his youth helped to make him a self-made man?\n\nWhat events from his youth helped to make him a self-made man?\n\nWhat events from his youth helped to make him a self-made man?\n\nWhat events from his youth helped to make him a self-made man?\n\nWhat events from his youth helped to make him a self-made man?\n\n"
                        }
                    ],
                    "created": 1675310533,
                    "id": "cmpl-6fL5Zu1MGjNorxBOwyg3H1ODzzjSD",
                    "model": "davinci",
                    "object": "text_completion",
                    "usage": {
                        "completion_tokens": 200,
                        "prompt_tokens": 6,
                        "total_tokens": 206
                    }
                }
            }
        ]
    }
    ],
    "status": "success",
    "metrics": {
        "elapsedTime": "7.179456323s",
        "executionTime": "7.179347355s",
        "resultCount": 1,
        "resultSize": 1537,
        "serviceLoad": 1
    }
}
cbq>

chatGPT實際寫的內容是

"text": "\n\n“Lincoln,” wrote Carl Sandburg, “was a self-made man in the best sense of the word.”
      What does Sandburg mean by this statement?
      What advantages did Lincoln have in his youth?
      What disadvantages did he have?
      What events from his youth helped to make him a self-made man?
      What events from his youth helped to make him a self-made man?
      What events from his youth helped to make him a self-made man?
      What events from his youth helped to make him a self-made man?

此示例創(chuàng)建了一個名為chatGPT的JavaScript UDF,接受prompt參數。其JavaScript代碼使用請求庫向ChatGPT的OpenAI API端點發(fā)出POST請求。請求的選項包括URL、method、頭和請求有效負載。

進行API調用后,來自API的響應將存儲在響應變量中。然后,UDF返回響應,我們可以通過調用chatGPT函數并傳遞必要的參數在N1QL查詢中使用該響應。

JavaScript UDF與CURL()函數的限制

雖然,使用CURL()函數以及通過JavaScript UDF從Couchbase N1QL調用ChatGPT可以為應用程序提供很多好處,但是,使用這些方法時要記住一些重要事項:

CURL()函數的限制:

1.N1QL中的CURL()函數僅限于發(fā)出GET和POST請求。如果需要發(fā)出其他類型的請求,例如PUT或DELETE,則需要使用JavaScript UDF。

2.CURL()函數是同步的,在收到響應之前將阻止N1QL查詢。這可能會影響性能,尤其是在響應較大或較慢的情況下。

數據大小的限制:

1.CURL()函數和JavaScript UDF對可以傳遞或接收的數據量都有限制。因此可能需要將數據分塊,如果數據非常大,則需要發(fā)出多個請求。

2.ChatGPT的響應也可能很大,因此在規(guī)劃集成時要考慮到這一點??赡苄枰謮K處理響應并將結果存儲在Couchbase,而不是直接將整個響應加載到內存中。

安全注意事項:

1.使用CURL()函數或JavaScript UDF向ChatGPT發(fā)出請求時,網絡將傳遞敏感信息,例如API密鑰和其他憑據。考慮信息的安全性,并在必要時采取措施對其進行加密或保護。

2.ChatGPT的響應也可能包含敏感信息,因此保護存儲在Couchbase中的數據并保護其免受未經授權的訪問非常重要。

牢記這些限制和注意事項,可以確保我們順利使用CURL()函數和JavaScript UDF成功集成ChatGPT到Couchbase N1QL。

結語

ChatGPT的能力令人印象深刻。雖然ChatGPT在代碼生成方面仍需改進,但這是一個全新的世界。

責任編輯:武曉燕 來源: 前端新世界
相關推薦

2023-09-21 15:05:12

ChatGPT搜索引擎

2023-02-13 23:15:31

ChatGPT聊天機器人人工智能

2023-04-25 07:00:20

2016-12-06 12:48:32

開源設計

2023-06-25 09:51:03

ChatGPT平臺

2024-01-24 18:55:56

ChatGPT聊天機器人

2022-12-08 08:16:59

ChatGPT開源商業(yè)化

2023-01-03 13:04:34

ChatGPT

2024-09-02 08:43:22

2023-06-11 15:48:54

機器人ChatGPT

2023-02-03 08:46:46

2019-07-24 15:33:55

大數據數據處理分析

2019-07-09 13:37:14

VR按摩療養(yǎng)院

2020-10-23 15:57:54

機器學習技術人工智能

2017-12-08 09:22:51

數據AI算法

2023-10-23 09:00:00

安全ChatGPT

2023-03-01 09:39:05

2023-09-28 12:14:55

2023-03-03 13:50:55

GPT-3AI

2023-05-08 12:12:56

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美国产一区二区 | 欧美1页 | 国产日韩欧美一区二区 | 福利片在线看 | 日韩一区二区在线免费观看 | 精品欧美色视频网站在线观看 | 亚洲日韩中文字幕一区 | 亚洲成人精 | 精品欧美一区二区三区精品久久 | 日韩成人在线网站 | 欧美国产视频 | 超碰97免费| 亚洲福利电影网 | 久久国内精品 | 国产精品国产三级国产播12软件 | 一区二区三区四区国产 | 玖玖色在线视频 | 亚洲精品一区二区久 | 亚洲综合网站 | 精品国产欧美一区二区三区成人 | 日韩成人在线电影 | 中文在线视频 | a毛片视频网站 | 女朋友的闺蜜3韩国三级 | 久久国品片 | 99伊人| 亚洲成人免费在线观看 | 亚洲成人精品一区 | 亚洲精品888 | 欧美日韩精品久久久免费观看 | 国产精品99久久久久久久vr | 国产成人精品一区二区三区在线 | 欧美日一区 | 亚洲最新在线 | 久久久人成影片免费观看 | 日本a∨精品中文字幕在线 亚洲91视频 | 久久久久久国产精品久久 | 久久最新 | 999久久久久久久久6666 | 久久综合一区 | 国产在线精品一区二区三区 |