精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于 ChatGPT API 的劃詞翻譯瀏覽器腳本實現(xiàn)

人工智能
本文介紹了如何實現(xiàn)劃詞翻譯的基本功能,包括使用 OpenAI 提供的接口進行翻譯、在 HTML 頁面中添加觸發(fā)翻譯的按鈕和鼠標抬起事件監(jiān)聽事件、使用 AJAX 請求從接口獲取翻譯結果并將其顯示在 DIV 元素中等。

前言

最近 GitHub 上有個基于 ChatGPT API 的瀏覽器腳本,openai-translator, 短時間內(nèi) star 沖到了 12k, 功能上除了支持翻譯外,還支持潤色和總結功能,除了瀏覽器插件外,還使用了 tauri 打包了一個桌面客戶端,那拋開 tauri 是使用 rust 部分,那瀏覽器部分實現(xiàn)還是比較簡單的,今天我們就來手動實現(xiàn)一下。

openAI 提供的接口

比如我們可以復制以下代碼,在瀏覽器控制臺中發(fā)起請求,就可以完成翻譯

//示例
const OPENAI_API_KEY = "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";

const prompt = `Translate this into Chinese:
hello world`;
const res = await fetch("https://api.openai.com/v1/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
authorization: `Bearer ${OPENAI_API_KEY}`,
},
body: JSON.stringify({
model: "text-davinci-003",
prompt,
max_tokens: 1000,
temperature: 0,
}),
});
const response = await res.json();

const result = response.choices[0].text;

上述代碼中 OPONAI_API_KEY 需要替換成你自己的。

實現(xiàn)劃詞翻譯

劃詞翻譯是一種常見的網(wǎng)頁功能,用戶選擇一個單詞或一段文本時,自動彈出一個小窗口,顯示該單詞或文本的翻譯。

  1. 首先,在 HTML 頁面中添加一個空的 DIV 元素和一個觸發(fā)翻譯的按鈕
let keyword;
const translation = document.createElement("div");
translation.id ="translation";
const icon = document.createElement("img");
icon.style.width ="30px";
icon.style.height = "30px";
icon.src ="http://example.com/icon.png";
translation.appendChild(icon)
  1. 為頁面添加一個鼠標抬起事件監(jiān)聽器,當用戶選擇一段文本時,設置搜索關鍵詞。
document.addEventListener("mouseup", (event) => {
const selection = window.getSelection().toString().trim();
if (selection) {
keyword=selection;
}
});
  1. 鼠標點擊執(zhí)行翻譯邏輯??梢允褂?AJAX 請求從后臺獲取翻譯結果并將其顯示在 DIV 元素中。
function translate(){
if(keyword){
// 執(zhí)行翻譯邏輯
}
}
icon.addEventListener("mouseover", translate);
  1. 在 CSS 樣式表中為 DIV 元素添加樣式,使其浮動在頁面上顯示。
#translation {
position: fixed;
top: 10px;
right: 10px;
max-width: 300px;
padding: 5px;
background-color: #f7f7f7;
border: 1px solid #ccc;
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);
z-index: 9999;
}

以上這些步驟就能實現(xiàn)劃詞翻譯的基本功能,一起來看下效果。

圖片

react + antd 實現(xiàn)

上面的代碼只是實現(xiàn)了一個最簡單的版本,樣式也不夠美觀,因此我們可以使用 webpack + react + antd 來實現(xiàn)一個現(xiàn)代化的插件, 這里我使用一個之前創(chuàng)建的模版tampermonkey-starter。

使用 antd 的 Popover 組件來顯示,使用 react 重構下js代碼,我們就可以實現(xiàn)如下效果。

圖片

劃詞翻譯

點擊翻譯按鈕,就會通過接口請求,將翻譯結果顯示在下方。但是翻譯結果需要等 api 完全返回,才會顯示出來,這樣會等待較慢,我們可以使用 Stream,OpenAI 的接口支持流渲染嗎,這樣結果就會一個字一個字蹦出來。

import { createParser } from "eventsource-parser";

const translate = async (text: string) => {
const resp = await fetch("https://api.openai.com/v1/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
authorization:
`Bearer ${OPENAI_API_KEY}`,
},
body: JSON.stringify({
model: "text-davinci-003",
prompt: `Translate this into Chinese:
${text}`,
max_tokens: 1000,
temperature: 0,
frequency_penalty: 0,
stream: true,
}),
});
if (resp.status !== 200) {
const res = await resp.json();
setLoading(false);
console.error(res);
return;
}
const parser = createParser((event) => {
if (event.type === "event") {
const data = event.data;
if (data === "[DONE]") {
setLoading(false);
}
try {
let json = JSON.parse(event.data);
setResult((prev) => {
return prev + json.choices[0].text;
});
} catch (error) {
console.log(error);
}
}
});
const data = resp.body;
if (!data) {
console.log("Error: No data received from API");
return;
}
const reader = resp.body.getReader();
try {
while (true) {
const { done, value } = await reader.read();
if (done) {
setLoading(false);
break;
}
const str = new TextDecoder().decode(value);
parser.feed(str);
}
} finally {
reader.releaseLock();
}
};

在上面代碼中,我們使用 fetch? API 發(fā)送了一個 HTTP 請求,并在響應中獲取了一個可讀流。我們可以使用 getReader? 方法獲取一個讀取器對象,并使用它來處理流數(shù)據(jù),使用了 eventsource-parser這個包來解析服務器推送(Server-sent events)的數(shù)據(jù)。

這樣響應的內(nèi)容就會根據(jù)Server-sent events(服務器發(fā)送的事件)逐個顯示了。

圖片

文本轉(zhuǎn)語音

一般翻譯插件都有語音播放的功能,我們可以利用 可以使用Web Speech API。此API提供了兩個語音合成接口:SpeechSynthesis和SpeechSynthesisUtterance

function speak(text) {
if ('speechSynthesis' in window) {
const utterance = new SpeechSynthesisUtterance(text);
utterance.voice = speechSynthesis.getVoices()[0];
utterance.pitch = 1;
utterance.rate = 1;
speechSynthesis.speak(utterance);
}
}

然后直接調(diào)用這個函數(shù),傳入需要朗讀的文本,就可以實現(xiàn)語音播放

speak('Hello, world!');

小結

本文介紹了如何實現(xiàn)劃詞翻譯的基本功能,包括使用 OpenAI 提供的接口進行翻譯、在 HTML 頁面中添加觸發(fā)翻譯的按鈕和鼠標抬起事件監(jiān)聽事件、使用 AJAX 請求從接口獲取翻譯結果并將其顯示在 DIV 元素中等。同時還介紹了如何使用 webpack + react + antd 實現(xiàn)一個現(xiàn)代化的插件,并利用 Web Speech API 實現(xiàn)語音播放功能。

責任編輯:武曉燕 來源: JS酷
相關推薦

2023-02-14 07:49:34

ChatGPT瀏覽器Bing

2023-02-17 09:31:39

Opera瀏覽器ChatGPT

2025-09-23 04:55:00

Mock接口工具

2011-06-10 17:10:32

Qt GUI 瀏覽器

2009-10-22 09:39:42

Google Chro瀏覽器翻譯擴展插件

2010-04-05 21:57:14

Netscape瀏覽器

2012-04-16 10:04:08

Eclipse瀏覽器IDE

2013-07-08 14:45:52

2009-04-03 09:09:21

瀏覽器網(wǎng)絡辦公室

2012-04-11 10:16:02

EclipseIDE

2019-07-16 07:15:42

瀏覽器網(wǎng)絡威脅網(wǎng)絡安全

2023-04-19 08:21:41

ChatGPT瀏覽器操作系統(tǒng)

2021-05-17 14:15:16

Edge瀏覽器Android翻譯功能

2012-03-20 11:31:58

移動瀏覽器

2012-03-19 17:25:22

2012-03-20 11:41:18

海豚瀏覽器

2012-03-20 11:07:08

2010-09-16 11:21:54

FirefoxJS

2021-10-08 08:20:06

LinuxChromium瀏覽器

2019-04-29 09:46:23

瀏覽器網(wǎng)絡威脅網(wǎng)絡攻擊
點贊
收藏

51CTO技術棧公眾號

黄色亚洲在线| 欧美1区2区3| 国产精品热久久久久夜色精品三区| 国产精品久久97| 亚洲AV成人无码精电影在线| 伊人www22综合色| 色综合色狠狠综合色| 亚洲一二三区精品| 欧美熟女一区二区| 欧美aaaaaa午夜精品| 欧美国产激情18| 极品人妻videosss人妻| 天堂精品在线视频| 欧美主播一区二区三区| 国产欧美精品aaaaaa片| youjizz在线播放| 福利一区二区在线| 国产精品成人aaaaa网站| 久久久久久久福利| 第一会所sis001亚洲| 91精品国产入口在线| 97国产精东麻豆人妻电影| 国产黄a三级三级三级av在线看| www.久久精品| 国产这里只有精品| 国产三级精品三级在线观看| 欧美日韩1区| 色悠悠国产精品| 国产国语性生话播放| 无码国模国产在线观看| 欧美理论电影在线| 蜜臀久久99精品久久久酒店新书| 久草在线资源站资源站| 亚洲三级电影全部在线观看高清| 欧美精品一区二区视频| 欧美一区二区三区激情| 国内精品国产三级国产a久久| 国产精品精品视频| 久久久久久在线观看| 国产精品久久777777毛茸茸 | 日产午夜精品一线二线三线| 日韩精品中文在线观看| 无码国产精品一区二区免费式直播| 精品伊人久久| 在线播放欧美女士性生活| 午夜激情福利在线| 成人h在线观看| 在线观看日韩av先锋影音电影院| 欧美一级片中文字幕| 蜜桃av在线播放| 五月婷婷另类国产| 久艹在线免费观看| 黄色美女视频在线观看| 亚洲精品成人少妇| 久久这里只有精品8| 麻豆av在线免费观看| 亚洲精品你懂的| 亚洲一区二区三区乱码| av在线1区2区| 综合欧美一区二区三区| 一区二区三区四区五区精品 | 男人揉女人奶房视频60分| av人人综合网| 精品色蜜蜜精品视频在线观看| 男女猛烈激情xx00免费视频| 9lporm自拍视频区在线| 狠狠躁夜夜躁人人爽天天天天97| 日韩av在线第一页| 神马久久资源| 欧美人妇做爰xxxⅹ性高电影| 不卡的av中文字幕| 日本在线视频一区二区三区| 日韩女优av电影| 麻豆精品国产传媒av| 乱亲女h秽乱长久久久| 亚洲精品一区二区三区不| 欧美 日韩 国产 成人 在线观看| 俺要去色综合狠狠| 美日韩精品免费视频| 91精品国产高潮对白| 性伦欧美刺激片在线观看| 国产精品久久久久久久久久三级| 一区二区视频播放| 国产成人免费在线观看不卡| 久久波多野结衣| 超碰免费在线| 亚洲猫色日本管| 久久国产精品视频在线观看| 欧美最新精品| 日韩限制级电影在线观看| 97人妻精品一区二区三区免费| 亚洲专区视频| 久久久国产在线视频| 国产在线拍揄自揄拍| 日韩福利电影在线观看| 2022国产精品| 国产乱理伦片a级在线观看| 亚洲天堂成人网| 精品中文字幕av| 精品国产一区二| 亚洲欧美日韩一区二区三区在线| 乱老熟女一区二区三区| 亚洲影音先锋| 成人三级在线| 成人av毛片| 午夜电影网一区| 天堂av在线8| 免费视频一区三区| 久久久久久久国产| 一级特黄aa大片| 91免费在线播放| 91传媒免费视频| 777午夜精品电影免费看| 亚洲成人精品久久| 手机在线免费看片| 日韩精品一二三| 国产在线精品一区二区三区》| 在线看免费av| 色婷婷精品久久二区二区蜜臀av| 日韩精品国产一区| 天天超碰亚洲| 国产精品久久一区| 九色在线免费| 狠狠色狠狠色综合日日五| 91精产国品一二三| 亚洲国产日韩欧美在线| 国产精品一区专区欧美日韩| 日本大片在线观看| 午夜国产精品影院在线观看| 色综合久久久无码中文字幕波多| 欧美激情偷拍自拍| 国产精品美乳在线观看| 户外极限露出调教在线视频| 欧美午夜激情小视频| 日韩黄色一区二区| 欧美韩国一区| 91在线观看免费高清| 欧美三级电影一区二区三区| 在线免费观看日韩欧美| 熟女高潮一区二区三区| 亚欧成人精品| 欧美一卡2卡3卡4卡无卡免费观看水多多 | 国产一二精品视频| 亚洲视频精品一区| 一区二区三区| 欧美成人精品激情在线观看| 国产偷拍一区二区| 亚洲精品中文字幕乱码三区 | 午夜精品免费观看| 日本一区二区三区在线不卡| 黄色成人免费看| 日韩精品欧美| 成人国产精品色哟哟| 色多多视频在线观看| 欧美精品电影在线播放| 久久精品一区二区三区四区五区| 激情综合网av| 欧美精品在欧美一区二区| 亚洲五码在线| 高清一区二区三区四区五区| 无码国产精品一区二区色情男同 | 91免费视频网站在线观看| 一本久久青青| 国产精品夜色7777狼人| 老司机精品视频在线观看6| 91精品国产色综合久久久蜜香臀| 久久国产精品国语对白| 国产999精品久久久久久绿帽| 国产一线二线三线女| 日本中文字幕在线一区| 国产福利视频一区二区| 日韩精品成人av| 精品久久久久久久久久久院品网| 亚洲视频免费播放| 国产精品视频观看| 亚洲欧美激情一区二区三区| 亚洲精一区二区三区| 日韩成人在线资源| 欧美二区观看| 日本不卡高字幕在线2019| 免费黄色在线| 亚洲精品一区二区精华| 免费无码国产精品| 亚洲女同女同女同女同女同69| 图片区偷拍区小说区| 媚黑女一区二区| 午夜探花在线观看| 日韩理论电影中文字幕| 国产欧美亚洲精品| segui88久久综合| 一色桃子一区二区| 国产精品-色哟哟| 偷拍日韩校园综合在线| 亚洲精品国产精品乱码在线观看| 成人精品小蝌蚪| 亚洲一区日韩精品| 99亚洲精品| 日本精品免费视频| 久操国产精品| y111111国产精品久久婷婷| 成人在线爆射| 久久久久五月天| 成人亚洲综合天堂| 亚洲国产精品va在线观看黑人| 最近中文字幕在线免费观看| 香蕉av福利精品导航| 潘金莲一级黄色片| 国产婷婷一区二区| 欧美夫妇交换xxx| 国产在线精品视频| av五月天在线| 亚洲中午字幕| 欧美一区二区激情| 99视频精品全国免费| 欧洲精品国产| 欧美丝袜美腿| 国产精品高清一区二区三区| 深夜日韩欧美| 国产精品福利在线观看| 神马久久午夜| 国内精品久久久久| 最新日本在线观看| 日韩在线国产精品| 草草影院在线观看| 亚洲乱码一区av黑人高潮 | 亚洲男人第一网站| 日本免费网站在线观看| 欧美一级高清片| 国产美女免费视频| 欧美日韩成人激情| 欧美激情一区二区三区免费观看| 欧美日韩综合视频网址| 久久高清免费视频| 亚洲图片自拍偷拍| 黄色一级视频免费| 亚洲美女一区二区三区| 大地资源高清在线视频观看| 国产精品国产三级国产有无不卡| 亚洲第一香蕉网| 97久久超碰国产精品电影| a级片在线观看视频| 大白屁股一区二区视频| 岛国av免费观看| 成人午夜视频福利| 中文字幕人妻一区| 99久久综合国产精品| 艳妇乳肉亭妇荡乳av| av一区二区三区黑人| 亚洲国产综合视频| 久久久久久久久99精品| 国产女主播喷水高潮网红在线| 久久无码av三级| 久久久久亚洲av成人无码电影 | 精品国产国产综合精品| 国产精品免费久久| 911国产在线| 亚洲视频网在线直播| 亚洲国产成人精品综合99| 一区二区三区欧美视频| 日韩毛片在线视频| 欧美视频第一页| 日韩欧美在线观看免费| 欧美性大战久久久久久久蜜臀| 中日韩在线观看视频| 欧美精品在线观看播放| 精品区在线观看| 亚洲国产欧美一区二区丝袜黑人| 五月天婷婷社区| 亚洲欧美国产精品| 2017亚洲天堂1024| 色综合久久久888| 爱草tv视频在线观看992| 日本一区二区在线免费播放| 成人国产网站| 99re资源| 久久不见久久见国语| 亚洲午夜精品久久久中文影院av | 在线播放一区二区精品视频| 国产一区二区在线网站| 成人羞羞网站入口| 天天干天天色天天爽| 国产精品亚洲综合久久| 91亚洲免费视频| 99久久精品免费精品国产| a资源在线观看| 一区二区三区欧美久久| 一区二区三区福利视频| 7777精品伊人久久久大香线蕉经典版下载 | 日韩免费成人av| 亚洲欧美激情在线| 亚洲精品男人天堂| 91.麻豆视频| 免费一级毛片在线观看| 欧美精品在线免费观看| 欧美xxx视频| 97久久精品午夜一区二区| 你懂的视频欧美| 国产天堂视频在线观看| 日本午夜精品视频在线观看| 91传媒理伦片在线观看| 国产精品无人区| 国产成人愉拍精品久久| 欧美人妖巨大在线| 噜噜噜噜噜在线视频| 九九热99久久久国产盗摄| 精品欧美一区二区三区在线观看| 国产精品 日韩| 久久社区一区| 99久久激情视频| 99久久精品费精品国产一区二区| 国产精品视频一区二区三| 在线观看日韩一区| 五月婷中文字幕| 欧美精品999| **国产精品| 亚洲欧美国产一区二区| 亚洲一区不卡| 亚洲男女在线观看| 亚洲国产视频一区二区| 国产乱叫456在线| 中文字幕v亚洲ⅴv天堂| 特黄毛片在线观看| 国产一区自拍视频| 亚洲视频一二| 成人三级做爰av| 最近日韩中文字幕| 一区二区www| 一区二区三区久久精品| 精品国产免费人成网站| 九九九热999| 日韩亚洲国产精品| 国产一级伦理片| 亚洲一区二区av电影| 超碰免费在线97| 欧美成在线视频| 久久国产精品免费一区二区三区| 一本色道久久综合亚洲精品婷婷 | 欧美日韩色婷婷| 蜜臀av午夜精品| 欧美激情日韩图片| 视频二区欧美| 久久这里只有精品8| 国产成人精品aa毛片| 久久久久成人精品无码| 日韩视频一区二区三区 | 亚洲免费av网站| 国产免费一区二区三区最新不卡| 日韩在线www| 亚洲视频自拍| 黄色污污在线观看| 国产激情视频一区二区三区欧美| 老妇女50岁三级| 精品裸体舞一区二区三区| av中文资源在线资源免费观看| 国产视频99| 久久久久在线| 少妇视频在线播放| 欧美一级二级三级乱码| 丁香花在线电影小说观看| 精品国产一区二区三区麻豆小说 | 91不卡在线观看| 激情成人在线观看| 亚洲国产欧美一区二区三区丁香婷| 手机看片1024日韩| 国产精品9999| 香蕉综合视频| 中文字幕人妻熟女在线| 欧美日韩免费区域视频在线观看| 久久久久久女乱国产| 国产欧美精品一区二区| 在线国产一区| 国产原创剧情av| 色哟哟一区二区在线观看| 日本中文字幕视频在线| 国产精品国色综合久久| 乱码第一页成人| 国产性生活大片| 亚洲国产精品久久久久秋霞不卡| 午夜伦理福利在线| 一级日韩一区在线观看| 成人精品一区二区三区中文字幕| 天天做天天爱夜夜爽| www.日本久久久久com.| 久久av国产紧身裤| 天天爽夜夜爽一区二区三区| 一区二区三区久久| 国产中文字幕在线看| 91精品综合久久久久久五月天| 在线不卡视频| 懂色av粉嫩av浪潮av| 亚洲国产福利在线| 国内自拍亚洲| 欧美综合在线播放| 亚洲欧美综合另类在线卡通| 香蕉人妻av久久久久天天| 成人免费在线视频网站| 香蕉久久夜色精品| 国内偷拍精品视频| 永久免费看mv网站入口亚洲| 51精品国产|