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

又發(fā)現(xiàn)了一個有趣的 ChatGPT 玩法,分享給大家

人工智能
今天又給大家?guī)砹艘环N OpenAI 的玩法,阿粉提供了幾種玩法都是自己學習研究的玩法,大家自己玩玩就好,目的是為了讓大家在遇到新事物和技術的時候能保持著熱情,新技術的到來我們不能保守,而是要迎接。

阿粉之前給大家寫過如何將 ChatGPT 接入微信和釘釘,沒看過的可以往公眾號前面的文章翻翻,最近又發(fā)現(xiàn)了一個有趣的玩法,周末找時間實現(xiàn)了一下,感覺挺不錯的,分享給大家。

背景

事情的起因是阿粉在朋友圈看到了這樣一條信息,敏感信息已經(jīng)去掉了,意思很明顯就是將 OpenAI? 接入到知識星球了,用戶可以通過星球提問的方式來對 OpenAI? 進行提問,OpenAI 會自動回答相應用戶的問題,并通知到用戶。

圖片

看到這就很有意思了,對于運營了知識星球的博主來說,特別是技術類博主,很多簡單的技術知識點,完全就可以通過自動化來進行回答,而不用太消耗自己的時間。

那有的小伙伴就要問了,這跟用戶自己百度有什么區(qū)別呢?

只要用過 OpenAI 的小伙伴是深有體會的,百度搜索出來的答案廣告很多不說,要在大量相似的內(nèi)容中找到有用了,往往還是要花點時間的。

而 OpenAI 提供的答案往往思路清晰,條理分明,雖然說對于很多時效性的問題給不了確切的答案,但是對于一些技術知識點的回答還是可以很精準的。

下面是阿粉看到的一些 case,大家可以瞅瞅

可以寫代碼

圖片

會回答問題

圖片

會寫大綱

圖片

會分析性能

圖片

搭建

上面的 case? 看完了,那么接下來就可以開始著手搭建了,首先要知道我們該如何實現(xiàn)這個自動智能回答功能,思路很簡單,就是先獲取待回答的問題列表,然后遍歷問題請求 OpenAI 的接口,然后再將返回的結(jié)果回寫通知對應的用戶,這個過程我們需要通過定時任務輪詢?nèi)ヌ幚怼?/p>

綜上所述,我們需要準備下面這些東西

  1. 一個可以被提問的知識星球賬號,也就是被提問者;
  2. OpenAI? 賬號對應的 API KEY,這一步相對會稍微麻煩一點,不過之前的文章都提供過思路如何獲取,不在本文討論的范圍,感興趣的翻翻前面的文章。
  3. 調(diào)度工具或者調(diào)度平臺,也可以是 Linux 系統(tǒng)的定時命令;
  4. 實現(xiàn) API 請求的程序或者腳本;

編程

上面的四點都是必須的,但是最主要的當然還是編寫代碼,按照我們上面的思路,我們這個程序需要調(diào)用三個接口

  1. 獲取問題列表;
  2. 請求 OpenAI 獲取答案;
  3. 回寫答案通知用戶;

下面我們依次來看看這三個接口要如何對接,提前說明下,阿粉這邊為了簡單用的調(diào)度平臺是 XXL-JOB? 對應的執(zhí)行任務腳本是采用 Nodejs 寫的。

用準備好的被提問者賬號登錄網(wǎng)頁版的知識星球進入到對應的星球后,可以看到有一個【等我回答】的菜單。

圖片

我們打開瀏覽器的控制臺,點擊【等我回答】按鈕,就可以看到請求的對應接口地址

圖片

這是我們第一個要請求的接口地址,請把它記下來,再通過 request header? 拿到對應的 cookie 信息和一些參數(shù)過后,這樣我們就可以通過代碼來進行接口請求了,獲取到需要回答的問題列表。

var options = {
url: ZSXQ_UNANSWER_URL,
headers: {
'accept': 'application/json, text/plain, */*',
'cookie': cookie,
'User-Agent': 'Mozilla/5.0 xxxx',
'x-timestamp': Math.floor(Date.now() / 1000),
}
};

request(options, callback);

獲取到了問題列表過后,我們在 callback? 回調(diào)方法里面就可以開始遍歷請求 OpenAI? 接口獲取答案了,OpenAI? 的接口地址是這個 https://api.openai.com/v1/completions。

function callback(error, response, body) {
if (!error && response.statusCode === 200) {
let json = JSON.parse(body);
if (!json.succeeded) {
console.log("succeeded false")
process.exit(0)
}
if (json.resp_data.topics.length > 0) {
let length = json.resp_data.topics.length;
for (let i = 0; i < length; i++) {
let question = json.resp_data.topics[i].question;
topicId = json.resp_data.topics[i].topic_id;
console.log(topicId + ":" + question.text)
let openRequestOption = {
url: OPEN_AI_URL,
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer " + API_KEY,
"topicId": topicId
},
timeout: 120000,
body: {
"model": "text-davinci-003",
"prompt": question.text,
"max_tokens": 2000,
"temperature": 0.9
},
json: true
};
request.post(openRequestOption, completionsCallBack)
}
} else {
console.log("topics empty")
process.exit(0)
}
} else {
console.log("get questions error")
process.exit(-1)
}
}

將獲取到的答案回寫到用戶,這里我們需要第三個地址了,可以跟第一個地址一樣進行獲取,在頁面進行一個回答,就可以獲取到對應的回答地址,不過需要我們自行替換其中的主題 ID,這個比較簡單就不截圖了,直接上代碼。

// 智能回答
function completionsCallBack(error, response, body) {
if (!error && response.statusCode === 200) {
if (null != body && body.choices.length > 0) {
let reply = body.choices[0].text;
console.log(response.request.headers.topicId + ":" + reply);
if (null != reply && reply.length > 0) {
// 回答問題并通知提問者
let answerOptions = {
url: ZSXQ_ANSWER_URL + "/" + response.request.headers.topicId + "/answer",
headers: {
'accept': 'application/json, text/plain, */*',
'cookie': cookie,
'User-Agent': 'Mozilla/5.0 xxx',
'x-timestamp': Math.floor(Date.now() / 1000),
},
timeout: 12000,
body: {
"req_data": {
"image_ids": [],
"silenced": silenced,
"text": reply
}
},
json: true
}
request.post(answerOptions, answerCallBack)
}
}
} else {
console.log("get answer error")
process.exit(-1)
}
}

// 回答后調(diào)用
function answerCallBack(error, response, body) {
if (response.statusCode === 200 && body.succeeded) {
console.log(":智能回答成功");
//process.exit(0)
} else {
console.log(":智能回答失敗");
//process.exit(-1)
}
}

至此相應的功能基本上已經(jīng)算實現(xiàn)了,有幾個細節(jié)簡單說明下

  1. 回寫答案接口參數(shù)中 silenced 代表是否通知其他人,true 代表只通知提問者,false 表示通知所有人,通知所有人就表示所有人都能看到回答,否則就只有提問者才會看到回答,剛開始調(diào)試的時候可以設置成 true,后期上線可以設置成 false。
  2. 因為這個功能是需要通過定時任務來觸發(fā)的,為了避免不必要的麻煩,可以自行設定合理的定時時間,比如半夜就別調(diào)用了,晚點回答別人問題并不會有什么影響,調(diào)度頻次也不要太頻繁,低調(diào)使用。

效果

在 XXL-JOB? 上面配置一個 NodeJs 的任務,

圖片

圖片

圖片

可以看到阿粉這邊指定了相應時間才進行查詢,能看到可以智能回答成功了,對應在知識星球中也能正常的顯示。爽歪歪~

總結(jié)

今天又給大家?guī)砹艘环N OpenAI 的玩法,阿粉提供了幾種玩法都是自己學習研究的玩法,大家自己玩玩就好,目的是為了讓大家在遇到新事物和技術的時候能保持著熱情,新技術的到來我們不能保守,而是要迎接。

責任編輯:武曉燕 來源: Java極客技術
相關推薦

2023-05-08 12:12:56

2021-06-02 08:00:57

WebAsyncTas項目異步

2021-10-29 11:45:26

Python代碼Python 3.

2025-05-19 10:04:48

2022-11-30 09:18:51

JavaMyBatisMQ

2021-04-22 07:47:47

JavaJDKMYSQL

2021-12-29 19:20:41

數(shù)據(jù)GitHub服務器

2024-05-20 08:25:55

2023-10-23 09:25:08

模型AI

2020-06-09 08:05:11

Android 代碼操作系統(tǒng)

2019-01-14 11:10:43

機器學習人工智能計算機

2023-10-16 15:41:14

WebCSS

2021-08-19 15:05:08

微信功能技巧

2023-05-17 00:22:15

2021-04-28 14:31:35

Dubbo接口日志

2020-06-16 08:39:35

JavaScript圖像處理庫

2020-05-18 08:42:23

CSS背景圖像前端開發(fā)

2021-01-26 11:16:12

漏洞網(wǎng)絡安全網(wǎng)絡攻擊

2023-03-17 18:33:12

ChatGPTLLM應用

2023-03-06 13:52:00

ChatGPT數(shù)學
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产精品三级精品av网址 | 亚洲精品一区二区冲田杏梨 | 韩日精品一区 | 黄色一级特级片 | 精品国产乱码久久久久久1区2区 | 亚洲精品高清视频在线观看 | 日韩在线免费看 | a中文在线视频 | 国产亚洲一区二区在线观看 | 激情五月综合 | 在线a视频网站 | 国产美女福利在线观看 | 日本黄视频在线观看 | 久久久久久久久久久高潮一区二区 | 免费黄色a级毛片 | 天天干天天操天天看 | 国产精品久久久久久久免费观看 | 午夜免费视频 | 欧美精品片 | 精品在线一区 | 成人av电影网 | 亚洲综合网站 | 精品一区二区观看 | 午夜精品一区二区三区在线观看 | 久久精品二区 | 91精品国产一区二区三区 | 欧美精品福利 | 日本一区二区三区四区 | 久久国内精品 | 国产欧美在线观看 | 韩日av在线 | 久久精品天堂 | 中文字幕在线精品 | 午夜天堂 | 美日韩免费视频 | 精品少妇一区二区三区日产乱码 | 欧美多人在线 | 欧美成人h版在线观看 | 欧美视频成人 | 国产日韩久久 | 亚洲一区二区日韩 |