精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产在线视频福利| 五月天婷婷久久| 日韩国产在线不卡视频| 亚洲一区二区欧美激情| 麻豆精品传媒视频| 亚洲天堂中文字幕在线| 国产精品红桃| 亚洲视频在线播放| 亚洲欧美激情一区二区三区| 中文字幕影音在线| 亚洲欧美日韩综合aⅴ视频| 精品视频免费观看| 国产露脸国语对白在线| 宅男噜噜噜66国产日韩在线观看| 中文字幕一区二区精品| 国产 xxxx| 亚洲成人1区| 色综合天天综合狠狠| 国产a级片免费看| 牛牛热在线视频| 国产成人精品免费一区二区| 国产精品久久久久秋霞鲁丝| 国产无码精品视频| 亚洲精品97| 中文字幕不卡av| 欧美xxxxx精品| 欧美日韩黄色| 欧美日韩一区二区三区在线看| 黄色一级片播放| 成人无遮挡免费网站视频在线观看| 91麻豆免费观看| 97在线中文字幕| 亚洲天堂免费av| 久久精品卡一| 国产91精品高潮白浆喷水| 国产午夜手机精彩视频| 日韩欧美大片| 夜夜嗨av一区二区三区免费区| 800av在线播放| 亚洲午夜免费| 日韩一区二区三区四区| 在线能看的av网站| 国产成人毛片| 91国偷自产一区二区三区成为亚洲经典| 欧美a级免费视频| 黄视频网站在线| 国产精品高潮呻吟| 亚洲一区二区三区免费看| 男人天堂综合| 久久久精品国产免大香伊| 精品国产综合久久| 少妇人妻精品一区二区三区| 成人夜色视频网站在线观看| 97视频中文字幕| 亚洲va欧美va| 国产精品一区二区久久精品爱涩 | 在线观看男女av免费网址| 国产精品五月天| 一区二区不卡在线观看| 丝袜美腿美女被狂躁在线观看 | 男人天堂资源网| 成人婷婷网色偷偷亚洲男人的天堂| 亚洲视频第一页| av男人的天堂av| 自拍欧美一区| 在线视频免费一区二区| 手机毛片在线观看| 999国产精品视频| 欧美超级乱淫片喷水| 极品颜值美女露脸啪啪| 欧美午夜不卡影院在线观看完整版免费| 欧美精品手机在线| 国产午夜久久久| 亚洲欧美大片| 国产精品第1页| 一区二区三区免费在线视频| 国产在线麻豆精品观看| 国产成人精品自拍| 亚洲 美腿 欧美 偷拍| 久久先锋影音av| 亚洲国内在线| 手机av在线播放| 激情成人在线视频| 日本888xxxx| 国产精品亚洲欧美日韩一区在线 | 手机av免费在线观看| 久久网这里都是精品| 亚洲一卡二卡三卡四卡无卡网站在线看| 素人av在线| 午夜精品在线视频一区| 又色又爽又高潮免费视频国产| 午夜精品久久久久久毛片| 欧美mv日韩mv国产| 51妺嘿嘿午夜福利| 国内精品99| 国产精品扒开腿做爽爽爽的视频| 国产麻豆免费视频| 91免费看`日韩一区二区| 亚洲一区二区三区精品动漫| 91丝袜在线| 欧美视频一区在线观看| 五月天丁香社区| 成人av国产| 97精品国产97久久久久久免费| 艳妇乳肉豪妇荡乳av无码福利| 国精产品一区一区三区mba桃花| 韩国成人动漫在线观看| 国产美女av在线| 色综合色狠狠综合色| 韩国一区二区三区四区| 欧美码中文字幕在线| 久久久久久成人精品| 91亚洲国产成人久久精品麻豆| 成人久久久精品乱码一区二区三区| 日韩欧美激情一区二区| 国产啊啊啊视频在线观看| 欧美日韩精品欧美日韩精品一综合| 稀缺呦国内精品呦| 91精品国产成人观看| 国产精品国产自产拍高清av水多| 色噜噜在线播放| 亚洲精品免费看| 天天色综合天天色| 亚洲激情播播| 久久人91精品久久久久久不卡 | 蜜臀91精品一区二区三区| 极品日韩久久| 青草在线视频| 6080午夜不卡| 国产又粗又猛又爽又黄的视频小说| 伊人久久大香线蕉av超碰演员| 91亚洲精华国产精华| 成人好色电影| 色婷婷亚洲精品| 日本丰满少妇裸体自慰| 欧美午夜在线视频| 国产日韩欧美视频| 97视频在线观看网站| 色噜噜夜夜夜综合网| 亚洲av成人片色在线观看高潮| 欧美在线首页| 97人人模人人爽人人少妇| 国产丝袜在线| 884aa四虎影成人精品一区| 欧美一区二区三区观看| 日本大胆欧美人术艺术动态| 日本不卡免费新一二三区| 麻豆免费在线| 日韩毛片在线观看| 国产精品一区二区三区四| 91网址在线看| 黄色片一级视频| 亚洲春色h网| 国产97在线亚洲| 免费福利在线视频| 在线视频亚洲一区| 久久久久久国产免费a片| 免费在线视频一区| 一本久道久久综合| 久久综合给合| 欧美激情第一页xxx| 人妻少妇精品无码专区| 激情久久av一区av二区av三区| 无码人妻aⅴ一区二区三区| 香蕉久久久久久久av网站| 欧美久久久久久久| 澳门av一区二区三区| 深夜福利国产精品| 国产熟女一区二区三区四区| 亚洲成人综合视频| 日韩片在线观看| 石原莉奈一区二区三区在线观看| 亚洲 日韩 国产第一区| 亚洲天堂网站| 久久久亚洲精品视频| 亚洲人成色777777精品音频| 91国模大尺度私拍在线视频| 一区二区三区在线播放视频| 国产精品一区二区男女羞羞无遮挡| 免费观看国产精品视频| 国产99精品| 96国产粉嫩美女| heyzo在线欧美播放| 亚洲一区第一页| 国产男男gay体育生网站| 黄色精品一区二区| a一级免费视频| 成人免费的视频| 日本美女高潮视频| 影视一区二区| 蜜桃狠狠色伊人亚洲综合网站| 黄页免费欧美| 97香蕉久久超级碰碰高清版 | a在线观看免费| 欧美日韩视频在线| 国产suv精品一区二区68| 成人av片在线观看| 免费一区二区三区在线观看| 一区精品久久| 一本色道久久综合亚洲精品婷婷| 哺乳一区二区三区中文视频 | www.成年人视频| 欧美一区电影| 久久精品久久精品国产大片| 亚洲精品伊人| 人人爽久久涩噜噜噜网站| 国产美女福利在线| 国产亚洲激情在线| 无码精品在线观看| 欧美一区二区私人影院日本| 在线观看免费国产视频| 亚洲精品美国一| 国产黄色片在线| 95精品视频在线| 97超碰免费在线观看| 秋霞av亚洲一区二区三| 自拍日韩亚洲一区在线| 亚洲a一区二区三区| 欧美一二三四五区| 牛牛精品成人免费视频| 91免费看蜜桃| 看片一区二区| 国产精品成久久久久三级| 天堂在线中文网官网| 欧美高清视频在线| 国精产品一区| 日日骚久久av| 超碰免费在线观看| 亚洲免费人成在线视频观看| 男人天堂综合网| 日韩欧美一级精品久久| 国产精品久久久久久久久久久久久久久久久久 | 日韩美女天天操| 国产精品伊人久久 | 亚洲一二三av| 久久精品国产精品亚洲精品| 99视频精品免费| 美女久久网站| 青青在线视频观看| 欧美一级一区| 免费看的黄色大片| 午夜亚洲伦理| 黄www在线观看| 99热这里只有成人精品国产| 成人午夜视频在线观看免费| 韩日视频一区| 国产精品12345| 99精品视频网| 欧美日韩在线一| 久久久久免费| 色综合色综合色综合色综合| 毛片不卡一区二区| av中文字幕网址| 国产一区欧美日韩| 深夜福利网站在线观看| 国产伦精品一区二区三区免费| 日韩精品――色哟哟| 成人国产精品免费观看动漫| 国产黄色三级网站| 久久久精品2019中文字幕之3| 国产精品成人无码免费| 国产精品久久毛片av大全日韩| frxxee中国xxx麻豆hd| 亚洲久草在线视频| 日本一本高清视频| 色婷婷精品久久二区二区蜜臀av | 国模精品视频| 欧美最猛性xxxx| 玖玖精品在线| 91日韩久久| 台湾亚洲精品一区二区tv| 日本在线视频不卡| 婷婷综合久久| 日本一区午夜艳熟免费| 校园激情久久| 奇米影音第四色| 国产一区二区三区视频在线播放| 日本黄色大片在线观看| 久久综合九色综合欧美98| 女人裸体性做爰全过| 夜夜操天天操亚洲| 亚洲天堂一区在线| 欧美裸体bbwbbwbbw| 日韩在线观看视频一区二区三区| 国产午夜精品视频免费不卡69堂| 国产黄网站在线观看| 欧美一级大片在线观看| 色综合久久久| 好吊色欧美一区二区三区 | 不卡中文字幕av| 在线天堂新版最新版在线8| 国产精品香蕉av| 国产人妖ts一区二区| 亚洲精品国产系列| 亚洲狠狠婷婷| 奇米视频7777| 久久久精品中文字幕麻豆发布| 一区二区在线观看免费视频| 色94色欧美sute亚洲13| a级片在线视频| 中文字幕欧美日韩精品| brazzers在线观看| 91九色国产在线| 亚洲精品456| 2022中文字幕| 免费av成人在线| 欧美 日本 国产| 亚洲男人的天堂av| 中文亚洲av片在线观看| 亚洲第一视频网站| 二区在线播放| 国产精品视频一区二区高潮| 国内自拍欧美| 成年丰满熟妇午夜免费视频| 日韩电影在线免费看| 国产激情视频网站| 亚洲午夜精品一区二区三区他趣| 在线观看国产黄| 国产视频在线观看一区二区| japanese色国产在线看视频| 91中文在线视频| 成人在线亚洲| 热久久精品免费视频| 91在线丨porny丨国产| 欧美日韩精品在线观看视频 | 国产小视频一区| 久久精品视频网站| 欧美性xxx| 久久久水蜜桃| 亚洲精品色图| 欲求不满的岳中文字幕| 亚洲资源中文字幕| www.日韩在线观看| 欧美超级免费视 在线| 四虎影视成人精品国库在线观看| 视频一区视频二区视频| 久久精选视频| 香蕉视频黄色在线观看| 懂色av一区二区三区| 天堂网www中文在线| 国内精品视频一区| 精品在线网站观看| 人妻熟妇乱又伦精品视频| www.久久精品| 日韩免费在线视频观看| 亚洲精品第一页| 麻豆免费在线| 欧美精品成人一区二区在线观看 | 欧美中文字幕精品| 亚洲另类av| 久久久久免费精品| 中文成人综合网| 国产又粗又长视频| 久久av在线看| 成人精品动漫一区二区三区| 日本欧美黄色片| 91麻豆免费观看| 一级一级黄色片| 日韩中文字幕免费看| 国产一区二区av在线| 黄色一级片黄色| 99久久精品免费观看| 国产一级淫片a视频免费观看| 国产一区二区三区丝袜| www.91精品| 妞干网在线播放| 99久久精品国产一区二区三区 | 欧美一卡二卡| 美女视频久久| 久久国产精品露脸对白| 中文字幕在线观看成人| 亚洲国产精品久久久久秋霞蜜臀| 成人免费直播| 天天做天天爱天天高潮| 成人精品一区二区三区四区| 日韩久久久久久久久| 中文字幕国产亚洲| 玖玖玖视频精品| 欧美 日韩精品| 国产精品视频观看| 亚洲va欧美va| 国产成+人+综合+亚洲欧洲| 天天超碰亚洲| a视频免费观看| 在线播放91灌醉迷j高跟美女| 黄色污网站在线观看| 色一情一乱一伦一区二区三区丨| 精品一区二区影视| www.日本精品| 久久久999精品视频| 亚洲精品v亚洲精品v日韩精品| 99999精品视频| 亚洲女人****多毛耸耸8| 无码精品一区二区三区在线 | 波多野结衣50连登视频| 国产精品女同一区二区三区| 天堂在线中文网| 91免费综合在线| 久久精品电影| 日韩免费一二三区|